Skip to content

Commit 02acbf8

Browse files
committed
Update synth_preamble.tcl and two_phase_clk_synth.tcl
1 parent b7a3f26 commit 02acbf8

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

flow/scripts/synth_preamble.tcl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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
98100
set lib_args ""
99101
foreach lib $::env(LIB_FILES) {
@@ -113,6 +115,9 @@ if { [env_var_exists_and_non_empty DONT_USE_CELLS] } {
113115
set 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+
116121
if { [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

186191
proc 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

flow/scripts/two_phase_clk_synth.tcl

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,22 @@ connect_clk *custom_FF_replace_2.mux_latch C clk_1
109109
connect_clk *custom_FF_replace_1.mux_latch C clk_2
110110

111111

112-
puts "Perform equivalence checking"
113-
design -save pre_retiming
114-
design -save post_retiming
115-
check_logical_equivalence $::env(DESIGN_NAME) pre_retiming post_retiming $abc_args $lib_args $lib_dont_use_args
116-
117-
puts "Perform retiming and mapping"
118-
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"
119-
opt
112+
if { $::env(ABC_RETIME_FOR_TWO_PHASE) } {
113+
design -save pre_retiming
114+
115+
puts "Perform retiming and mapping"
116+
abc {*}$abc_args_for_retiming
117+
118+
design -save post_retiming
119+
120+
check_logical_equivalence $::env(DESIGN_NAME) pre_retiming post_retiming $abc_args $lib_args $lib_dont_use_args
121+
122+
opt
123+
} else {
124+
puts "Don't perform retiming"
125+
}
120126

121-
# puts "Replace each DFF with a corresponding latch"
127+
puts "Replace each DFF with a corresponding latch"
122128
techmap -autoproc -map $::env(DFF_TO_LATCH_MAP_FILE)
123129
opt
124130

0 commit comments

Comments
 (0)