mirror of
https://github.com/The-OpenROAD-Project/OpenLane.git
synced 2026-05-29 00:23:55 +08:00
=== Flow Scripts === + Support OpenROAD ODB format as the primary format in which data is stored after placement + Create `manipulate_layout` to centralize calling odbpy scripts + Add `CURRENT_POWERED_NETLIST` to list of "current" variables, separate from `CURRENT_NETLIST` to avoid confusion ~ Update `scripts/odbpy/reader.py:OdbReader` and *all dependent scripts* now to use `odb` inputs and outputs. Add new `--output-def` flag to continue saving a DEF layout of the result. ~ Verbosity now a global variable, not an environment variable ~ Streamline saving using `scripts/utils/utils.tcl:run_openroad_script`: new `-save` option added that will automatically handle setting and unsetting `SAVE_` variables and `CURRENT_` variables ~ Rewrite Diode Insertion Strategy 3 iterations to be readable by human beings ~ `scripts/tcl_commands/all.tcl:heal_antenna_violators` now only uses `CURRENT_DEF` ~ `scripts/tcl_commands/all.tcl:set_netlist` updated to support flags and arguments properly, `-lec` now only works if `LEC_ENABLE` is set to `1`. Invocations updated ~ Usage of `scripts/tcl_commands/all.tcl:trim_lib` updated: no longer has any optional arguments. Documentation updated. ~ `scripts/tcl_commands/all.tcl:write_verilog` now uses `write_views.tcl` with the `-save` option. Documentation updated to reflect the fact it no longer calls `set_netlist`. ~ Fix various python invocations ~ Move `scripts/tcl_commands/routing.tcl:gen_pdn` to `floorplan` ~ Update `scripts/or_issue.py` to handle `odb` inputs and outputs ~ Update `scripts/tcl_commands/lvs.tcl:write_powered_verilog`, `scripts/tcl_commands/routing.tcl:power_routing` to use `-odb` as an input instead of `-def` (and, if applicable, `-output_odb` *alongside* `-output_def`) - Remove various scripts that rely on text manipulation (incl. `scripts/simple_cts.py`- thank you for your service) - Remove vestiges of site widening - Remove `-canonical` optional from `scripts/tcl_commands/all.tcl:write_verilog` (dubious/undocumented utility) - Remove `verilog_to_verilogPower` (unused) - Remove `zeroize_origin_lef` - Remove `PREV_NETLIST` variable - Remove various invocations of `scripts/tcl_commands/utils.tcl:write_verilog`, replace with `-save` arguments ## OpenROAD Scripts + Create OpenROAD script `common` folder, isolating common code into a folder instead of the preceding chaos + OpenROAD scripts now use a unified script for reading and writing views: `scripts/openroad/common/io.tcl`: `read` reads the `.odb` database + relevant liberty and sdc files and `write` writes any views specified as `SAVE_` variables: see the file for documentation ~ Update Copyright & Licensing for all OpenROAD scripts ~ Rewrite `scripts/odbpy/defutil.py:merge_components` to use odb ~ `scripts/odbpy/defutil.py:replace_pins` -> `relocate_pins`, with a partial rewrite and re-documentation. ~ `scripts/odbpy/defutil.py:add_def_obstructions` -> `add_obstructions` ~ `scripts/openroad/write_verilog.tcl` -> `write_view.tcl`, since it is literally just a "read" and a "write" call now ~ Partially rewrite `scripts/odbpy/power_utils.py:write_powered_def`, the most disgusting function in the codebase - Remove `scripts/odbpy/defutil.py:merge_pins` (unused)