• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Logic Design
  3. RC ; sdc ; load_of

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 64
  • Views 16191
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

RC ; sdc ; load_of

Yemelya
Yemelya over 14 years ago

Hello,

There is a problem to use the following syntax of SDC constraints for RC by read_sdc, since RC doesn’t recognize “load_of”.

set_load [expr 30 * [load_of [get_lib_pins lib_name/inv3/A]]] [all_outputs]

How can I translate this to make it compatible with RC?

Thanks a lot!
Boris

 

  • Cancel
  • grasshopper
    grasshopper over 14 years ago

     Hi Boris,

     problem is load_of is not an SDC command. There are a number of things you can do

     

    (1) create a load_of procedure in TCL along the lines of

     

    proc load_of {args} {
       set libCellPath [find / -null_ok -libpin $args]
       if {$libCellPath != {}} {
          set load [get_liberty_attribute capacitance $libCellPath]
       } else {
          set load 0
       }
       return $load
    }

    (2) User RC syntax

      set_attribute external_pin_cap [expr 5 * [lindex [get_attr capacitance $load_pin] 0]] [all des outs]

     

    note that the expression  'lindex [get_attr capacitance $load_pin] 0' is needed since it provide values for rising and falling edges. Also $load_pin is the ouput of something like 'find /libraries -libpin . ...]

     

    hope this helps,

    gh-

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 14 years ago

    Below statement is the equivalent of what you are looking for. 

    set_load [expr 30 * [lindex [get_attribute capacitance [get_lib_pins lib_name/inv3/A]] 0] ] [all_outputs]

     P.S.: lindex 0 is being taken considering rise cap value

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Yemelya
    Yemelya over 14 years ago

    Great! Thanks a lot!!!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Wini
    Wini over 12 years ago

    There's a problem: [get_attribute capacitance ...] only gives the capacitance in fF

    rc:/> get_attribute -h capacitance libpin
      get_attribute: returns an attribute value from an object

    Usage: get_attribute <string> [<object>+]

        <string>:
            attribute name
        [<object>+]:
            object of interest (must be unique)

        attribute category: lib_ui

        attribute name: capacitance
              category: lib_ui (returns Liberty attribute cell information)
           object type: libpin
           access type: read-write
             data type: capacitance rise/fall
         default value: 0.0 0.0
                 units: femtofarads
                  help: The rise/fall capacitance.

    So you have to divide the retrieved value by 1000 as RTL compiler computes in pF.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • grasshopper
    grasshopper over 12 years ago

     That would be correct. The good news is RC is consistent and always return in fF independent of library units so once you fix the proc, you should be good to go

     

    good luck,

    gh-

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information