• 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. listing all the sinks of a clock

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 91
  • Views 15955
  • 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

listing all the sinks of a clock

spach
spach over 15 years ago

hi

can any one please tell me how can i list all the sink pins for a clock and how to find the farthest sink for that clock?

regards

suresh

  • Cancel
  • BobD
    BobD over 15 years ago

    Rounding up the list of sink pins is a bit different depending on whether you're looking for clocks as defined in the timing constraints file -or- CTS clocks.

    If you're looking to visualize CTS trees in the GUI you might want to look at the Clock Tree Analyzer and highlight all of the instances in the clock tree (pre or post CTS).  There's also Clock->Display Clock Tree->Display min/max paths if you wanted to get the sink with the largest delay postCTS.

    For clocks as defined in the timing constraint file, you could define them as CTS clock roots and examine them with the Clock Tree Analyzer.

    If you really wanted to, you could script this up.  Here's a sample procedure that would find all of the registers on a given logical clock and find the one with the largest distance from the source:

    set clockName vclk1
    set source [get_property [get_clocks vclk1] sources]
    set sourceX [get_property $source x_coordinate]
    set sourceY [get_property $source y_coordinate]
    set furthestDistance 0
    foreach_in_collection register [all_registers -clock vclk1] {
      set inst [dbGetInstByName [get_property $register hierarchical_name]]
      set pt [dbGet $inst.pt]
      set x [lindex [lindex $pt 0] 0]
      set y [lindex [lindex $pt 0] 1]
      set dist [expr abs($x - $sourceX) + abs($y - $sourceY)]
      if {$dist > $furthestDistance} {
        set furthestDistance $dist
        set furthestInst $inst
      }
    }
    selectInst [file dirname [get_property $source hierarchical_name]]
    Puts "The source of clock $clockName is [get_property $source hierarchical_name] at $sourceX $sourceY"
    Puts "There are [sizeof_collection [all_registers -clock vclk1]] registers connected to this clock"
    Puts "The furthest register is [dbGet $furthestInst.name] at [dbGet $furthestInst.pt]"
    selectInst [dbGet $furthestInst.name]

    When you run it, it would select the source instance and the farthest sink and output text like this:

    The source of clock vclk1 is DTMF_INST/TEST_CONTROL_INST/i_150/Y at 775.170 656.040
    There are 393 registers connected to this clock
    The furthest register is DTMF_INST/TDSP_CORE_INST/EXECUTE_INST/alu_cmd_reg_3 at {395.34 1156.96}

    Hope this is helpful,
    Bob

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • spach
    spach over 15 years ago

    thanks a lot Bob

    can u tell me how can i make sure that after cts the clock tree is build for all sinks with out any failure?

    regards

    suresh

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • BobD
    BobD over 15 years ago

    The Clock Tree Analyst has functionality that lists FFs not in any clock tree. ie, the FFs in the design that aren't considered sink pins after specifying and tracing the clock trees you've defined in your clock tree spec file.  It is accessible from the Clock->Clock Tree Analyst, and then Tool->List FFs not in Clock Tree...

    Hope this helps,
    Bob

    • 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