• 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. RTL Complier flow with clock gating and scan insertion

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 62
  • Views 15914
  • 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

RTL Complier flow with clock gating and scan insertion

Terry2000
Terry2000 over 12 years ago

Hello, 

I've been struggling to scan insert and clock gate a small design, I believe I've been flowing the recommended flow:

1. If I clock gate by setting "set_attribute lp_insert_clock_gating true" then "connect_chains" in the flow any flops that have been clock gated are not in the scan chain. They appear to fail the dft check because of the clock gaing cell.

2. If I connect the chains first then clock gate using the command "clock_gating insert_in_netlist" this does all appear to work. However some of the scan flop are replaced with cells with an extra unnecessary enable added which is tied off with a 1'b1. 

3. To remove the 1'b1 I have "set_attribute avoid false {TIE0XM TIE1XM}" and "insert_tiehilo_cells -hi TIE1XM -lo TIE0XM".
Downstream I will be using EDI for the PnR, is it necessary to remove them here or will EDI cope (it appears to). I'm puzzled why the tool is adding this cell.

Any idea's why this is happening?

  • Cancel
Parents
  • bmiller
    bmiller over 12 years ago

    Regarding (1)... have you defined an lp_clock_gating_test_signal attribute? This attribute tells the tool what to connect to the test pin of the CG cell.  Usually, you set this attribute to your shift_enable:

       define_dft shift_enable -active high -name SE ....

       set_attr lp_clock_gating_test_signal SE /des*/*

     If you didn't do this, then it is not surprising that DFT rule checks fail after clock gating is inserted, because a clock gater without a test "override" creates an uncontrollable clock.

    Be sure you are running check_dft_rules BEFORE synthesis, and be sure it is clean.  You can check DFT rules again after synthesis, but if you don't run it before, your flops will NOT be mapped to scan flops.

     Regarding (2), I don't often use clock_gating insert_in_netlist.  This tends to result in poor clock gating coverage, and is only recommended if you don't have the option of starting from RTL.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • bmiller
    bmiller over 12 years ago

    Regarding (1)... have you defined an lp_clock_gating_test_signal attribute? This attribute tells the tool what to connect to the test pin of the CG cell.  Usually, you set this attribute to your shift_enable:

       define_dft shift_enable -active high -name SE ....

       set_attr lp_clock_gating_test_signal SE /des*/*

     If you didn't do this, then it is not surprising that DFT rule checks fail after clock gating is inserted, because a clock gater without a test "override" creates an uncontrollable clock.

    Be sure you are running check_dft_rules BEFORE synthesis, and be sure it is clean.  You can check DFT rules again after synthesis, but if you don't run it before, your flops will NOT be mapped to scan flops.

     Regarding (2), I don't often use clock_gating insert_in_netlist.  This tends to result in poor clock gating coverage, and is only recommended if you don't have the option of starting from RTL.

     

    • 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