@@ -94,6 +94,8 @@ if { $::env(ABC_AREA) } {
9494 set abc_script $::env(SCRIPTS_DIR) /abc_speed.script
9595}
9696
97+ set abc_retime_script_for_two_phase $::env(SCRIPTS_DIR) /abc_retime_for_two_phase.script
98+
9799# Create argument list for stat
98100set lib_args " "
99101foreach lib $::env(LIB_FILES) {
@@ -113,6 +115,9 @@ if { [env_var_exists_and_non_empty DONT_USE_CELLS] } {
113115set abc_args [list -script $abc_script \
114116 {*}$lib_args {*}$lib_dont_use_args -constr $::env(OBJECTS_DIR) /abc.constr]
115117
118+ set abc_args_for_retiming [list -script $abc_retime_script_for_two_phase \
119+ {*}$lib_args {*}$lib_dont_use_args -constr $::env(OBJECTS_DIR) /abc.constr -keepff -dff]
120+
116121if { [env_var_exists_and_non_empty SDC_FILE_CLOCK_PERIOD] } {
117122 puts " Extracting clock period from SDC file: $::env(SDC_FILE_CLOCK_PERIOD) "
118123 set fp [open $::env(SDC_FILE_CLOCK_PERIOD) r]
@@ -184,22 +189,20 @@ proc connect_clk {cell_name clock_pin_name target_clk_port_name} {
184189}
185190
186191proc check_logical_equivalence {top_module gold gate abc_args lib_args lib_dont_use_args} {
192+ puts " Perform equivalence checking"
187193 puts " Save a backup that won't get deleted by this function"
188194 design -save backup_1
189195
190196 design -load $gold
191197 abc {*}$abc_args
192198 dfflibmap {*}$lib_args {*}$lib_dont_use_args
193- write_verilog -noexpr -noattr pre_retiming.v
194199 design -stash new_gold
195200
196201 design -load $gate
197- abc -liberty /OpenROAD-flow-scripts/flow/platforms/sky130hd/lib/sky130_fd_sc_hd__tt_025C_1v80.lib -dont_use sky130_fd_sc_hd__probe_p_8 -dont_use sky130_fd_sc_hd__probec_p_8 -dont_use sky130_fd_sc_hd__lpflow_bleeder_1 -dont_use sky130_fd_sc_hd__lpflow_clkbufkapwr_1 -dont_use sky130_fd_sc_hd__lpflow_clkbufkapwr_16 -dont_use sky130_fd_sc_hd__lpflow_clkbufkapwr_2 -dont_use sky130_fd_sc_hd__lpflow_clkbufkapwr_4 -dont_use sky130_fd_sc_hd__lpflow_clkbufkapwr_8 -dont_use sky130_fd_sc_hd__lpflow_clkinvkapwr_1 -dont_use sky130_fd_sc_hd__lpflow_clkinvkapwr_16 -dont_use sky130_fd_sc_hd__lpflow_clkinvkapwr_2 -dont_use sky130_fd_sc_hd__lpflow_clkinvkapwr_4 -dont_use sky130_fd_sc_hd__lpflow_clkinvkapwr_8 -dont_use sky130_fd_sc_hd__lpflow_decapkapwr_12 -dont_use sky130_fd_sc_hd__lpflow_decapkapwr_3 -dont_use sky130_fd_sc_hd__lpflow_decapkapwr_4 -dont_use sky130_fd_sc_hd__lpflow_decapkapwr_6 -dont_use sky130_fd_sc_hd__lpflow_decapkapwr_8 -dont_use sky130_fd_sc_hd__lpflow_inputiso0n_1 -dont_use sky130_fd_sc_hd__lpflow_inputiso0p_1 -dont_use sky130_fd_sc_hd__lpflow_inputiso1n_1 -dont_use sky130_fd_sc_hd__lpflow_inputiso1p_1 -dont_use sky130_fd_sc_hd__lpflow_inputisolatch_1 -dont_use sky130_fd_sc_hd__lpflow_isobufsrc_1 -dont_use sky130_fd_sc_hd__lpflow_isobufsrc_16 -dont_use sky130_fd_sc_hd__lpflow_isobufsrc_2 -dont_use sky130_fd_sc_hd__lpflow_isobufsrc_4 -dont_use sky130_fd_sc_hd__lpflow_isobufsrc_8 -dont_use sky130_fd_sc_hd__lpflow_isobufsrckapwr_16 -dont_use sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_1 -dont_use sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_2 -dont_use sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_4 -dont_use sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_4 -dont_use sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_1 -dont_use sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_2 -dont_use sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_4 -constr ./objects/sky130hd/aes/base/abc.constr -keepff -dff -script "+strash; zero; dretime -v; retime -M 5 -D 1 -o -v; map -D 1"
198202 dfflibmap {*}$lib_args {*}$lib_dont_use_args
199- write_verilog -noexpr -noattr post_retiming.v
200203 design -stash new_gate
201204
202- # puts "Create new modules"
205+ puts " Create new modules"
203206 design -copy-from new_gold -as gold $top_module
204207 design -copy-from new_gate -as gate $top_module
205208
0 commit comments