Skip to content

Commit b7a3f26

Browse files
committed
Update synth_preamble.tcl and two_phase_clk_synth.tcl
1 parent 2fa6b35 commit b7a3f26

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

flow/scripts/synth_preamble.tcl

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -186,15 +186,29 @@ proc connect_clk {cell_name clock_pin_name target_clk_port_name} {
186186
proc check_logical_equivalence {top_module gold gate abc_args lib_args lib_dont_use_args} {
187187
puts "Save a backup that won't get deleted by this function"
188188
design -save backup_1
189-
190-
# Create new modules
191-
189+
190+
design -load $gold
191+
abc {*}$abc_args
192+
dfflibmap {*}$lib_args {*}$lib_dont_use_args
193+
write_verilog -noexpr -noattr pre_retiming.v
194+
design -stash new_gold
195+
196+
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"
198+
dfflibmap {*}$lib_args {*}$lib_dont_use_args
199+
write_verilog -noexpr -noattr post_retiming.v
200+
design -stash new_gate
201+
192202
#puts "Create new modules"
193-
design -copy-from $gold -as gold $top_module
194-
design -copy-from $gate -as gate $top_module
203+
design -copy-from new_gold -as gold $top_module
204+
design -copy-from new_gate -as gate $top_module
195205

196206
equiv_make -inames gold gate equiv
197207
yosys cd equiv
208+
209+
foreach lib $::env(LIB_FILES) {
210+
yosys read_liberty -wb -ignore_miss_func $lib
211+
}
198212
prep -flatten -top equiv
199213
opt_clean -purge
200214

@@ -206,4 +220,3 @@ proc check_logical_equivalence {top_module gold gate abc_args lib_args lib_dont_
206220
puts "Restore the design"
207221
design -load backup_1
208222
}
209-

flow/scripts/two_phase_clk_synth.tcl

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,18 +109,15 @@ 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-
design -save post_retiming
112+
puts "Perform equivalence checking"
113113
design -save pre_retiming
114-
115-
puts "Perform retiming"
116-
abc -keepff -dff -markgroups -script "+strash; zero; &get -n; print_latch; &fraig -x; &put; scorr; dc2; dretime -v; retime -M 5 -D 1 -o -v; strash; zero; &get -n; &dch -f; &nf -D 1; &put"
117-
opt -noff -purge
118-
119114
design -save post_retiming
120-
121-
puts "Perform logical equivalence checking"
122115
check_logical_equivalence $::env(DESIGN_NAME) pre_retiming post_retiming $abc_args $lib_args $lib_dont_use_args
123116

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
120+
124121
# puts "Replace each DFF with a corresponding latch"
125122
techmap -autoproc -map $::env(DFF_TO_LATCH_MAP_FILE)
126123
opt

0 commit comments

Comments
 (0)