Home > Community > Forums > Digital Implementation > Issue regarding Clock Tree Synthesis

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Issue regarding Clock Tree Synthesis 

Last post Thu, Jan 24 2013 12:17 AM by Arslan. 2 replies.
Started by Arslan 23 Jan 2013 01:35 AM. Topic has 2 replies and 821 views
Page 1 of 1 (3 items)
Sort Posts:
  • Wed, Jan 23 2013 1:35 AM

    • Arslan
    • Top 200 Contributor
    • Joined on Mon, Dec 10 2012
    • Posts 36
    • Points 510
    Issue regarding Clock Tree Synthesis Reply

    Hi, while performing clock tree synthesis, one has to provide list of inverters and buffers in  "generate clock specs" by selecting from the list of available cells. this list is missing in my case. any ideas how to get the list.?

    • Post Points: 20
  • Wed, Jan 23 2013 5:16 AM

    • BobD
    • Top 25 Contributor
    • Joined on Fri, Jul 11 2008
    • Chelmsford, MA
    • Posts 247
    • Points 9,125
    Re: Issue regarding Clock Tree Synthesis Reply
    The tool is able to automatically select clock buffers. Use "clockDesign" and it will automatically create a clock tree spec file from your SDCs. To influence how the clock tree spec file is created, a combination of setCTSMode and specifyClockTree are typically used in conjunction with this command. specifyClockTree -create/-update/-delete can be used for programmatic modification of a clock tree spec file. Hope this helps!
    • Post Points: 20
  • Thu, Jan 24 2013 12:17 AM

    • Arslan
    • Top 200 Contributor
    • Joined on Mon, Dec 10 2012
    • Posts 36
    • Points 510
    Re: Issue regarding Clock Tree Synthesis Reply

    the tool should automatically select clock buffers, but in my case it is not doing that. And even if I manually write .ctstch file and specify buffers, it gives following warning and error

    **WARN: (ENCCK-994):    Cell BUF_X0P5B_A12TL_C31 has no timing arc. Check The timing libraries.
    **ERROR: (ENCCK-724):   
     Buffer BUF_X0P5B_A12TL_C31 specified in the clock tree specification file is invalid.

    I have checked and this cell is present both in .lib and macro lef.

    regarding the warning, following data is present in .lib and as far as I think timing arc is present.

     

    pin(Y) {
          direction : output ;
          function : "A" ;
          max_capacitance : 0.0559642 ;
          max_transition : 0.629333 ;
          min_capacitance : 0.0001 ;
          output_voltage : default ;
          related_ground_pin : VSS ;
          related_power_pin : VDD ;
          power_down_function : "!VDD + VSS" ;

          internal_power() {
            related_pin : "A" ;

            fall_power(pwr_tin_oload_7x7) {
              index_1("0.00221333, 0.0134941, 0.0530922, 0.12871, \
                      0.24652, 0.41182, 0.629333");
              index_2("0.0001, 0.0011049, 0.00463232, 0.0113684, \
                      0.021863, 0.036588, 0.0559642");
              values("0.000799615, 0.000809414, 0.000804709, 0.000799901, 0.000796933, 0.000794658, 0.000793265",\
                     "0.000779447, 0.000791893, 0.000794127, 0.000789831, 0.00078605, 0.00078341, 0.000781609",\
                     "0.00075481, 0.000764512, 0.000771666, 0.000772847, 0.000771287, 0.000769781, 0.000768644",\
                     "0.000740172, 0.000748833, 0.000758996, 0.000761591, 0.000762006, 0.000761375, 0.000760505",\
                     "0.000733962, 0.000740326, 0.000751239, 0.000757472, 0.000757939, 0.000758445, 0.000758127",\
                     "0.000732756, 0.00073781, 0.000748783, 0.000756138, 0.000759203, 0.000758949, 0.000759207",\
                     "0.000737063, 0.000742102, 0.000751108, 0.000758366, 0.000763561, 0.000764869, 0.000764537");
            }

            rise_power(pwr_tin_oload_7x7) {
              index_1("0.00221333, 0.0134941, 0.0530922, 0.12871, \
                      0.24652, 0.41182, 0.629333");
              index_2("0.0001, 0.0011049, 0.00463232, 0.0113684, \
                      0.021863, 0.036588, 0.0559642");
              values("0.000398047, 0.000399094, 0.000368668, 0.000309951, 0.000217467, 8.96784e-05, -9.89654e-05",\
                     "0.000379525, 0.000381884, 0.00035439, 0.000296803, 0.000208909, 8.21009e-05, -9.57076e-05",\
                     "0.000359822, 0.000369113, 0.000336634, 0.000283114, 0.000192421, 6.7156e-05, -0.000111223",\
                     "0.000347169, 0.000355357, 0.00036125, 0.000273792, 0.000183245, 6.04281e-05, -0.000124907",\
                     "0.000339577, 0.000346178, 0.000354397, 0.000354857, 0.000183655, 4.95099e-05, -0.000117814",\
                     "0.000337152, 0.000341429, 0.000348397, 0.000346551, 0.000330806, 6.69343e-05, -0.000116624",\
                     "0.000338414, 0.00034255, 0.00034286, 0.000347778, 0.000350767, 0.000347991, -3.63895e-05");
            }
          }

          timing() {
            related_pin : "A" ;
            timing_sense : positive_unate ;
            timing_type : combinational ;

            cell_fall(tmg_ntin_oload_7x7) {
              index_1("0.00221333, 0.0134941, 0.0530922, 0.12871, \
                      0.24652, 0.41182, 0.629333");
              index_2("0.0001, 0.0011049, 0.00463232, 0.0113684, \
                      0.021863, 0.036588, 0.0559642");
              values("0.0158512, 0.0223217, 0.0437717, 0.0847096, 0.148543, 0.238134, 0.356032",\
                     "0.0215605, 0.0280732, 0.0496417, 0.0905883, 0.15441, 0.24399, 0.361885",\
                     "0.0380775, 0.044788, 0.0664424, 0.107434, 0.17126, 0.260836, 0.378723",\
                     "0.0616066, 0.0692005, 0.0909026, 0.131875, 0.195689, 0.285233, 0.403102",\
                     "0.0895357, 0.0991638, 0.121553, 0.162355, 0.22609, 0.315587, 0.433413",\
                     "0.120292, 0.132682, 0.157371, 0.197968, 0.261518, 0.350912, 0.468664",\
                     "0.152779, 0.168385, 0.197076, 0.237967, 0.301225, 0.390433, 0.508057");
            }

            cell_rise(tmg_ntin_oload_7x7) {
              index_1("0.00221333, 0.0134941, 0.0530922, 0.12871, \
                      0.24652, 0.41182, 0.629333");
              index_2("0.0001, 0.0011049, 0.00463232, 0.0113684, \
                      0.021863, 0.036588, 0.0559642");
              values("0.0200719, 0.0251704, 0.0402318, 0.0685235, 0.112603, 0.174458, 0.255851",\
                     "0.0255913, 0.0306991, 0.0458071, 0.0741014, 0.118175, 0.180023, 0.261416",\
                     "0.0426747, 0.0480412, 0.0633147, 0.0916258, 0.135679, 0.197513, 0.278893",\
                     "0.066668, 0.0727648, 0.0883858, 0.116703, 0.16075, 0.222548, 0.303888",\
                     "0.094421, 0.101884, 0.118338, 0.146575, 0.190562, 0.25233, 0.333632",\
                     "0.124006, 0.1334, 0.151575, 0.179844, 0.223647, 0.285321, 0.366576",\
                     "0.154086, 0.165775, 0.186688, 0.215439, 0.258964, 0.32046, 0.401606");
            }

            fall_transition(tmg_ntin_oload_7x7) {
              index_1("0.00221333, 0.0134941, 0.0530922, 0.12871, \
                      0.24652, 0.41182, 0.629333");
              index_2("0.0001, 0.0011049, 0.00463232, 0.0113684, \
                      0.021863, 0.036588, 0.0559642");
              values("0.00774636, 0.0185995, 0.0577129, 0.132635, 0.249353, 0.413141, 0.628703",\
                     "0.00785682, 0.0186233, 0.0577083, 0.132623, 0.249377, 0.413176, 0.628734",\
                     "0.00920592, 0.019244, 0.0578494, 0.132662, 0.249379, 0.413151, 0.628711",\
                     "0.0130111, 0.0215641, 0.0583874, 0.132889, 0.249473, 0.41318, 0.628679",\
                     "0.019134, 0.0269453, 0.0600547, 0.133387, 0.249743, 0.41337, 0.628744",\
                     "0.0270202, 0.035272, 0.0642992, 0.134499, 0.250249, 0.413648, 0.628994",\
                     "0.0365, 0.0457262, 0.0721991, 0.13721, 0.251165, 0.414188, 0.629311");
            }

            rise_transition(tmg_ntin_oload_7x7) {
              index_1("0.00221333, 0.0134941, 0.0530922, 0.12871, \
                      0.24652, 0.41182, 0.629333");
              index_2("0.0001, 0.0011049, 0.00463232, 0.0113684, \
                      0.021863, 0.036588, 0.0559642");
              values("0.00832464, 0.0157314, 0.0433071, 0.0975357, 0.182286, 0.301218, 0.457735",\
                     "0.00836245, 0.0157446, 0.043311, 0.0975335, 0.182272, 0.301202, 0.457707",\
                     "0.00977667, 0.0167199, 0.0436751, 0.0976212, 0.182299, 0.301206, 0.457723",\
                     "0.0133544, 0.0194572, 0.0448837, 0.0981831, 0.182608, 0.301347, 0.457773",\
                     "0.0191592, 0.0244967, 0.0474023, 0.0992111, 0.183248, 0.30182, 0.458047",\
                     "0.0268718, 0.032019, 0.0520368, 0.101128, 0.184192, 0.302516, 0.458584",\
                     "0.0362388, 0.0416758, 0.0594135, 0.104635, 0.185688, 0.303445, 0.459354");
            }

    • Post Points: 5
Page 1 of 1 (3 items)
Sort Posts:
Started by Arslan at 23 Jan 2013 01:35 AM. Topic has 2 replies.