create_clock Constraint
create_clock -period <float> [-waveform {rising_edge falling_edge}] \
[-name <clock name>] [<targets>] [-add]
This command defines a clock with the desired period (in ns) and waveform, and applies it to the target nodes. If you do not specify a target, the software considers the clock to be a virtual clock. You can use the virtual clock to constrain inputs and outputs to a clock external to the design. The tool does not support multiple clock assignments to the same target.
Note: You can refer to netlist clocks using regular expressions.
-periodindicates the clock period in ns.-waveformindicates the rising and falling edges (duty cycle) of the clock as two time values: the first rising edge and the next falling edge. If you omit the waveform option, the command creates a clock with a rising edge at 0 and a falling edge at the half period, which is equivalent to using-waveform {0 <period/2>}.-nameindicates the clock name. If omitted, the software gives the clock the name of the first target.-adddefines multiple clocks for the same target. First use-nameto specify the new clock name. If you already used the same clock name or did not define it, the last SDC command overwrites the existing clock.
If you assign a virtual clock using the create_clock command, you must
reference it elsewhere in a set_input_delay or
set_output_delay constraint.
For examples, see
Tip: The timing analysis and place-and-route runtime is affected by the number
of clocks you define in your SDC file. Therefore, if possible, you should only define
the most critical clocks to reduce the runtime.