Skip to content

Commit 8b2d94e

Browse files
b-chmielkbieganskiRRozak
committed
rmp: eqy check
Co-authored-by: Krzysztof Bieganski <[email protected]> Co-authored-by: Ryszard Rozak <[email protected]> Signed-off-by: Bartłomiej Chmiel <[email protected]>
1 parent 3efdfa6 commit 8b2d94e

38 files changed

+238
-73
lines changed

src/odb/test/replace_hier_mod1.tcl

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ report_checks -through r2/D -digits 3
3636
# - it looks like "-through" creates a cache internally.
3737
#report_checks -through u1z -through r2/D -digits 3
3838
puts "Equivalence check - pre"
39-
run_equivalence_test replace_hier_mod1 ./Nangate45/work_around_yosys/ "None"
39+
run_equivalence_test replace_hier_mod1 \
40+
-lib_dir ./Nangate45/work_around_yosys/ \
41+
-remove_cells "None"
4042

4143
puts "### swap bc1 to inv_chain ###"
4244
#set_debug_level ODB replace_design 1
@@ -50,7 +52,9 @@ estimate_parasitics -placement
5052
report_checks -through r2/D -digits 3
5153
#report_checks -through u1z -through r2/D -digits 3
5254
puts "Equivalence check - swap (buffer_chain -> inv_chain)"
53-
run_equivalence_test replace_hier_mod1 ./Nangate45/work_around_yosys/ "None"
55+
run_equivalence_test replace_hier_mod1 \
56+
-lib_dir ./Nangate45/work_around_yosys/ \
57+
-remove_cells "None"
5458

5559
puts "### swap bc1 back to buffer_chain ###"
5660
replace_hier_module bc1 buffer_chain
@@ -63,7 +67,9 @@ estimate_parasitics -placement
6367
report_checks -through r2/D -digits 3
6468
#report_checks -through u1z -through r2/D -digits 3
6569
puts "Equivalence check - swap for rollback (inv_chain -> buffer_chain)"
66-
run_equivalence_test replace_hier_mod1 ./Nangate45/work_around_yosys/ "None"
70+
run_equivalence_test replace_hier_mod1 \
71+
-lib_dir ./Nangate45/work_around_yosys/ \
72+
-remove_cells "None"
6773

6874
puts "### swap bc1 back to inv_chain ###"
6975
replace_hier_module bc1 inv_chain
@@ -76,4 +82,6 @@ estimate_parasitics -placement
7682
report_checks -through r2/D -digits 3
7783
#report_checks -through u1z -through r2/D -digits 3
7884
puts "Equivalence check - redo swap (buffer_chain -> inv_chain)"
79-
run_equivalence_test replace_hier_mod1 ./Nangate45/work_around_yosys/ "None"
85+
run_equivalence_test replace_hier_mod1 \
86+
-lib_dir ./Nangate45/work_around_yosys/ \
87+
-remove_cells "None"

src/odb/test/replace_hier_mod2.tcl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ estimate_parasitics -placement
4343
report_checks -through _carry_out_and_/C -field input
4444
report_cell_usage _551_
4545
puts "Checking equivalence after swap #2 (Rollback)..."
46-
run_equivalence_test replace_hier_mod2 sky130hd/work_around_yosys "None"
46+
run_equivalence_test replace_hier_mod2 \
47+
-lib_dir ./sky130hd/work_around_yosys/ \
48+
-remove_cells "None"
4749

4850
# Swap #3. BRENT_KUNG -> KOGGE_STONE (Redo)
4951
replace_hier_module _551_ LCU_16_KOGGE_STONE
@@ -59,4 +61,6 @@ estimate_parasitics -placement
5961
report_checks -through _carry_out_and_/C -field input
6062
report_cell_usage _551_
6163
puts "Checking equivalence after swap #4 (Rollback again)..."
62-
run_equivalence_test replace_hier_mod2 sky130hd/work_around_yosys "None"
64+
run_equivalence_test replace_hier_mod2 \
65+
-lib_dir ./sky130hd/work_around_yosys/ \
66+
-remove_cells "None"

src/odb/test/replace_hier_mod6.tcl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ proc do_swap { from_alu to_alu } {
4343
estimate_parasitics -placement
4444
report_checks -fields input_pins -through _001_
4545
report_cell_usage _120_
46-
run_equivalence_test $test_name ./sky130hd/work_around_yosys/ "None"
46+
run_equivalence_test $test_name \
47+
-lib_dir ./sky130hd/work_around_yosys/ \
48+
-remove_cells "None"
4749
} else {
4850
puts "Failed to replace hier module"
4951
}

