• 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 report list of flops whose clock port is driven by...

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 91
  • Views 18819
  • 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 report list of flops whose clock port is driven by test clock in test mode

diablo
diablo over 14 years ago

 Hi all,

  I have functional and test analysis views. The Test clock is muxed with functional clock whose selector is TEST_EN net.

  In my functional SDC, I have "set_case_analysis 0 TEST_EN" and in test SDC, I have "set_case_analysis 1 TEST_EN". I want to verify  whether in test analysis view, the Test clock is seen by all the flops. 

  How to report the list of flops whose clock port is driven by test clock in test analysis view.

 Thanks for your time.

  

 

  • Cancel
Parents
  • BobD
    BobD over 14 years ago

    What an awesome question this is - thanks for posting it.

    Brian's note about the -view option on check_timing is applicable to get_property as well, which you could use to check which clocks are associated with each clock pin per view.  I created a tiny circuit to test this, with clka and clkb being muxed differently in view "a" and view "b".  You can query the clocks like this:

    encounter 11> get_property -view a [get_pins i1/CK] clocks
    clka
    0x14

    encounter 12> get_property -view b [get_pins i1/CK] clocks
    clkb
    0x16

    To loop through all of the registers in the design and check you could do something like this:

    foreach_in_collection register [all_registers] {
      foreach_in_collection pin [filter_collection [get_pins [get_property $register hierarchical_name]/*] {is_clock == true}] {
        set clk [get_property [get_property -view b $pin clocks] hierarchical_name]
        if {$clk == "clkb"} {
          Puts "Pin: [get_property $pin hierarchical_name] in view \"b\" is driven by \"clkb\""
        }
      }
    }

    Pin: i1/CK in view "b" is driven by "clkb"
    Pin: i2/CK in view "b" is driven by "clkb"

    Hope this helps!
    -Bob

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • BobD
    BobD over 14 years ago

    What an awesome question this is - thanks for posting it.

    Brian's note about the -view option on check_timing is applicable to get_property as well, which you could use to check which clocks are associated with each clock pin per view.  I created a tiny circuit to test this, with clka and clkb being muxed differently in view "a" and view "b".  You can query the clocks like this:

    encounter 11> get_property -view a [get_pins i1/CK] clocks
    clka
    0x14

    encounter 12> get_property -view b [get_pins i1/CK] clocks
    clkb
    0x16

    To loop through all of the registers in the design and check you could do something like this:

    foreach_in_collection register [all_registers] {
      foreach_in_collection pin [filter_collection [get_pins [get_property $register hierarchical_name]/*] {is_clock == true}] {
        set clk [get_property [get_property -view b $pin clocks] hierarchical_name]
        if {$clk == "clkb"} {
          Puts "Pin: [get_property $pin hierarchical_name] in view \"b\" is driven by \"clkb\""
        }
      }
    }

    Pin: i1/CK in view "b" is driven by "clkb"
    Pin: i2/CK in view "b" is driven by "clkb"

    Hope this helps!
    -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