Synopsys Timing Constraints And Optimization User Guide 2021 Instant
If you are using Fusion Compiler or IC Compiler II, the 2021 guide reflects a major shift toward —where the tool stops guessing wire delays and starts calculating them with real routing parasitics earlier in the flow.
The create_clock command is the foundation of all timing constraints. It defines the clock source, period, and waveform. The period, defined with the -period option, is the length of time for one full cycle. If a clock does not have a simple 50% duty cycle, the -waveform option specifies the exact rising and falling times within the period.
Synopsys Design Compiler employs sophisticated algorithms to transform RTL code into an optimized gate-level netlist based on your constraints. Synthesis Optimization Phases synopsys timing constraints and optimization user guide 2021
The guide meticulously explains the "journey" of a data signal. The process begins with a at a startpoint (like the clock pin of a register or an input port), where a clock edge pushes data onto a path. The signal then travels through a cloud of combinational logic. The journey must be completed before a capture event , where a subsequent clock edge latches the data at an endpoint (like the data pin of a register or an output port).
High differences between the launch clock arrival time and capture clock arrival time can destroy your setup or hold margins. If skew is high, check the clock tree synthesis (CTS) configuration. Common Solutions for Timing Violations If you are using Fusion Compiler or IC
The chip does not exist in isolation; it interfaces with external components. The guide dedicates significant space to input and output constraints:
set_output_delay -max 0.5 -clock SYS_CLK [get_ports data_out] set_output_delay -min -0.2 -clock SYS_CLK [get_ports data_out] Use code with caution. 5. Advanced Timing Exceptions The period, defined with the -period option, is
Generated clocks are derived from primary clocks via internal design logic like clock dividers, phase-locked loops (PLLs), or multiplexers. They must be explicitly declared so the timing engine can maintain phase relationships.
Setting accurate I/O delays is critical; if they are too optimistic, the chip will fail on the board; if too pessimistic, the chip will be over-designed and slower than necessary.
Mastering Static Timing Analysis: A Deep Dive into the Synopsys Timing Constraints and Optimization Design Flow