Create Clocks with Different Periods
This script shows how to create clocks that have different clock periods.
# Procedure to create a clock with different clock periods
proc define_clock_data {clk_id} {
set period 10
set waveform {0 5}
if {$clk_id >= 0 && $clk_id < 10} {
set period 20
set waveform {5 10}
} elseif {$clk_id >=10 && $clk_id < 20} {
set period 30
set waveform {10 15}
}
return [ list $period $waveform ]
}
# create the clocks
for {set i 0} {$i < 32} {incr i} {
set clock_data [ define_clock_data $i ]
create_clock -period [ lindex $clock_data 0 ] \
-waveform [ lindex $clock_data 1 ] \
-name clk_in[$i] [ get_ports clk_in[$i] ]
}
# Set clock groups after all clocks are defined
for {set i 0} {$i < 32} {incr i} {
set_clock_groups -exclusive -group clk_in[$i]
}