@@ -23,9 +23,7 @@ set_input_delay -clock [create_clock -name clk1 -period 10 [get_ports clk1]] 2.0
2323set_input_delay -clock clk1 2.0 [get_ports in2]
2424set_output_delay -clock clk1 3.0 [get_ports out1]
2525
26- # ###########################################################
2726# Create clocks with different waveforms
28- # ###########################################################
2927puts " --- clock with custom waveform ---"
3028create_clock -name clk2 -period 20 -waveform {5 15} [get_ports clk2]
3129set_input_delay -clock clk2 2.0 [get_ports in3]
@@ -39,9 +37,7 @@ puts "--- clock with -add ---"
3937create_clock -name clk1_alt -period 5 -add [get_ports clk1]
4038report_checks
4139
42- # ###########################################################
4340# Generated clocks with various options
44- # ###########################################################
4541puts " --- generated clock divide_by ---"
4642create_generated_clock -name gclk_div2 -source [get_ports clk1] -divide_by 2 [get_pins reg1/Q]
4743report_checks
@@ -54,9 +50,7 @@ puts "--- generated clock edges ---"
5450create_generated_clock -name gclk_edge -source [get_ports clk1] -edges {1 3 5} [get_pins reg2/Q]
5551report_checks
5652
57- # ###########################################################
5853# Propagated clock
59- # ###########################################################
6054puts " --- set_propagated_clock ---"
6155set_propagated_clock [get_clocks clk1]
6256set_propagated_clock [get_clocks clk2]
@@ -65,9 +59,7 @@ report_checks
6559puts " --- set_propagated_clock on pin ---"
6660set_propagated_clock [get_ports clk1]
6761
68- # ###########################################################
6962# Clock slew/transition
70- # ###########################################################
7163puts " --- clock transition ---"
7264set_clock_transition -rise -max 0.15 [get_clocks clk1]
7365set_clock_transition -fall -min 0.08 [get_clocks clk1]
@@ -76,9 +68,7 @@ set_clock_transition -rise 0.12 [get_clocks clk1]
7668set_clock_transition -fall 0.09 [get_clocks clk1]
7769report_checks
7870
79- # ###########################################################
8071# Clock latency - source and non-source
81- # ###########################################################
8272puts " --- clock latency source ---"
8373set_clock_latency -source 0.5 [get_clocks clk1]
8474set_clock_latency -source -early 0.3 [get_clocks clk1]
@@ -93,46 +83,36 @@ set_clock_latency -rise -max 0.4 [get_clocks clk2]
9383set_clock_latency -fall -min 0.1 [get_clocks clk2]
9484report_checks
9585
96- # ###########################################################
9786# Clock insertion
98- # ###########################################################
9987puts " --- clock insertion ---"
10088set_clock_latency -source -rise -early 0.1 [get_clocks clk1]
10189set_clock_latency -source -rise -late 0.3 [get_clocks clk1]
10290set_clock_latency -source -fall -early 0.15 [get_clocks clk1]
10391set_clock_latency -source -fall -late 0.35 [get_clocks clk1]
10492report_checks
10593
106- # ###########################################################
10794# Clock uncertainty - simple
108- # ###########################################################
10995puts " --- clock uncertainty ---"
11096set_clock_uncertainty -setup 0.2 [get_clocks clk1]
11197set_clock_uncertainty -hold 0.1 [get_clocks clk1]
11298set_clock_uncertainty 0.15 [get_clocks clk2]
11399report_checks
114100
115- # ###########################################################
116101# Inter-clock uncertainty
117- # ###########################################################
118102puts " --- inter-clock uncertainty ---"
119103set_clock_uncertainty -from [get_clocks clk1] -to [get_clocks clk2] -setup 0.3
120104set_clock_uncertainty -from [get_clocks clk1] -to [get_clocks clk2] -hold 0.15
121105set_clock_uncertainty -from [get_clocks clk2] -to [get_clocks clk1] -setup 0.28
122106set_clock_uncertainty -from [get_clocks clk2] -to [get_clocks clk1] -hold 0.12
123107report_checks
124108
125- # ###########################################################
126109# Clock uncertainty on pin
127- # ###########################################################
128110puts " --- clock uncertainty on pin ---"
129111set_clock_uncertainty -setup 0.25 [get_ports clk1]
130112set_clock_uncertainty -hold 0.08 [get_ports clk1]
131113report_checks
132114
133- # ###########################################################
134115# Write SDC
135- # ###########################################################
136116puts " --- write_sdc ---"
137117set sdc1 [make_result_file sdc_clock_ops1.sdc]
138118write_sdc -no_timestamp $sdc1
@@ -141,24 +121,13 @@ puts "--- write_sdc compatible ---"
141121set sdc2 [make_result_file sdc_clock_ops2.sdc]
142122write_sdc -no_timestamp -compatible $sdc2
143123
144- # ###########################################################
145124# Remove clock and re-create
146- # ###########################################################
147125puts " --- delete_clock ---"
148126delete_clock [get_clocks vclk1]
149127report_checks
150128
151- # ###########################################################
152129# Clock properties reporting
153- # ###########################################################
154130puts " --- report_clock_properties ---"
155131report_clock_properties
156132report_clock_properties clk1
157133report_clock_properties clk2
158-
159- # ###########################################################
160- # Read back SDC roundtrip is tested by sdc_write_roundtrip_full.
161- # Removed here because OpenROAD regression runs tests in a
162- # shared environment where clock definitions from other tests
163- # can leak into read_sdc results.
164- # ###########################################################
0 commit comments