• 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. No buffers added in power domain, hold violation

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 93
  • Views 7174
  • 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

No buffers added in power domain, hold violation

Krippkrupp
Krippkrupp over 2 years ago

I have specified two power domains, PD_CORE and PD_ACC. PD_CORE is the default and seems to work fine.
However, the second power domain, PD_ACC, causes some issues. PD_ACC is defined to a certain area, thus causing PD_ACC to have the attribute fence.

I have specified libraries for both domains, however when running CTS, I notice that no buffers or inverters are placed in this domain.
This leads to hold violations in PD_ACC, that can't be fixed since no buffers are added.

I could be incorrect, but as far as I understand this is done in the CPF, and was done as follows

-----------------------------------------------------------------------------
define_library_set -name TT_LIB -libraries $PATHS_TO_MY_LIBRARIES
set_design $init_top_cell
create_power_nets -nets {VDD_NET VDD_ACC}
create_ground_nets -nets {VSS_NET}
create_power_domain -name {PD_CORE} -default
update_power_domain -name PD_CORE -primary_power_net VDD_NET -primary_ground_net VSS_NET -nmos_bias_net VSS_NET -pmos_bias_net VDD_NET
create_power_domain -name {PD_ACC} -instances $ACC_INST
update_power_domain -name PD_ACC -primary_power_net VDD_ACC -primary_ground_net VSS_NET -nmos_bias_net VSS_NET -pmos_bias_net VDD_ACC
create_nominal_condition -name TT -voltage 0.80
update_nominal_condition -name TT -library_set "TT_LIB"
create_power_mode -name PM_0P80 -domain_condition {PD_CORE@TT PD_ACC@TT} -default

<creating global conditions>
..
end_design
-----------------------------------------------------------------------------

In cc_opt_mode, I have specified the cells to be used for -cts_inverter_cells, -cts_buffer_cells, and -cts_clock_gating_cells.
The command  `get_ccopt_property buffer_cells -power_domain PD_ACC` returns the list of buffers as expected.

After running
create_ccopt_clock_tree_spec
ccopt_design -outDir RPT/innovus -prefix cts

I do `selectInstByCellName *CKBUF*, and see how buffers have been placed in all areas but the PD_ACC area - which is a bit concerning.

During `optDesign -postCTS -hold -outDir RPT/innovus -prefix -postcts_hold` i get the following

-----------------------------------------------------------------------------
**WARN: (IMPCCOPT-1182): The clock_gating_cells property has no usable full-cycle clock gates for power domain PD_ACC.
..
..
For power domain PD_ACC:
For power domain PC_CORE:

Buffers: {<list of buffers>}
Inverters: {<list of inverters>}
Clock gates: {<list of clock gates>}

-----------------------------------------------------------------------------

I assume that I am missing something crucial? I would very much be interested in finding out why the tool believes that the list of buffers, inverters and clock gates, are empty for PD_ACC, as shown in the log above.
Any help in the right direction would be appreciated!

Thank you in advance

INNOVUS 21.11

  • Cancel
Parents
  • Krippkrupp
    Krippkrupp over 2 years ago

    Found the issue. The problem was that I had flattened my design

    • Cancel
    • Vote Up +2 Vote Down
    • Cancel
  • predalco
    predalco over 2 years ago in reply to Krippkrupp
    This reply was deleted.
    • Cancel
    • Cancel
  • Krippkrupp
    Krippkrupp over 2 years ago in reply to predalco

    The issue was that I used

    setDesignMode -addPhysicalCell flat

    Either removing it, or changing it to the following

    setDesignMode -addPhysicalCell hier

    Solved the issue for me. I found two pages on the support page that pushed me in the right direction, but I don't have access to the links anymore.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Krippkrupp
    Krippkrupp over 2 years ago in reply to predalco

    The issue was that I used

    setDesignMode -addPhysicalCell flat

    Either removing it, or changing it to the following

    setDesignMode -addPhysicalCell hier

    Solved the issue for me. I found two pages on the support page that pushed me in the right direction, but I don't have access to the links anymore.

    • Cancel
    • Vote Up +1 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