Skip to content

Commit 88d10b0

Browse files
Noam Cohennanocoh
authored andcommitted
global check
Signed-off-by: Noam Cohen <noam.chn1@gmail.com>
1 parent 9671320 commit 88d10b0

5 files changed

Lines changed: 21 additions & 5 deletions

File tree

docs/user/FlowVariables.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ configuration file.
171171
| <a name="LATCH_MAP_FILE"></a>LATCH_MAP_FILE| Optional mapping file supplied to Yosys to map latches| |
172172
| <a name="LAYER_PARASITICS_FILE"></a>LAYER_PARASITICS_FILE| Path to per layer parasitics file. Defaults to $(PLATFORM_DIR)/setRC.tcl.| |
173173
| <a name="LEC_AUX_VERILOG_FILES"></a>LEC_AUX_VERILOG_FILES| Additional Verilog files (e.g. blackbox stubs) to include in LEC equivalence checks. Appended to the generated Verilog netlist before running the formal equivalence check.| |
174-
| <a name="LEC_CHECK"></a>LEC_CHECK| Perform a formal equivalence check between before and after netlists. If this fails, report an issue to OpenROAD.| 0|
174+
| <a name="LEC_CHECK"></a>LEC_CHECK| Perform formal equivalence checks between before and after netlists. This checks CTS repair timing and the initial synthesis netlist against the final netlist. If this fails, report an issue to OpenROAD.| 0|
175175
| <a name="LIB_FILES"></a>LIB_FILES| A Liberty file of the standard cell library with PVT characterization, input and output characteristics, timing and power definitions for each cell.| |
176176
| <a name="MACRO_BLOCKAGE_HALO"></a>MACRO_BLOCKAGE_HALO| Distance beyond the edges of a macro that will also be covered by the blockage generated for that macro. Note that the default macro blockage halo comes from the largest of the specified MACRO_PLACE_HALO x or y values. This variable overrides that calculation.| |
177177
| <a name="MACRO_EXTENSION"></a>MACRO_EXTENSION| Sets the number of GCells added to the blockages boundaries from macros.| |
@@ -342,6 +342,7 @@ configuration file.
342342
- [DFF_LIB_FILE](#DFF_LIB_FILE)
343343
- [DFF_MAP_FILE](#DFF_MAP_FILE)
344344
- [LATCH_MAP_FILE](#LATCH_MAP_FILE)
345+
- [LEC_CHECK](#LEC_CHECK)
345346
- [MIN_BUF_CELL_AND_PORTS](#MIN_BUF_CELL_AND_PORTS)
346347
- [POST_SYNTH_TCL](#POST_SYNTH_TCL)
347348
- [PRE_SYNTH_TCL](#PRE_SYNTH_TCL)
@@ -588,6 +589,7 @@ configuration file.
588589
- [CDL_FILE](#CDL_FILE)
589590
- [GDS_ALLOW_EMPTY](#GDS_ALLOW_EMPTY)
590591
- [GND_NETS_VOLTAGES](#GND_NETS_VOLTAGES)
592+
- [LEC_CHECK](#LEC_CHECK)
591593
- [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER)
592594
- [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER)
593595
- [POST_DENSITY_FILL_TCL](#POST_DENSITY_FILL_TCL)

flow/scripts/final_report.tcl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
utl::set_metrics_stage "finish__{}"
22
source $::env(SCRIPTS_DIR)/load.tcl
3+
source $::env(SCRIPTS_DIR)/lec_check.tcl
34
erase_non_stage_variables final
45
load_design 6_1_fill.odb 6_1_fill.sdc
56
source_step_tcl PRE FINAL_REPORT
@@ -19,6 +20,10 @@ write_def $::env(RESULTS_DIR)/6_final.def
1920
write_verilog $::env(RESULTS_DIR)/6_final.v \
2021
-remove_cells [find_physical_only_masters]
2122

23+
if { $::env(LEC_CHECK) } {
24+
run_lec_test 6_final 1_synth_lec.v 6_final.v
25+
}
26+
2227
# Run extraction and STA
2328
if {
2429
[env_var_exists_and_non_empty RCX_RULES]

flow/scripts/synth_odb.tcl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,7 @@ orfs_write_db $::env(RESULTS_DIR)/1_synth.odb
3131
# which are read in here and a canonicalized version is written
3232
# out by OpenSTA that has no dependencies.
3333
orfs_write_sdc $::env(RESULTS_DIR)/1_synth.sdc
34+
if { $::env(LEC_CHECK) } {
35+
write_verilog $::env(RESULTS_DIR)/1_synth_lec.v \
36+
-remove_cells [find_physical_only_masters]
37+
}

flow/scripts/variables.json

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flow/scripts/variables.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1548,11 +1548,14 @@ WRITE_ODB_AND_SDC_EACH_STAGE:
15481548
default: 1
15491549
LEC_CHECK:
15501550
description: >
1551-
Perform a formal equivalence check between before and after netlists.
1552-
If this fails, report an issue to OpenROAD.
1551+
Perform formal equivalence checks between before and after netlists.
1552+
This checks CTS repair timing and the initial synthesis netlist against
1553+
the final netlist. If this fails, report an issue to OpenROAD.
15531554
default: 0
15541555
stages:
1556+
- synth
15551557
- cts
1558+
- final
15561559
LEC_AUX_VERILOG_FILES:
15571560
description: >
15581561
Additional Verilog files (e.g. blackbox stubs) to include in LEC

0 commit comments

Comments
 (0)