src/odb/test/replace_hier_mod_undo2.tcl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,6 @@ odb::dbDatabase_undoEco $block
6464
report_cell_usage gcd_1/_552_
6565
report_checks -through gcd_1/_carry_out_and_/B -fields input_pins
6666

67-
run_equivalence_test replace_hier_mod5 ./Nangate45/work_around_yosys/ "None"
67+
run_equivalence_test replace_hier_mod5 \
68+
-lib_dir ./Nangate45/work_around_yosys/ \
69+
-remove_cells "None"

src/rmp/test/.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
aes_annealing
2+
aes_annealing.v
3+
gcd_annealing1
4+
gcd_annealing1.v
5+
gcd_annealing2
6+
gcd_annealing2.v

src/rmp/test/BUILD

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,6 @@ MANUAL_TESTS = [
3535
"rmp_readme_msgs_check",
3636
]
3737

38-
# TODO: Enable once difference between bazel and ctest is resolved.
39-
MANUAL_FOR_BAZEL_TESTS = [
40-
"aes_annealing",
41-
"gcd_annealing1",
42-
"gcd_annealing2",
43-
]
44-
4538
ALL_TESTS = COMPULSORY_TESTS + MANUAL_TESTS
4639

4740
filegroup(
@@ -132,8 +125,7 @@ filegroup(
132125
regression_test(
133126
name = test_name,
134127
data = [":" + test_name + "_resources"],
135-
tags = ["manual"] if test_name in MANUAL_TESTS or
136-
test_name in MANUAL_FOR_BAZEL_TESTS else [],
128+
tags = ["manual"] if test_name in MANUAL_TESTS else [],
137129
visibility = ["//visibility:public"],
138130
)
139131
for test_name in ALL_TESTS

src/rmp/test/gcd_annealing1.ok

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,3 +183,4 @@ Corner: slow
183183

184184
wns max -98.73
185185
tns max -3434.68
186+
Repair timing output passed/skipped equivalence test

src/rmp/test/gcd_annealing1.tcl

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
source "helpers.tcl"
22

3+
set test_name gcd_annealing1
4+
35
define_corners fast slow
4-
read_liberty -corner slow ./asap7/asap7sc7p5t_AO_RVT_SS_nldm_211120.lib.gz
5-
read_liberty -corner slow ./asap7/asap7sc7p5t_INVBUF_RVT_SS_nldm_220122.lib.gz
6-
read_liberty -corner slow ./asap7/asap7sc7p5t_OA_RVT_SS_nldm_211120.lib.gz
7-
read_liberty -corner slow ./asap7/asap7sc7p5t_SEQ_RVT_SS_nldm_220123.lib
8-
read_liberty -corner slow ./asap7/asap7sc7p5t_SIMPLE_RVT_SS_nldm_211120.lib.gz
9-
read_liberty -corner fast ./asap7/asap7sc7p5t_AO_RVT_FF_nldm_211120.lib.gz
10-
read_liberty -corner fast ./asap7/asap7sc7p5t_INVBUF_RVT_FF_nldm_220122.lib.gz
11-
read_liberty -corner fast ./asap7/asap7sc7p5t_OA_RVT_FF_nldm_211120.lib.gz
12-
read_liberty -corner fast ./asap7/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib
13-
read_liberty -corner fast ./asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz
6+
set lib_files_slow {\
7+
./asap7/asap7sc7p5t_AO_RVT_SS_nldm_211120.lib.gz \
8+
./asap7/asap7sc7p5t_INVBUF_RVT_SS_nldm_220122.lib.gz \
9+
./asap7/asap7sc7p5t_OA_RVT_SS_nldm_211120.lib.gz \
10+
./asap7/asap7sc7p5t_SEQ_RVT_SS_nldm_220123.lib \
11+
./asap7/asap7sc7p5t_SIMPLE_RVT_SS_nldm_211120.lib.gz\
12+
}
13+
set lib_files_fast {\
14+
./asap7/asap7sc7p5t_AO_RVT_FF_nldm_211120.lib.gz \
15+
./asap7/asap7sc7p5t_INVBUF_RVT_FF_nldm_220122.lib.gz \
16+
./asap7/asap7sc7p5t_OA_RVT_FF_nldm_211120.lib.gz \
17+
./asap7/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib \
18+
./asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz\
19+
}
20+
21+
foreach lib_file $lib_files_slow {
22+
read_liberty -corner slow $lib_file
23+
}
24+
foreach lib_file $lib_files_fast {
25+
read_liberty -corner fast $lib_file
26+
}
1427

1528
read_lef ./asap7/asap7_tech_1x_201209.lef
1629
read_lef ./asap7/asap7sc7p5t_28_R_1x_220121a.lef
@@ -25,6 +38,7 @@ report_timing_histogram
2538
report_checks
2639
report_wns
2740
report_tns
41+
write_verilog_for_eqy $test_name before "None"
2842

2943
puts "-- After --\n"
3044

@@ -34,3 +48,12 @@ report_cell_usage
3448
report_checks
3549
report_wns
3650
report_tns
51+
52+
if { [info exists ::env(EQUIVALENCE_CHECK)] } {
53+
set liberty_files [concat $lib_files_slow $lib_files_fast]
54+
run_equivalence_test $test_name \
55+
-liberty_files $liberty_files \
56+
-remove_cells "None"
57+
} else {
58+
puts "Repair timing output failed equivalence test"
59+
}

src/rmp/test/gcd_annealing2.ok

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,4 @@ Corner: slow
164164

165165
wns max -36.20
166166
tns max -777.64
167+
Repair timing output passed/skipped equivalence test

src/rmp/test/gcd_annealing2.tcl

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
source "helpers.tcl"
22

3+
set test_name gcd_annealing2
4+
35
define_corners fast slow
4-
read_liberty -corner slow ./asap7/asap7sc7p5t_AO_RVT_SS_nldm_211120.lib.gz
5-
read_liberty -corner slow ./asap7/asap7sc7p5t_INVBUF_RVT_SS_nldm_220122.lib.gz
6-
read_liberty -corner slow ./asap7/asap7sc7p5t_OA_RVT_SS_nldm_211120.lib.gz
7-
read_liberty -corner slow ./asap7/asap7sc7p5t_SEQ_RVT_SS_nldm_220123.lib
8-
read_liberty -corner slow ./asap7/asap7sc7p5t_SIMPLE_RVT_SS_nldm_211120.lib.gz
9-
read_liberty -corner fast ./asap7/asap7sc7p5t_AO_RVT_FF_nldm_211120.lib.gz
10-
read_liberty -corner fast ./asap7/asap7sc7p5t_INVBUF_RVT_FF_nldm_220122.lib.gz
11-
read_liberty -corner fast ./asap7/asap7sc7p5t_OA_RVT_FF_nldm_211120.lib.gz
12-
read_liberty -corner fast ./asap7/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib
13-
read_liberty -corner fast ./asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz
6+
set lib_files_slow {\
7+
./asap7/asap7sc7p5t_AO_RVT_SS_nldm_211120.lib.gz \
8+
./asap7/asap7sc7p5t_INVBUF_RVT_SS_nldm_220122.lib.gz \
9+
./asap7/asap7sc7p5t_OA_RVT_SS_nldm_211120.lib.gz \
10+
./asap7/asap7sc7p5t_SEQ_RVT_SS_nldm_220123.lib \
11+
./asap7/asap7sc7p5t_SIMPLE_RVT_SS_nldm_211120.lib.gz\
12+
}
13+
set lib_files_fast {\
14+
./asap7/asap7sc7p5t_AO_RVT_FF_nldm_211120.lib.gz \
15+
./asap7/asap7sc7p5t_INVBUF_RVT_FF_nldm_220122.lib.gz \
16+
./asap7/asap7sc7p5t_OA_RVT_FF_nldm_211120.lib.gz \
17+
./asap7/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib \
18+
./asap7/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz\
19+
}
20+
21+
foreach lib_file $lib_files_slow {
22+
read_liberty -corner slow $lib_file
23+
}
24+
foreach lib_file $lib_files_fast {
25+
read_liberty -corner fast $lib_file
26+
}
1427

1528
read_lef ./asap7/asap7_tech_1x_201209.lef
1629
read_lef ./asap7/asap7sc7p5t_28_R_1x_220121a.lef
@@ -25,6 +38,7 @@ report_timing_histogram
2538
report_checks
2639
report_wns
2740
report_tns
41+
write_verilog_for_eqy $test_name before "None"
2842

2943
puts "-- After --\n"
3044

@@ -34,3 +48,12 @@ report_cell_usage
3448
report_checks
3549
report_wns
3650
report_tns
51+
52+
if { [info exists ::env(EQUIVALENCE_CHECK)] } {
53+
set liberty_files [concat $lib_files_slow $lib_files_fast]
54+
run_equivalence_test $test_name \
55+
-liberty_files $liberty_files \
56+
-remove_cells "None"
57+
} else {
58+
puts "Repair timing output failed equivalence test"
59+
}

0 commit comments

Comments
 (0)