Home > Community > Forums > Digital Implementation > command to find the maximum and minimum drivestrength of a particular std cell

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: *

 command to find the maximum and minimum drivestrength of a particular std cell 

Last post Thu, Dec 5 2013 6:33 AM by fitz. 3 replies.
Started by selvam27 22 Nov 2013 03:24 AM. Topic has 3 replies and 5194 views
Page 1 of 1 (4 items)
Sort Posts:
  • Fri, Nov 22 2013 3:24 AM

    • selvam27
    • Top 500 Contributor
    • Joined on Fri, Jun 8 2012
    • Posts 18
    • Points 255
    command to find the maximum and minimum drivestrength of a particular std cell Reply

    Hai,

    Currently I'm writing a tcl script to fix max transition violation. In this script,I used the ecoChangeCell command to upsize and downsize the cells.

    I am facing a problem in this script. If I run this script, it upsize the cell upto the maximum drivestrength and after that when there is no further cells available for changing. the script exits with ERROR indication.

     Now i want the script to continue even if there is an error notification.

     Can anybody help me in this to say the tool to continue with the script even when there is error..

    or 

     Is there any command to find the maximum and minimum drivestrength of a particular std cell.

    Plz help me

    thank you

    Selva

    • Post Points: 20
  • Wed, Dec 4 2013 7:00 AM

    • fitz
    • Top 150 Contributor
    • Joined on Wed, Aug 4 2010
    • Kanata, Ontario
    • Posts 56
    • Points 745
    Re: command to find the maximum and minimum drivestrength of a particular std cell Reply

    Selva: I am surprized optDesign did not automatically fix max tran for you.

    The following online document will help you a lot.

    Getting started with DB Tcl scripting in EDI System
    Useful single line dbGet scripts

    Solution ID:    11598038

    30. To query the max_cap for a list of cells

         set cellPtrList [dbGet -p head.allCells.name BUF*]
         foreach cellPtr $cellPtrList {puts "[dbGet $cellPtr.name] [dbFTermMaxCap [dbGet -p $cellPtr.terms.name <term>] 1]"}

    Shawn

    Filed under:
    • Post Points: 20
  • Wed, Dec 4 2013 7:33 PM

    • selvam27
    • Top 500 Contributor
    • Joined on Fri, Jun 8 2012
    • Posts 18
    • Points 255
    Re: command to find the maximum and minimum drivestrength of a particular std cell Reply

    Thanks a lot Shawn.

    I tried that command and it's very useful.

     

    Thanks

    selva. 

    Filed under:
    • Post Points: 20
  • Thu, Dec 5 2013 6:33 AM

    • fitz
    • Top 150 Contributor
    • Joined on Wed, Aug 4 2010
    • Kanata, Ontario
    • Posts 56
    • Points 745
    Re: command to find the maximum and minimum drivestrength of a particular std cell Reply

    Selva:
    All of the commands in  "Useful single line dbGet scripts"  are useful, this should be required reading and on the pop quiz.
    Solution ID:    11598038

    Back to your max tran violations. I still don't understand why optDesign didn't fix these automatically.

    Max output cap violations are relatively easy to fix, upsize the driver until you are at the cell types maximum drive strength after that you must resort to ecoAddRepeater.

     ecoAddRepeater
        {-net netName | -term inst1/term inst2/ ...}
        -cell masterCellName
        [-loc {x y | x1 y1 x2 y2} [-radius μm]] |
        [-relativeDistToSink value [-radius μm]] |
        [-offLoadSlack ns [-radius μm]] |
        [-noPlace] |
        -offLoadAtLoc {x y}
        [-evaluateOnly | -evaluateAll]
        [-hinstGuide]

    Max input trans are not as simple to fix, the root cause is generally the RC loss due to long interconnect.
    Simply Increasing the source drive strength may not improve the situation.

    Blindly using ecoAddRepeater is dangerous if you do not understand the interconnect topology.
    For each input transition violation you must be aware of the, source inst/ type, net name/length/fanout.
    These give you some textual hint to the solution, but I always visually verify.

    If there is no source max cap , the nets fanin = 1,  then ecoAddRepeater -net is the fix.
    If there is no source max cap , the nets fanin > 1,  then ecoAddRepeater -term is the  fix.
    Basically you have to differentiate between , sinks near and sinks far.
    Adding a buffer on nearby sinks is a waste, you want the sinks far to be in the ecoAddRepeater -term list.

    Shawn ... Tapeout Today : )

    • Post Points: 5
Page 1 of 1 (4 items)
Sort Posts:
Started by selvam27 at 22 Nov 2013 03:24 AM. Topic has 3 replies.