OpenSTA/verilog/test/verilog_escaped_write_compl...

52 lines
1.7 KiB
Tcl

# Test 3: Write complex bus design
# Exercises: writeWireDcls with bus nets (isBusName, parseBusName)
source ../../test/helpers.tcl
suppress_msg 1140
#---------------------------------------------------------------
# Test 3: Write complex bus design
# Exercises: writeWireDcls with bus nets (isBusName, parseBusName)
#---------------------------------------------------------------
puts "--- Test 3: write complex bus design ---"
read_liberty ../../test/nangate45/Nangate45_typ.lib
read_verilog verilog_complex_bus_test.v
link_design verilog_complex_bus_test
set out3 [make_result_file verilog_escaped_complex.v]
write_verilog $out3
set out4 [make_result_file verilog_escaped_complex_pwr.v]
write_verilog -include_pwr_gnd $out4
# Read back complex bus design
puts "--- roundtrip complex bus ---"
read_liberty ../../test/nangate45/Nangate45_typ.lib
read_verilog $out3
link_design verilog_complex_bus_test
set rt2_cells [get_cells *]
puts "complex roundtrip cells: [llength $rt2_cells]"
set rt2_ports [get_ports *]
puts "complex roundtrip ports: [llength $rt2_ports]"
# Bus port queries after roundtrip
set rt2_da [get_ports {data_a[*]}]
puts "roundtrip data_a[*]: [llength $rt2_da]"
set rt2_db [get_ports {data_b[*]}]
puts "roundtrip data_b[*]: [llength $rt2_db]"
set rt2_res [get_ports {result[*]}]
puts "roundtrip result[*]: [llength $rt2_res]"
# Timing after complex roundtrip
create_clock -name clk -period 10 [get_ports clk]
set_input_delay -clock clk 0 [get_ports {data_a[*]}]
set_input_delay -clock clk 0 [get_ports {data_b[*]}]
set_output_delay -clock clk 0 [get_ports {result[*]}]
set_output_delay -clock clk 0 [get_ports carry]
set_output_delay -clock clk 0 [get_ports overflow]
set_input_transition 0.1 [all_inputs]
report_checks