# Test advanced SDC constraints that exercise search module code read_liberty ../../test/nangate45/Nangate45_typ.lib read_verilog search_test1.v link_design search_test1 create_clock -name clk -period 10 [get_ports clk] set_input_delay -clock clk 1.0 [get_ports in1] set_input_delay -clock clk 1.0 [get_ports in2] set_output_delay -clock clk 2.0 [get_ports out1] puts "--- baseline report_checks ---" report_checks -path_delay max puts "--- set_clock_uncertainty ---" set_clock_uncertainty 0.5 [get_clocks clk] report_checks -path_delay max puts "--- unset_clock_uncertainty ---" unset_clock_uncertainty [get_clocks clk] puts "--- set_clock_latency -source ---" set_clock_latency -source 0.2 [get_clocks clk] report_checks -path_delay max puts "--- unset_clock_latency -source ---" unset_clock_latency -source [get_clocks clk] puts "--- set_clock_latency (network) ---" set_clock_latency 0.1 [get_clocks clk] report_checks -path_delay max puts "--- unset_clock_latency ---" unset_clock_latency [get_clocks clk] puts "--- set_timing_derate -early ---" set_timing_derate -early 0.95 report_checks -path_delay min puts "--- set_timing_derate -late ---" set_timing_derate -late 1.05 report_checks -path_delay max puts "--- unset_timing_derate ---" unset_timing_derate report_checks -path_delay max puts "--- set_case_analysis on port ---" set_case_analysis 1 [get_ports in2] report_checks -path_delay max report_constant [get_ports in2] puts "--- unset_case_analysis ---" unset_case_analysis [get_ports in2] report_checks -path_delay max puts "--- set_disable_timing on cell ---" set_disable_timing [get_cells buf1] report_checks -path_delay max report_disabled_edges puts "--- unset_disable_timing ---" unset_disable_timing [get_cells buf1] report_checks -path_delay max puts "--- set_disable_timing with from/to on lib cell ---" set_disable_timing -from A -to Z [get_lib_cells Nangate45_typ/BUF_X1] report_checks -path_delay max report_disabled_edges puts "--- unset lib cell disable ---" unset_disable_timing -from A -to Z [get_lib_cells Nangate45_typ/BUF_X1] report_checks -path_delay max puts "--- set_max_delay ---" set_max_delay 5 -from [get_ports in1] -to [get_pins reg1/D] report_checks -path_delay max -from [get_ports in1] -to [get_pins reg1/D] puts "--- remove max delay via unset_path_exceptions ---" unset_path_exceptions -from [get_ports in1] -to [get_pins reg1/D] puts "--- set_min_delay ---" set_min_delay 0.5 -from [get_ports in1] -to [get_pins reg1/D] report_checks -path_delay min -from [get_ports in1] -to [get_pins reg1/D] puts "--- remove min delay via unset_path_exceptions ---" unset_path_exceptions -from [get_ports in1] -to [get_pins reg1/D] puts "--- set_false_path from/to ---" set_false_path -from [get_ports in1] -to [get_pins reg1/D] report_checks -path_delay max puts "--- remove false path via unset_path_exceptions ---" unset_path_exceptions -from [get_ports in1] -to [get_pins reg1/D] report_checks -path_delay max puts "--- set_false_path -through ---" set_false_path -through [get_pins buf1/Z] report_checks -path_delay max puts "--- remove false_path -through ---" unset_path_exceptions -through [get_pins buf1/Z] report_checks -path_delay max puts "--- set_multicycle_path -setup ---" set_multicycle_path 2 -setup -from [get_ports in1] -to [get_pins reg1/D] report_checks -path_delay max -from [get_ports in1] -to [get_pins reg1/D] puts "--- set_multicycle_path -hold ---" set_multicycle_path 1 -hold -from [get_ports in1] -to [get_pins reg1/D] report_checks -path_delay min -from [get_ports in1] -to [get_pins reg1/D] puts "--- remove multicycle paths ---" unset_path_exceptions -setup -from [get_ports in1] -to [get_pins reg1/D] unset_path_exceptions -hold -from [get_ports in1] -to [get_pins reg1/D] puts "--- group_path ---" group_path -name fast_group -from [get_ports in1] report_checks -path_delay max puts "--- group_path with -to ---" group_path -name out_group -to [get_ports out1] report_checks -path_delay max puts "--- report_check_types after constraints ---" report_check_types -verbose puts "--- check_setup after all constraints ---" check_setup -verbose