• 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. Blogs
  2. Verification
  3. Low-Power Verification With SystemC - The Great Unknown
Team genIES
Team genIES

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
Functional Verification
CPF
Low-Power
UPF
SystemC
IES
ESL

Low-Power Verification With SystemC - The Great Unknown

28 Jan 2010 • 1 minute read

Design teams have used C/C++/SystemC reference models for many years and the trend is growing with SystemC synthesis.  At the same time, many teams are adding power-aware structures to their designs and trying to simulate.  So what happens when the models encounter unknowns propagated from shutdown  blocks?

For the unprepared, the simulation fails.  In most cases. the models were written before low-power simulations were conceived.  They do not take into account the fact that their inputs can go to X at any time during the simulation run (as opposed to just a short while after time 0).  We have seen many C-models crash when one or more of the inputs goes to X (this simulates the driving block being shut-down).  If you have this configuration in your chip, you must isolate all inputs going to the C-model before shutting down any driving blocks that are connected to the model’s inputs.

Another thing to avoid is shutting down the C-model. You must put it in an always-on domain.  The Incisive simulator (IES-XL) often does not have access to the internals of the model so it cannot properly handle the low-power operations that are necessary to power down the model.  All power-down functions must be done natively in the model if you need it to work properly in shut-down.

A third thing to look for is any driving or receiving net that is connected to the model.  Proper drive/load analysis cannot be done when originating or terminating in the model.  For instance, for all model inputs, the CPF command to specify isolation must be of the form:

create_isolation_rule -name xxx -from <driving_power_domain>...


When written in this form, only the driver must be located, not the receiver, so isolation will be placed properly.  

Likewise, for all model outputs that need to be isolated, use the following form:

create_isolation_rule -name xxx -to <receiving_power_domain>...


This will remove the need to find drivers inside of the model.

Finally, we are introducing a new capability that will allow users to have a SystemC module in their Verilog or VHDL testbench and still use the automatically generated low-power assertions.  If you have a need for this capability, contact us at genIES@cadence.com today for an early look.

=Team genIES

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information