Constraint Name | Description |
---|---|
set_max_delay | Defines input and output delays to budget the time allowed for the OOC module. Helps control placement in the OOC implementation and ease timing closure at the top level. |
create_clock | Defines clocks on the OOC module ports. A create_clock constraint should exist for every clock port, whether the clock buffer is instantiated in the top level or the OOC module. |
set_clock_uncertainty | Defines clock uncertainty for a clock that is an input to an OOC module. This constraint should be defined for all clocks of an OOC module to ensure accurate timing analysis. Failure to do so could result in failing paths when a module is imported. |
set_system_jitter | Defines system jitter value. This constraint should be set to zero when defining user clock uncertainty (set_clock_uncertainty) based on the top-level design. Otherwise, the system jitter is factored into the uncertainity calculations for the OOC implementation, making the final value different from the user-defined value. |
set_clock_latency | Defines latency for a clock that is an input to an OOC module. This constraint is needed to correctly model clock delay when the entire clock path is not known. |
set_clock_groups | Defines asynchronous clocks (-asychnronous ), or
clocks driven by the same global buffer
(-physically_exclusive ). |
Timing Constraint Examples
-
create_clock -period 8.000 -name clk -waveform {0.000 4.000} [get_ports clk]
-
set_max_delay -from [get_ports <ports>] -to [get_pins <synchronous pin>] -datapath_only <delay>
-
set_max_delay -from [get_pins <synchronous pin>] -to [get_ports <ports>] -datapath_only <delay>
-
set_system_jitter 0.0
-
set_clock_latency -source -min 0.10
-
set_clock_latency -source -max 0.20
-
set_clock_groups -physically_exclusive -group [clk1] -group [clk2]
-
set_clock_groups -asynchronous -group [clk1] -group [clk2]
These timing constraints are applied to the OOC module itself. The OOC implementation should constrain all timing into, out of, and internal to the instance. This includes special case paths such as false paths and multicycle paths.