Cadence® system design and verification solutions, integrated under our System Development Suite, provide the simulation, acceleration, emulation, and management capabilities.
System Development Suite Related Products A-Z
Cadence® digital design and signoff solutions provide a fast path to design closure and better predictability, helping you meet your power, performance, and area (PPA) targets.
Full-Flow Digital Solution Related Products A-Z
Cadence® custom, analog, and RF design solutions can help you save time by automating many routine tasks, from block-level and mixed-signal simulation to routing and library characterization.
Overview Related Products A-Z
Driving efficiency and accuracy in advanced packaging, system planning, and multi-fabric interoperability, Cadence® package implementation products deliver the automation and accuracy.
Cadence® PCB design solutions enable shorter, more predictable design cycles with greater integration of component design and system-level simulation for a constraint-driven flow.
An open IP platform for you to customize your app-driven SoC design.
Comprehensive solutions and methodologies.
Helping you meet your broader business goals.
A global customer support infrastructure with around-the-clock help.
24/7 Support - Cadence Online Support
Locate the latest software updates, service request, technical documentation, solutions and more in your personalized environment.
Cadence offers various software services for download. This page describes our offerings, including the Allegro FREE Physical Viewer.
Get the most out of your investment in Cadence technologies through a wide range of training offerings.
This course combines our Allegro PCB Editor Basic Techniques, followed by Allegro PCB Editor Intermediate Techniques.
Virtuoso Analog Design Environment Verifier 16.7
Learn learn to perform requirements-driven analog verification using the Virtuoso ADE Verifier tool.
Exchange ideas, news, technical information, and best practices.
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.
It's not all about the technlogy. Here we exchange ideas on the Cadence Academic Network and other subjects of general interest.
Cadence is a leading provider of system design tools, software, IP, and services.
When there is clock gating logic, do I have to define the gated clock as a generated clock in my constraint file for a proper STA?
I don't know if anybody is familiar with this great book, but my question came up because I saw an example in the book "Static Timing Analysis for Nanometer Design: A practical Approach". Figure 7-12 shows an example where a clock is gated by the output of a flip-flop and then they wrote a SDC constraint to define the gated clock. See below:
The book says: "Figure 7-12 shows an example where the clock SYS_CLK is gated by the output of a flip-flop. Since the output of the flip-flop may not be a constant, one way to handle this situation is to define a generated clock at the output of the and cell which is identical to the input clock."
Must I define all gated clocks as new generated clocks in my SDC file?
The book mentiones that is one way to handle the situation, what are other ways to handle this situation?
Your input is much appreciated.
The other way to constraint clock gating and check that output of the gating cell is not clipped clock, you can use
set_clock_gating_check -setup xx -hold xx [get_clock CLK]
in your SDC.
In reply to diablo:
Thanks, I appreciate the input. Can you explain more? these are obviously different commands and perform different tasks, so i don't quite understand how one may justify the absence of another in this case.
Unless I use create_generated_clock command, I wonder if the EDA tool will know the shape of the gated clock waveform to perform timing analysis on the subsequent timing paths. Many clock gating logic are too complex (eg.: mux, xor logic) for a EDA tool to infer the gated clock waveform. By using set_clock_gating_check command, I believe I only guarantee that the gate enable signal switches correctly to avoid clock glitches (which is very important), but I still may encounter problems for timing analysis because of an undefined waveform of the gated clock. (that's where the create_generated_clock comes in). Does anybody agree with my thoughts?
I am trying to find a reason why someone would define the output of a gated clock as a derived clock as shown in the book example. any more inputs? can anyone tell me if the book example is a common rule-of-thumb practice?