Commit Graph

1616 Commits

Author SHA1 Message Date
Mohamed Gaber
68898e6584 Move flow control from atomic functions to flow functions (#1453)
~ Move `RUN_FILL_INSERTION`, `RUN_TAP_DECAP_INSERTION`, `RUN_DRT` to the larger flow functions
~ `FILL_INSERTION` -> `RUN_FILL_INSERTION` w/ translation behavior
~ `TAP_DECAP_INSERTION` -> `RUN_TAP_DECAP_INSERTION` w/ translation behavior
~ Update docs
2022.11.11
2022-11-10 14:39:22 +02:00
Mohamed Gaber
86615f8def Yosys Script Enhancements (#1446)
+ Add yosys to `run_tcl_script`, enabling the automatic production of reproducibles
~ yosys -> f109fa3d4c56fe33bc626c298e04d45ae510dd0e
~ Cleaned up LEC script a bit (thanks @emjunaid for initial work)
~ Fix bug where cell_count was not extracted properly
- Removed `get_yosys_bin`: It's been deprecated forever
2022-11-10 14:28:56 +02:00
Mohamed Gaber
8b391c09ae Change Issue Templates to Issue Forms (#1476) 2022.11.10 2022-11-09 04:19:46 +02:00
Openlane Bot
ddcc5c9f75 [BOT] Update openroad_app (#1466)
Allegedly resolves #1467
2022-11-09 04:14:39 +02:00
Mohamed Gaber
a0b19fa68b Add Wire Length Checker (#1463)
\+ Add PDK variable `WIRE_LENGTH_THRESHOLD` which wires with lengths >= said value are flagged
\+ Add `QUIT_ON_LONG_WIRE` which fails the flow if any wires are flagged for length
~ Update all `$::env(OPENROAD_BIN) -exit -python` invocations to include `-no_init` to suppress message about rc file
~ Replace ill-fitting `$::env(OPENROAD_BIN) -exit -python` invocations with just `python3`
~ Replace local install check with a simple git directory check
2022.11.02
2022-11-01 19:09:25 +02:00
Openlane Bot
1f923eb277 [BOT] Update openroad_app (#1435)
Supposedly resolves #1404
2022-11-01 12:07:33 +02:00
Liu Yihua
41ed0036c3 Fix get_design_path (#1450)
Co-authored-by: Mohamed Gaber <me@donn.website>
2022.10.26
2022-10-25 20:04:52 +02:00
vijayan
63a6d0230a Fix Synthesis Exploration (#1437) 2022-10-25 10:36:13 +02:00
Liu Yihua
9197534034 fix usage command in docs (#1449) 2022-10-25 09:36:14 +02:00
Mohamed Gaber
5c58d413a3 Various Abstractions for config.json (#1445)
+ Formalized concept of "exposed variables", environment variables that are exposed to `config.json` during processing
+ `dir::` is no longer a special case: all `ref::` prefices referencing a path now have the ability to glob inside said path
+ Made `dir::`, `pdk_dir::` and `scl_dir::` short-hands for various `ref::`s
2022.10.25
2022-10-24 22:58:28 +02:00
Mohamed Gaber
60e9417385 Diode Insertion Strategy 6 (#1448)
+ Add Diode Insertion Strategy 6 that combines strategies 3 and 4
~ Tweak docs
2022-10-24 17:31:26 +02:00
Kareem Farid
8b07cb2c76 Add some gf180mcuC design configs (#1373)
APU, spm  xtea, usb, zipdiv, usb_cdc_core, wbqspiflash, PPU, picorv32a, y_huff, salsa20
2022-10-24 16:13:35 +02:00
Johan Euphrosine
496a62bd3a flow: skip mounted version for local install (#1439) 2022-10-24 16:10:20 +02:00
Mitch Bailey
3809309b8c Renamed cvc to cvc_rv to avoid conflict (#1440)
~ `cvc` -> `cvc_rv` + updated filenames and invocations
~ `run_lef_cvc` -> `run_erc` with translation behavior 

Co-authored-by: Donn <me@donn.website>
2022-10-24 11:36:00 +02:00
Openlane Bot
31ec67fae2 [BOT] Update PDK (#1442) 2022.10.24 2022-10-23 14:58:12 +02:00
Openlane Bot
d448a3b924 [BOT] Update magic (#1378)
magic -> 94daf986ab9aa94a9ae2ac3539fa5def9bd2a1ac
2022.10.23
2022-10-22 20:47:45 +02:00
Openlane Bot
daae215459 [BOT] Update PDK (#1429) 2022.10.20 2022-10-19 23:17:29 +02:00
Mohamed Gaber
ddfeab57e3 Fix config.json processing bug (#1436)
~ Fix bug where `dir::` strings were not allowed to ascend
2022.10.19
2022-10-18 04:24:22 +02:00
Johan Euphrosine
70a28d2e26 Add missing -exit flag to openroad -python calls (#1388)
+ Add `-exit` to all `openroad -python` invocations, which otherwise causes hangs when stdin is hooked up
~ openroad_app -> 389a1f09821c0f57e3bf8e88f4ab43c76ec5f5c4
~ update tests to use DEFs as input files once again

Co-authored-by: Mohamed Gaber <donn@efabless.com>
2022.10.18
2022-10-17 22:39:51 +02:00
Kareem Farid
c21987e9ac Properly report read_sdc errors (#1428)
+ Properly catch `stderr` from `read_sdc` invocations
2022-10-17 21:15:28 +02:00
Mohamed Gaber
32da932761 Organize Magic Scripts (#1418)
+ Add `proc erase_box` to OpenLane
+ Add two new config variables for magic def reads: `MAGIC_DEF_NO_BLOCKAGES` and `MAGIC_DEF_LABELS`
~ Magic scripts hierachically organized by input format
~ `erase_box.sh` deprecated
~ More decisively separate LVS logs from reports
2022.10.13
2022-10-12 09:12:55 +00:00
Openlane Bot
e3a5189a1b [BOT] Update PDK to use new OpenRCX Calibration (#1407) 2022.10.10 2022-10-09 20:03:56 +02:00
Mohamed Gaber
cfb7ee91a6 Changes Requested by Caravel Team (#1414)
+ Add flag to enable/disable timing model generation after STA
+ Add both powered and unpowered netlists to `save_views`
+ Add multi-corner SDF and SPEF files to `save_views`
~ Fix #1413 and add regression test
~ Move `./run_issue_regressions.py` inside `tests` as a modular main function
2022-10-09 18:31:11 +02:00
Openlane Bot
f544484be2 [BOT] Update netgen (#1359)
Merging because https://github.com/The-OpenROAD-Project/OpenLane/pull/1359#issuecomment-1272253339
2022-10-09 12:22:01 +02:00
Kareem Farid
89c6eae46f Fix set_odb invocation after adding obstructions (#1408) 2022.10.06 2022-10-05 15:44:46 +02:00
Mohamed Gaber
5abc5f749d Elaboration, Signoff SDC Configuration Variables (#1406)
+ Create `RCX_SDC_FILE` as an optional SDC file to be used only for parasitics extraction (and consequent STA)
+ Document `SYNTH_ELABORATE_ONLY`, which only elaborates structured netlists without an attempt at logic mapping ~ Add translation behavior from previous, ambiguously named `SYNTH_TOP_LEVEL` to `SYNTH_ELABORATE_ONLY`
~ `scripts/yosys/synth_top.tcl` -> `elaborate.tcl`
~ Documentation consistency fixes
~ Fix wildcard in `docker/Makefile`
2022.10.04
2022-10-03 16:44:13 +02:00
Mohamed Gaber
04d86db91a Support OpenROAD set_dont_touch (#1398)
+ Add calls to `set_dont_touch` and then `unset_dont_touch` at the beginning and end of every resizer script respectively ~ Reorganize config variables
+ Added undocumented variable `RSZ_USE_OLD_REMOVER` to continue to use the old `remove_buffers.py` script instead
~ `LIB_RESIZER_OPT` -> `RSZ_LIB` (with translation behavior)
~ `UNBUFFER_NETS` -> `RSZ_DONT_TOUCH_RX` (with translation behavior)
~ Made timing models only get written after CTS by checking for `STA_PRE_CTS` as well
2022.10.03
2022-10-02 22:40:02 +02:00
Kareem Farid
725f313041 Fix remove_buffers.py (#1396)
+ add missing call for `getConstName`
+ add the buffer output net name to the logging message
~ Connect the load pin of cell driving the removed buffer to all cells that it is connected to. Previously, it was only connecting to the direct load of the removed buffer.
2022.09.29
2022-09-28 10:49:02 +02:00
Mohamed Gaber
6f97c909de Generate Timing Models (#1395)
+ Add function to generate lib files based on OpenSTA's new `write_timing_model` command
+ Implement lib saving for both single and multi-corner STA
+ Add multi-corner SDF saving
~ Arrange RCX extraction and STA outputs under folders

Note: https://github.com/The-OpenROAD-Project/OpenLane/pull/1395#issuecomment-1258277689
2022-09-28 08:03:16 +02:00
Kareem Farid
b1289b8748 Expose pdngen -skip_trim through FP_PDN_SKIPTRIM (#1397)
+ Add config variable `FP_PDN_SKIPTRIM` that passes the `-skip_trim` variable to `pdngen`
2022-09-28 08:01:11 +02:00
Openlane Bot
c40bcaca58 [BOT] Update PDK (#1389)
~ open_pdks -> 8f6aff1881e5feae49acb6d5be53c4acc91bb235
2022.09.23
2022-09-22 07:26:28 +02:00
Matt Liberty
c8f917e6d6 Correctly decorate wrapper in click_odb (#1381)
~ `scripts/odbpy/reader.py:click_odb` updated to properly decorate the wrapper function

Explanation given by @proppy: this is required as otherwise the function name returned by the `@click` decorator ends up being `wrapper` rather than being named after the command (in that case `place`).
2022-09-22 07:23:38 +02:00
Arman Avetisyan
f81bd81bce Correct the installation link (#1384) 2022-09-22 07:21:39 +02:00
Kareem Farid
8717388968 Point to open_pdks upstream (#1372)
~ open_pdks -> 82d61e2c9c265c0f0e994233cd2d024c90adb45f
2022.09.20
2022-09-20 00:03:58 +02:00
Mohamed Gaber
3ee8cf0da0 Use OpenDB as the Primary Layout Format (#1244)
===
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)
2022-09-19 20:38:28 +02:00
Openlane Bot
d375db931e [BOT] Update magic (#1318) 2022.09.16 2022-09-15 13:35:19 +02:00
Mohamed Gaber
37faafee20 Startup Fixes (#1344)
+ Added new script to import certain variables from `STD_CELL_LIBRARY_OPT` postfixed with `_OPT`
+ Added validation for `DIE_AREA` and `CORE_AREA`
~ Fixed `-init_design_config` by adjusting the location of the DESIGN_DIR check
2022.09.13
2022-09-12 14:58:32 +02:00
Mohamed Gaber
cbb9e6b02a Documentation Restructure (#1337)
~ Documentation all moved under `docs/source`, arranged hierarchically according to the table of contents
~ `Klayout` changed to `KLayout` in all logging messages
~ Readme rewritten to just be concise, parts of it isolated into standalone documentation
~ RTD builds no longer use conda (saves some time)
~ Fixed all broken links
2022-09-12 14:49:15 +02:00
Mohamed Gaber
63b5966c28 Documentation Fixes (#1333)
+ Local installer re-documented, volare integrated
+ Create new "Macros/Chip Integration" section in `configuration.md`, document EXTRA_LIBS
+ Document `CVC_SCRIPTS_DIR` in PDK variables ~ Replace broken links with permalinks in `chip_integration.md`
~ `SYNTH_CLOCK_UNCERTAINITY` -> `SYNTH_CLOCK_UNCERTAINTY` (with translation behavior)
- Remove unused `FP_CORE_MARGIN` variable
2022.09.08
2022-09-07 14:06:24 +02:00
Mohamed Gaber
4dd0170dc5 Fix Magic Reproducibles (#1324)
~ Add `.magicrc` file to Magic reproducibles
2022.09.07
2022-09-06 14:28:07 +02:00
Arman Avetisyan
826bb8f7f9 Installation, Quickstart Guide and Sphynx Overhaul (#1259)
+ Documentation changed, README no longer documentation's landing page
+ New installation and quickstart guides created
2022-09-06 12:10:03 +02:00
Mohamed Gaber
d5cd97d3f7 Update open_pdks (#1322)
~ open_pdks -> `fa87f8f4bbcc7255b6f0c0fb506960f531ae2392`
2022-09-06 10:02:00 +02:00
Mohamed Gaber
d609968cca Replace mismatches' environment variables with flags (#1316)
~ `TEST_MISMATCHES` -> `./flow.tcl -test_mismatches <class>`
~ `QUIT_ON_MISMATCHES` o-> `./flow.tcl -ignore_mismatches`
2022-09-06 04:48:37 +02:00
Openlane Bot
2d97f88146 [BOT] Update magic (#1308) 2022.09.05 2022-09-04 12:29:33 +02:00
Openlane Bot
460d3d80df [BOT] Update yosys (#844)
yosys -> 6e907acf86d9ff0edd9a1c10274e62690e19e939
2022.09.03
2022-09-02 11:20:08 +02:00
Openlane Bot
f0f2411db5 [BOT] Update netgen (#1053)
netgen -> 2056b37c95e11ea802f8b06c8948e874a298808a
2022-09-02 11:19:30 +02:00
Mohamed Gaber
4654b461c4 Fix Tool Updater CI (Again)
Signed-off-by: Mohamed Gaber <me@donn.website>
2022.09.02
2022-09-01 08:52:21 +02:00
Anton Blanchard
831b7ba994 Some runtime reporting fixes (#1301)
~ CTS was missing a printout of openroad (matches other stages)
~ Only log klayout gds xor stage when it is enabled
2022-09-01 08:50:32 +02:00
Mohamed Gaber
c91abed14f Streamlined PDK/SCL Configuration (#1297)
+ Add new feature  to extract just the PDK and SCL info from config files and `-override_env`
~ Reshuffle `scripts/tcl_commands/all.tcl:prep`:
    verify_versions is now one of the first things to run
    config load order documented and more guardrails added
~ Update bug report template
- Remove `CURRENT_STAGE` environment variable: nothing used it
2022.09.01
2022-08-31 13:14:54 +02:00
Mohamed Gaber
ae089d8da8 Update OpenROAD, Magic + DEF DRC Enhancement (#1296)
~ Added `-noblockage` to magic DEF read during DRC
~ Fixed automatic tool update CI
~ magic -> 5d51e10fb969b31e6e95b5fb78d21efeccc73c14
~ openroad_app -> 4174c3ad802d2ac1d04d387d2c4b883903f6647e
2022-08-31 11:38:39 +02:00