118 lines
3.6 KiB
Tcl
118 lines
3.6 KiB
Tcl
# Test wire load model handling for code coverage
|
|
source ../../test/helpers.tcl
|
|
|
|
############################################################
|
|
# Read library with wire load models
|
|
############################################################
|
|
|
|
read_liberty ../../test/nangate45/Nangate45_typ.lib
|
|
|
|
# Read verilog and link design to enable wireload operations
|
|
read_verilog ../../sdc/test/sdc_test2.v
|
|
link_design sdc_test2
|
|
|
|
############################################################
|
|
# Setup constraints (needed before report_checks)
|
|
############################################################
|
|
|
|
create_clock -name clk1 -period 10 [get_ports clk1]
|
|
set_input_delay -clock clk1 2.0 [get_ports in1]
|
|
set_input_delay -clock clk1 2.0 [get_ports in2]
|
|
set_input_delay -clock clk1 2.0 [get_ports in3]
|
|
set_output_delay -clock clk1 3.0 [get_ports out1]
|
|
set_output_delay -clock clk1 3.0 [get_ports out2]
|
|
|
|
############################################################
|
|
# Wire load model queries - report_checks after each to show timing impact
|
|
############################################################
|
|
|
|
set_wire_load_model -name "1K_hvratio_1_1"
|
|
report_checks
|
|
|
|
set_wire_load_model -name "1K_hvratio_1_2"
|
|
report_checks
|
|
|
|
set_wire_load_model -name "1K_hvratio_1_4"
|
|
report_checks
|
|
|
|
set_wire_load_model -name "3K_hvratio_1_1"
|
|
report_checks
|
|
|
|
set_wire_load_model -name "3K_hvratio_1_2"
|
|
report_checks
|
|
|
|
set_wire_load_model -name "3K_hvratio_1_4"
|
|
report_checks
|
|
|
|
set_wire_load_model -name "5K_hvratio_1_1"
|
|
report_checks
|
|
|
|
set_wire_load_model -name "5K_hvratio_1_2"
|
|
report_checks
|
|
|
|
set_wire_load_model -name "5K_hvratio_1_4"
|
|
report_checks
|
|
|
|
############################################################
|
|
# Wire load mode switching (exercises wireloadModeString)
|
|
############################################################
|
|
|
|
set_wire_load_mode top
|
|
report_checks
|
|
|
|
set_wire_load_mode enclosed
|
|
report_checks
|
|
|
|
set_wire_load_mode segmented
|
|
report_checks
|
|
|
|
############################################################
|
|
# Write SDC with wireload info
|
|
############################################################
|
|
|
|
set sdc_file [make_result_file liberty_wireload.sdc]
|
|
write_sdc -no_timestamp $sdc_file
|
|
|
|
############################################################
|
|
# Write liberty (exercises wireload writing in LibertyWriter)
|
|
############################################################
|
|
|
|
set outfile [make_result_file liberty_wireload_write.lib]
|
|
sta::write_liberty NangateOpenCellLibrary $outfile
|
|
|
|
############################################################
|
|
# Read Sky130 library (different wireload models)
|
|
############################################################
|
|
|
|
read_liberty ../../test/sky130hd/sky130hd_tt.lib
|
|
|
|
# Try Sky130 wire load models
|
|
set_wire_load_model -name "Small"
|
|
report_checks
|
|
set_wire_load_model -name "Medium"
|
|
report_checks
|
|
|
|
############################################################
|
|
# Write liberty for sky130 (different wireload format)
|
|
############################################################
|
|
|
|
set outfile2 [make_result_file liberty_wireload_write_sky130.lib]
|
|
sta::write_liberty sky130_fd_sc_hd__tt_025C_1v80 $outfile2
|
|
|
|
############################################################
|
|
# Read IHP library
|
|
############################################################
|
|
|
|
read_liberty ../../test/ihp-sg13g2/sg13g2_stdcell_typ_1p20V_25C.lib
|
|
|
|
set outfile3 [make_result_file liberty_wireload_write_ihp.lib]
|
|
sta::write_liberty sg13g2_stdcell_typ_1p20V_25C $outfile3
|
|
|
|
############################################################
|
|
# Operating conditions + wireload interaction
|
|
############################################################
|
|
|
|
set_operating_conditions typical
|
|
|
|
report_checks
|