• 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. Clock nets in the design

Stats

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

Clock nets in the design

vicky
vicky over 17 years ago

Hi,

I would like to know what is the easiest way to get all the clock nets in the design using encounter. I do know that we can do it using saveClockNets which needs a clock tree spec file to be readin. I would like to  know if there is a much simpler way to do it may be using some get_nets command.

 

Regards

Vicky 

  • Cancel
Parents
  • BobD
    BobD over 17 years ago
    Hi Vicky!

    This area is often confusing since there are lots of different types of ways/things that people might consider "clocks or not clocks". They are:

    1) An object in the design (net, pin or port) was found to be clock from a timing perspective. The timing constraints are loaded which includes "create_clock" statements, timing analysis is performed, the create_clock statements propagate from net to net and then some objects along that tracing are considered "clock" or not.

    2) A marking in the .lib declares something to be a clock or not.

    3) An object in the design (net, pin, or port) was found to be part of a clock tree that's been physically built and has a DEF marking on the nets declaring them to be "clock".

    Hopefully we now have a baseline for discussing whether things are clocks or not.  It sounds like what you're looking for (since you say that you don't want to load a clock tree spec file) is a list of nets that are considered "clock" from a timing perspective (ie, case "1" above).  The easiest way I can recommend to get this list of nets is using dbGet.

    First, time the design so that the nets are marked in the db as clock or not clock:
    encounter> timeDesign -prePlace

    Then, use dbGet as follows:
    encounter> dbGet [dbGet -p top.nets.isClock 1].name   
    DTMF_INST/m_spi_clk DTMF_INST/m_clk DTMF_INST/m_rcc_clk DTMF_INST/m_digit_clk DTMF_INST/TDSP_DS_CS_INST/n_28 DTMF_INST/TDSP_DS_CS_INST/n_30

    Some other things to consider:

    1) We do have a "get_nets" command within SoC-E, *but* it doesn't offer an "is_clock" marking on nets.

    2) The "is_clock" marking that we see on pins (ie, "get_property [get_pins i0/CK] is_clock") is a .lib marking (ie, of type "2" above), *not* the affect of SDCs that have influenced whether things are clock or not.

    Hope this is helpful,
    Bob

     
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • BobD
    BobD over 17 years ago
    Hi Vicky!

    This area is often confusing since there are lots of different types of ways/things that people might consider "clocks or not clocks". They are:

    1) An object in the design (net, pin or port) was found to be clock from a timing perspective. The timing constraints are loaded which includes "create_clock" statements, timing analysis is performed, the create_clock statements propagate from net to net and then some objects along that tracing are considered "clock" or not.

    2) A marking in the .lib declares something to be a clock or not.

    3) An object in the design (net, pin, or port) was found to be part of a clock tree that's been physically built and has a DEF marking on the nets declaring them to be "clock".

    Hopefully we now have a baseline for discussing whether things are clocks or not.  It sounds like what you're looking for (since you say that you don't want to load a clock tree spec file) is a list of nets that are considered "clock" from a timing perspective (ie, case "1" above).  The easiest way I can recommend to get this list of nets is using dbGet.

    First, time the design so that the nets are marked in the db as clock or not clock:
    encounter> timeDesign -prePlace

    Then, use dbGet as follows:
    encounter> dbGet [dbGet -p top.nets.isClock 1].name   
    DTMF_INST/m_spi_clk DTMF_INST/m_clk DTMF_INST/m_rcc_clk DTMF_INST/m_digit_clk DTMF_INST/TDSP_DS_CS_INST/n_28 DTMF_INST/TDSP_DS_CS_INST/n_30

    Some other things to consider:

    1) We do have a "get_nets" command within SoC-E, *but* it doesn't offer an "is_clock" marking on nets.

    2) The "is_clock" marking that we see on pins (ie, "get_property [get_pins i0/CK] is_clock") is a .lib marking (ie, of type "2" above), *not* the affect of SDCs that have influenced whether things are clock or not.

    Hope this is helpful,
    Bob

     
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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