Best practices when adding a POST <STEP> TCL file which changes the DB #4349
Unanswered
chrisgelinek-rl
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I have a post_fill_repair.tcl script which calls
load_design 6_1_fill.odb 6_1_fill.sdcand then callsdetailed_routeto fix any DRC violations created by the filler insertion (I allowed it to use filler cap cells as well as "empty" fillers). I think the right way to include it in the flow is to simplyexport POST_DENSITY_FILL_TCL = post_fill_repair.tcland it should automatically run afterdensity_fill.This works great, but since density_fill.tcl runs
orfs_write_db $::env(RESULTS_DIR)/6_1_fill.odbbefore callingsource_step_tcl POST DENSITY_FILL, the in-memory database changes will not be saved by density_fill.tcl.I could save the database under a new name - I thought I'd use something like
orfs_write_db $::env(RESULTS_DIR)/6_2_post_fill_repair.odb- but this would then be ignored by the next step (final_report.tcl which loads hard-coded6_1_fill.odb).This suggests I should overwrite
6_1_fill.odband6_1_fill.sdc, but then I'd lose the state from before the post_fill_repair.tcl script ran.This could be solved by renaming all
6_1_fill*files at the beginning of post_fill_repair.tcl (to e.g.6_1_unrepaired_fill*) and then write6_1_fill.odband6_1_fill.sdcat the end, but this seems quite brittle as well (the reports and logs should probably also be renamed to match which starts to get confusing).What's the best approach when one wants to insert some DB manipulation into the standard flow?
Note that other steps (at least
detail_route.tcl) seem to write the DB file after running any POST TCL script, so the approach may need to be different depending on the step...All reactions