• 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. Digital Implementation
  3. How to set the units for an SDC file in Innovus (**WARN...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 91
  • Views 6164
  • 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

How to set the units for an SDC file in Innovus (**WARN: (TCLCMD-1461): Skipped unsupported command: set_units)

FormerMember
FormerMember over 2 years ago

Dear community

The SDC file I am using in my digital design has the two lines

set_units -capacitance 1000fF
set_units -time 1000ps

Reading this file into Innovus 21.10 leads to an "(TCLCMD-1461): Skipped unsupported command: set_units" error.

What is the correct syntax?

What are the default units in Innovus when nothing is specified?

Which command can be used to check what units are currently used (to verify that the timing analysis uses the right numbers)?

Thank you for any suggestions.

  • Cancel
Parents
  • DimoM
    DimoM over 2 years ago

    Hi,

    you can check this article for more information about units in the Cadence digital flow:
    How to ensure units are aligned in Genus and Innovus in physical synthesis flow

    Copy/paste from this article:

    In Innovus, the units are also derived from the timing libraries (.lib files); however, if Innovus encounters different units in different .lib files, it will revert to its default units of ns for time and pf for capacitance.  You will also see IMPTS-16 messages during syn_opt -physical if this situation occurs.

    To override the inference from the library and the defaulting if mixed units are found, you can use the following attribute settings in Innovus prior to running init_design

    Stylus Common UI 
         set_db timing_time_unit 1ps (same as Innovus command set_library_unit -time 1ps)
      set_db timing_cap_unit  1ff (same as Innovus command set_library_unit -cap 1ff)
    Legacy UI
      setLibraryUnit -time 1ps
      setLibraryUnit -cap 1ff

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • DimoM
    DimoM over 2 years ago

    Hi,

    you can check this article for more information about units in the Cadence digital flow:
    How to ensure units are aligned in Genus and Innovus in physical synthesis flow

    Copy/paste from this article:

    In Innovus, the units are also derived from the timing libraries (.lib files); however, if Innovus encounters different units in different .lib files, it will revert to its default units of ns for time and pf for capacitance.  You will also see IMPTS-16 messages during syn_opt -physical if this situation occurs.

    To override the inference from the library and the defaulting if mixed units are found, you can use the following attribute settings in Innovus prior to running init_design

    Stylus Common UI 
         set_db timing_time_unit 1ps (same as Innovus command set_library_unit -time 1ps)
      set_db timing_cap_unit  1ff (same as Innovus command set_library_unit -cap 1ff)
    Legacy UI
      setLibraryUnit -time 1ps
      setLibraryUnit -cap 1ff

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • FormerMember
    FormerMember over 2 years ago in reply to DimoM

    Dear Dimo

    Thank you for the information provided, very helpful.

    I checked the timing files of my standard cells and third-party IP blocks: all of them use nano seconds (1ns) and pico farads (1pf) as their units. Furthermore, the .sdc file from the synthesis also uses nano seconds and pico farads as units - good. Therefore, I included

    setLibraryUnit -time 1ns
    setLibraryUnit -cap 1pf

    in my setup script. However, I noticed that the tool still has a very hard time fulfilling timing constraints. Especially the clock tree synthesis struggles to find a good solution, and results in long chains of inverters and buffers that are only a few micro meters apart. With a base clock of 16MHz, this should not happen. I suspect that there is still something off with the overal setup. Notice: I do not get an (IMPTS-16) or (IMPTS-17) error at any time of the design flow.

    Digging into the problem, I found that the commands get_db timing_time_unit and get_db timing_cap_unit no longer return the correct value of "1ns" and "1pf" at some point. In other words, the units have changed during run time (?)

    Debugging the issue, I found that everything is ok up until the placement step, i.e. before place_opt_design, the commands

    get_db timing_time_unit
    get_db timing_cap_unit

    return the correct value of 1ns" and "1pf". After place_opt_design, the output looks like this:

    The unit of capacitances are now "1.0" (farads!?) Is this a bug or a real problem?

    How can I verify during run time that Innovus is still using the corect units to calculate delays and clock periods?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DimoM
    DimoM over 2 years ago in reply to FormerMember

    Hi,
    this indeed might be some issue of the mapping between legacy and stylus attributes.
    What does get_capacitance_unit report ?

    Are you sure you are on the right track with the units as the source of your problems ?
    Did you take a look at a timing report ? Does it make sense in terms of capacitance, transition times.

    - Dimo

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • FormerMember
    FormerMember over 2 years ago in reply to DimoM

    The command get_capacitance_unit indeed reports the correct value:

    So it might be just an unimportant bug of the other comand.

    DimoM said:
    Are you sure you are on the right track with the units as the source of your problems ?

    No, I am not. I'm a beginner and I am often unaware of what to expect. l It was just the first thing that came to my mind since there is plenty of space on the floorplan and the main clock is slow.

    Moreover, If I cal

    extractRC
    rcOut -spef myDesign.spef -rc_corner RC_max_T125

    then the units in that file are correct, too.

    Here is the summary of a preCTS timing report that is printed out after using timeDesign -preCTS -setup -hold :

    The numbers seem plausible for me, i.e. nothing wrong there. So overall, wrong units do not seem to be the issue. But to give you an impression of the issue during CTS, here is a screenshot of the clock tree debugger:

    There are very long chains of inverters, which gives me the impression that something goes horrible wrong. If I highlight them on the layout, they are all located closely together:

    Bus since the units are probably not the issue, this problem might be subject to another forum thread with more details.

    • 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