OpenSTA/liberty/test/liberty_writer.tcl

157 lines
5.2 KiB
Tcl

# Test liberty writer and advanced reading features for code coverage
# Targets: LibertyWriter.cc, LibertyReader.cc (more paths), LibertyBuilder.cc
source ../../test/helpers.tcl
############################################################
# Read and write various libraries
############################################################
# Read Nangate45
read_liberty ../../test/nangate45/Nangate45_typ.lib
puts "PASS: read Nangate45"
set outfile1 [make_result_file liberty_write_nangate.lib]
sta::write_liberty NangateOpenCellLibrary $outfile1
puts "PASS: write_liberty Nangate45"
# Read ASAP7 SEQ (exercises different cell types)
read_liberty ../../test/asap7/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib
puts "PASS: read ASAP7 SEQ"
set outfile2 [make_result_file liberty_write_asap7_seq.lib]
sta::write_liberty asap7sc7p5t_SEQ_RVT_FF_nldm_220123 $outfile2
puts "PASS: write_liberty ASAP7 SEQ"
# Read ASAP7 SIMPLE (combinational cells)
read_liberty ../../test/asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz
puts "PASS: read ASAP7 SIMPLE"
set outfile3 [make_result_file liberty_write_asap7_simple.lib]
sta::write_liberty asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120 $outfile3
puts "PASS: write_liberty ASAP7 SIMPLE"
# Read IHP library
read_liberty ../../test/ihp-sg13g2/sg13g2_stdcell_typ_1p20V_25C.lib
puts "PASS: read IHP"
set outfile4 [make_result_file liberty_write_ihp.lib]
sta::write_liberty sg13g2_stdcell_typ_1p20V_25C $outfile4
puts "PASS: write_liberty IHP"
# Read Sky130 library
read_liberty ../../test/sky130hd/sky130hd_tt.lib
puts "PASS: read Sky130"
# Read CCSN library (compressed, exercises CCSN-specific paths)
read_liberty ../../test/asap7_ccsn.lib.gz
puts "PASS: read CCSN library"
# Read latch library
read_liberty ../../test/liberty_latch3.lib
puts "PASS: read latch library"
# Read SRAM macro library
read_liberty ../../test/asap7/fakeram7_256x32.lib
puts "PASS: read fakeram ASAP7"
read_liberty ../../test/nangate45/fakeram45_256x16.lib
puts "PASS: read fakeram Nangate45"
read_liberty ../../test/nangate45/fake_macros.lib
puts "PASS: read fake_macros"
# Read liberty_float_as_str
read_liberty ../../test/liberty_float_as_str.lib
puts "PASS: read liberty_float_as_str"
# Read liberty_backslash_eol
read_liberty ../../test/liberty_backslash_eol.lib
puts "PASS: read liberty_backslash_eol"
# Read liberty_arcs_one2one
read_liberty ../../test/liberty_arcs_one2one_1.lib
puts "PASS: read liberty_arcs_one2one_1"
read_liberty ../../test/liberty_arcs_one2one_2.lib
puts "PASS: read liberty_arcs_one2one_2"
############################################################
# Additional ASAP7 variants (different Vt/corner combos)
############################################################
read_liberty ../../test/asap7/asap7sc7p5t_SEQ_LVT_FF_nldm_220123.lib
puts "PASS: read ASAP7 SEQ LVT FF"
read_liberty ../../test/asap7/asap7sc7p5t_SEQ_SLVT_FF_nldm_220123.lib
puts "PASS: read ASAP7 SEQ SLVT FF"
read_liberty ../../test/asap7/asap7sc7p5t_INVBUF_LVT_FF_nldm_220122.lib.gz
puts "PASS: read ASAP7 INVBUF LVT FF"
read_liberty ../../test/asap7/asap7sc7p5t_INVBUF_SLVT_FF_nldm_220122.lib.gz
puts "PASS: read ASAP7 INVBUF SLVT FF"
read_liberty ../../test/asap7/asap7sc7p5t_AO_LVT_FF_nldm_211120.lib.gz
puts "PASS: read ASAP7 AO LVT FF"
read_liberty ../../test/asap7/asap7sc7p5t_AO_SLVT_FF_nldm_211120.lib.gz
puts "PASS: read ASAP7 AO SLVT FF"
read_liberty ../../test/asap7/asap7sc7p5t_OA_LVT_FF_nldm_211120.lib.gz
puts "PASS: read ASAP7 OA LVT FF"
read_liberty ../../test/asap7/asap7sc7p5t_OA_SLVT_FF_nldm_211120.lib.gz
puts "PASS: read ASAP7 OA SLVT FF"
read_liberty ../../test/asap7/asap7sc7p5t_SIMPLE_LVT_FF_nldm_211120.lib.gz
puts "PASS: read ASAP7 SIMPLE LVT FF"
read_liberty ../../test/asap7/asap7sc7p5t_SIMPLE_SLVT_FF_nldm_211120.lib.gz
puts "PASS: read ASAP7 SIMPLE SLVT FF"
############################################################
# TT corners
############################################################
read_liberty ../../test/asap7/asap7sc7p5t_INVBUF_RVT_TT_nldm_220122.lib.gz
puts "PASS: read ASAP7 INVBUF RVT TT"
read_liberty ../../test/asap7/asap7sc7p5t_INVBUF_LVT_TT_nldm_220122.lib.gz
puts "PASS: read ASAP7 INVBUF LVT TT"
read_liberty ../../test/asap7/asap7sc7p5t_INVBUF_SLVT_TT_nldm_220122.lib.gz
puts "PASS: read ASAP7 INVBUF SLVT TT"
############################################################
# SS corners
############################################################
read_liberty ../../test/asap7/asap7sc7p5t_AO_RVT_SS_nldm_211120.lib.gz
puts "PASS: read ASAP7 AO RVT SS"
read_liberty ../../test/asap7/asap7sc7p5t_OA_RVT_SS_nldm_211120.lib.gz
puts "PASS: read ASAP7 OA RVT SS"
############################################################
# Sky130 variants
############################################################
read_liberty ../../test/sky130hd/sky130_fd_sc_hd__ff_n40C_1v95.lib
puts "PASS: read Sky130 FF"
read_liberty ../../test/sky130hd/sky130_fd_sc_hd__ss_n40C_1v40.lib
puts "PASS: read Sky130 SS"
read_liberty ../../test/sky130hd/sky130_fd_sc_hd__tt_025C_1v80.lib
puts "PASS: read Sky130 TT"
# Read sky130hs variants
read_liberty ../../test/sky130hs/sky130_fd_sc_hs__tt_025C_1v80.lib
puts "PASS: read Sky130HS TT"
# GF180MCU SRAM
read_liberty ../../test/gf180mcu_sram.lib.gz
puts "PASS: read gf180mcu_sram"
puts "ALL PASSED"