Clarify detailed-route metrics for antenna repair reroutes#4133
Open
alokkumardalei-wq wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
Open
Clarify detailed-route metrics for antenna repair reroutes#4133alokkumardalei-wq wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
alokkumardalei-wq wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
Conversation
59102ae to
d877739
Compare
Signed-off-by: alokkumardalei-wq <alokkumardalei2@gmail.com>
d877739 to
8606e26
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Fixes #3651
This change makes detailed-route metrics easier to interpret when post-DRT antenna repair triggers additional reroutes.
Previously, repeated reroutes could write to the same plain detailed-route metric keys, which made it unclear which value represented the final route and which values came from antenna-repair iterations.
With this update:
pre_repairstageiter_NstageThis keeps the metrics unambiguous without breaking existing consumers that still expect the top-level
detailedroute__antenna_diodes_countfield.Validation
Validated with:
python3 -m unittest discover -s flow/test -p 'test_*.py'Expected output:
make DESIGN_CONFIG=./designs/sky130hd/gcd/config.mk clean_route route metadata-generate metadata-checkExpected output:
make DESIGN_CONFIG=./designs/sky130hd/gcd/config.mk clean_route route metadata-generate metadata-check [INFO DRT-0198] Complete detail routing. Total wire length = 8466 um. Total wire length on LAYER li1 = 0 um. Total wire length on LAYER met1 = 4104 um. Total wire length on LAYER met2 = 3951 um. Total wire length on LAYER met3 = 299 um. Total wire length on LAYER met4 = 110 um. Total wire length on LAYER met5 = 0 um. Total number of vias = 2678. [INFO ANT-0002] Found 0 net violations. [INFO ANT-0001] Found 0 pin violations. [INFO GRT-0012] Found 0 antenna violations. [INFO ANT-0002] Found 0 net violations. [INFO ANT-0001] Found 0 pin violations. write_db ./results/sky130hd/gcd/base/5_2_route.odb /Library/Frameworks/Python.framework/Versions/3.12/bin/python3 /Users/alokkumardalei/Desktop/open-road-flowscripts/OpenROAD-flow-scripts/flow/util/genMetrics.py -d gcd \ -p sky130hd \ -v base \ --logs ./logs/sky130hd/gcd/base \ --reports ./reports/sky130hd/gcd/base \ --results ./results/sky130hd/gcd/base \ -o ./reports/sky130hd/gcd/base/metadata.json 2>&1 \ | tee /Users/alokkumardalei/Desktop/open-road-flowscripts/OpenROAD-flow-scripts/flow/reports/sky130hd/gcd/base/metadata-generate.log [WARN] Tag synth__design__instance__count__stdcell not found in ./reports/sky130hd/gcd/base/synth_stat.txt. Will use N/A. [WARN] Tag finish__runtime__total not found in ./logs/sky130hd/gcd/base/6_report.log. Will use N/A. [WARN] Tag finish__cpu__total not found in ./logs/sky130hd/gcd/base/6_report.log. Will use N/A. [WARN] Tag finish__mem__peak not found in ./logs/sky130hd/gcd/base/6_report.log. Will use N/A. [WARN] Tag synth__runtime__total not found in ./logs/sky130hd/gcd/base/1_2_yosys.log. Will use N/A. [WARN] Tag synth__cpu__total not found in ./logs/sky130hd/gcd/base/1_2_yosys.log. Will use N/A. [WARN] Tag synth__mem__peak not found in ./logs/sky130hd/gcd/base/1_2_yosys.log. Will use N/A. [WARN] Tag floorplan__runtime__total not found in ./logs/sky130hd/gcd/base/2_1_floorplan.log. Will use N/A. [WARN] Tag floorplan__cpu__total not found in ./logs/sky130hd/gcd/base/2_1_floorplan.log. Will use N/A. [WARN] Tag floorplan__mem__peak not found in ./logs/sky130hd/gcd/base/2_1_floorplan.log. Will use N/A. [WARN] Tag globalplace_skip_io__runtime__total not found in ./logs/sky130hd/gcd/base/3_1_place_gp_skip_io.log. Will use N/A. [WARN] Tag globalplace_skip_io__cpu__total not found in ./logs/sky130hd/gcd/base/3_1_place_gp_skip_io.log. Will use N/A. [WARN] Tag globalplace_skip_io__mem__peak not found in ./logs/sky130hd/gcd/base/3_1_place_gp_skip_io.log. Will use N/A. [WARN] Tag globalplace_io__runtime__total not found in ./logs/sky130hd/gcd/base/3_2_place_iop.log. Will use N/A. [WARN] Tag globalplace_io__cpu__total not found in ./logs/sky130hd/gcd/base/3_2_place_iop.log. Will use N/A. [WARN] Tag globalplace_io__mem__peak not found in ./logs/sky130hd/gcd/base/3_2_place_iop.log. Will use N/A. [WARN] Tag globalplace__runtime__total not found in ./logs/sky130hd/gcd/base/3_3_place_gp.log. Will use N/A. [WARN] Tag globalplace__cpu__total not found in ./logs/sky130hd/gcd/base/3_3_place_gp.log. Will use N/A. [WARN] Tag globalplace__mem__peak not found in ./logs/sky130hd/gcd/base/3_3_place_gp.log. Will use N/A. [WARN] Tag placeopt__runtime__total not found in ./logs/sky130hd/gcd/base/3_4_place_resized.log. Will use N/A. [WARN] Tag placeopt__cpu__total not found in ./logs/sky130hd/gcd/base/3_4_place_resized.log. Will use N/A. [WARN] Tag placeopt__mem__peak not found in ./logs/sky130hd/gcd/base/3_4_place_resized.log. Will use N/A. [WARN] Tag detailedplace__runtime__total not found in ./logs/sky130hd/gcd/base/3_5_place_dp.log. Will use N/A. [WARN] Tag detailedplace__cpu__total not found in ./logs/sky130hd/gcd/base/3_5_place_dp.log. Will use N/A. [WARN] Tag detailedplace__mem__peak not found in ./logs/sky130hd/gcd/base/3_5_place_dp.log. Will use N/A. [WARN] Tag cts__runtime__total not found in ./logs/sky130hd/gcd/base/4_1_cts.log. Will use N/A. [WARN] Tag cts__cpu__total not found in ./logs/sky130hd/gcd/base/4_1_cts.log. Will use N/A. [WARN] Tag cts__mem__peak not found in ./logs/sky130hd/gcd/base/4_1_cts.log. Will use N/A. [WARN] Tag globalroute__runtime__total not found in ./logs/sky130hd/gcd/base/5_1_grt.log. Will use N/A. [WARN] Tag globalroute__cpu__total not found in ./logs/sky130hd/gcd/base/5_1_grt.log. Will use N/A. [WARN] Tag globalroute__mem__peak not found in ./logs/sky130hd/gcd/base/5_1_grt.log. Will use N/A. [WARN] Overwriting Tag finish__runtime__total [WARN] Tag finish__runtime__total not found in ./logs/sky130hd/gcd/base/6_report.log. Will use N/A. [WARN] Overwriting Tag finish__cpu__total [WARN] Tag finish__cpu__total not found in ./logs/sky130hd/gcd/base/6_report.log. Will use N/A. [WARN] Overwriting Tag finish__mem__peak [WARN] Tag finish__mem__peak not found in ./logs/sky130hd/gcd/base/6_report.log. Will use N/A. /Library/Frameworks/Python.framework/Versions/3.12/bin/python3 /Users/alokkumardalei/Desktop/open-road-flowscripts/OpenROAD-flow-scripts/flow/util/checkMetadata.py \ -m ./reports/sky130hd/gcd/base/metadata.json \ -r ./designs/sky130hd/gcd//rules-base.json 2>&1 \ | tee /Users/alokkumardalei/Desktop/open-road-flowscripts/OpenROAD-flow-scripts/flow/reports/sky130hd/gcd/base/metadata-check.log [INFO] synth__design__instance__area__stdcell pass test: 2641.2832 <= 2760 [INFO] constraints__clocks__count pass test: 1 == 1 [INFO] placeopt__design__instance__area pass test: 4055.14 <= 4161 [INFO] placeopt__design__instance__count__stdcell pass test: 483 <= 506 [INFO] detailedplace__design__violations pass test: 0 == 0 [INFO] cts__design__instance__count__setup_buffer pass test: 26 <= 44 [INFO] cts__design__instance__count__hold_buffer pass test: 0 <= 42 [INFO] cts__timing__setup__ws pass test: -1.71908 >= -2.27 [INFO] cts__timing__setup__tns pass test: -77.9556 >= -95.5 [INFO] cts__timing__hold__ws pass test: 0.490061 >= -0.055 [INFO] cts__timing__hold__tns pass test: 0 >= -0.22 [INFO] globalroute__antenna_diodes_count pass test: 0 <= 100 [INFO] globalroute__timing__setup__ws pass test: -1.91062 >= -2.42 [INFO] globalroute__timing__setup__tns pass test: -86.3301 >= -99.7 [INFO] globalroute__timing__hold__ws pass test: 0.541119 >= -0.055 [INFO] globalroute__timing__hold__tns pass test: 0 >= -0.22 [INFO] detailedroute__route__wirelength pass test: 8466 <= 9945 [INFO] detailedroute__route__drc_errors pass test: 0 <= 0 [INFO] detailedroute__antenna__violating__nets pass test: 0 <= 0 [INFO] detailedroute__antenna_diodes_count pass test: 0 <= 100 [INFO] finish__timing__setup__ws pass test: -1.80295 >= -2.28 [INFO] finish__timing__setup__tns pass test: -81.2492 >= -92.8 [INFO] finish__timing__hold__ws pass test: 0.541146 >= -0.055 [INFO] finish__timing__hold__tns pass test: 0 >= -0.22 [INFO] finish__design__instance__area pass test: 4904.7 <= 5797 Metadata check warnings: 0 All metadata rules passed (25 rules)I also verified the multi-iteration repair path with the OpenROAD
ibex_sky130hdtest, which produced separateiter_0,iter_1, anditer_2route metrics as expected.