267 Commits

Author SHA1 Message Date
Mohamed Gaber
e0d2e618a8 Remove LEC (#2126)
- Remove `LEC_ENABLE` and `logic_equiv_check`
2024-05-27 11:41:50 +03:00
Kareem Farid
2719508edb Remove SYNTH_READ_BLACKBOX_LIB (#2099)
+ Always read `LIB_SYNTH_COMPLETE` in Yosys scripts
- Remove `SYNTH_READ_BLACKBOX_LIB`
2024-03-14 14:41:49 +02:00
Mohamed Gaber
dbcc8252e9 Ameliorate Warnings, PDN Generation, and the default design (#2066)
~ Reimplemented the default serial/parallel multiplier to be a bit less cryptic and eliminate linter warnings; and added a proper testbench
~ Reimplemented deprecated variable translation behavior to account for the situation where a deprecated variable's value does not match the default for the new value, which causes a crash
~ Slightly improved warning for designs having been black-boxed during STA
~ PDN Generation Updates
    ~ Renamed `DESIGN_IS_CORE` to `FP_PDN_MULTILAYER` with translation behavior
    ~ PDN generation will now always attempt to extend to core ring (which is inert if core rings do not exist)
    ~ Fixed bug where `FP_PDN_MULTILAYER` being set to `0` would attempt to create a core-ring on two layers anyway
~ IR drop now prints a warning if `VSRC_LOC_FILE` is not provided
- Removed deprecation behavior for `GLB_RT` variables - it's been over a year (>=6 mo as promised)
2023-12-25 20:48:46 +02:00
Kareem Farid
571581d5b7 Integrate KLayout DRC for sky130 (#2059)
~ Bump open_pdks version to `cd1748bb197f9b7af62a54507de6624e30363943`
~ Rename `PRIMARY_SIGNOFF_TOOL` to `PRIMARY_GDSII_STREAMOUT_TOOL`
~ Update documentation of `RUN_MAGIC_DRC` and `RUN_KLAYOUT_DRC`
+ Integrate KLayout DRC for sky130
+ Add the following variables:
```
KLAYOUT_DRC_THREADS
QUIT_ON_KLAYOUT_DRC
RUN_KLAYOUT_DRC
KLAYOUT_DRC_RUNSET - PDK variable
KLAYOUT_DRC_OPTIONS - PDK variable
```
- Remove `KLAYOUT_DRC_KLAYOUT_GDS`
2023-12-11 17:31:54 +02:00
Darryl Miles
f691c8c071 yosys/synth.tcl: migrate to newer supported drw & drf commands (#2051)
+ Add tt05-i2c-bert (https://github.com/dlmiles/tt05-i2c-bert) to CI
~ Replace instances of ABC command `rewrite` with `drw -l` with `SYNTH_ABC_LEGACY_REWRITE` being set to `1` restoring the older functionality (`0` by default)
~ Replace instances of ABC command `refactor` with `drf -l` with `SYNTH_ABC_LEGACY_REFACTOR` being set to `1` restoring the older functionality (`0` by default)
~ Added `delete t:\$print` to `synth.tcl` to fix designs such as PPU with synthesized prints (as in https://github.com/efabless/openlane2/pull/189)

---------

Co-authored-by: Mohamed Gaber <donn@efabless.com>
2023-11-22 15:45:53 +02:00
Kareem Farid
5771836bf4 Add -skip_io and iterate io and global placement (#1984)
~ Set default `FP_IO_MODE` to 0.
~ Better `FP_IO_MODE` documentation.
~ Change the behavior of `FP_IO_MODE` 0:
1. Run global placement with `-skip_io` flag. 
2. Run io placement (again).
3. Run global placement.

If `FP_IO_MODE` is 1, steps 1 and 2 are skipped. 

~ Change tcl functions `global_placement_or` and `place_io` to allow for the changes mentioned above.
2023-10-01 15:19:35 +00:00
Mohamed Gaber
023f667324 Fix issue where BASE_SDC_FILE could not be overridden properly (#1979)
~ Fix issue where `PNR_SDC_FILE` and `SIGNOFF_SDC_FILE` were set too early and were not affected by changes to values of `BASE_SDC_FILE` in user config
2023-09-10 15:47:28 +03:00
Kareem Farid
5fb033caa0 SDC Behavior Overhaul (#1944)
+ Add PNR_SDC_FILE
+ Warn when (PNR|SIGNOFF)_SDC_FILE are not overwritten by the user.
+ Add SDC_IN and DEFAULT_SDC_FILE to ignore list in CI
+ Add per corner max slew/fanout/cap count to sta report
+ Add per corner worst hold and setup value to sta report 
~ Rename RCX_SDC_FILE to SIGNOFF_SDC_FILE.
~ Always use PNR_SDC_FILE instead of CURRENT_SDC except during signoff stage, where SIGNOFF_SDC_FILE is used instead
~ Enable DIODE_ON_PORTS and RUN_HEURISTIC_DIODE_INSERTION for APU which fails after SDC updates.
~ Adjust timing checkers according to the new reported values
2023-09-05 16:25:24 +03:00
Kareem Farid
3376e5f897 Overhaul Linter Handling of Black-boxed Verilog Models (#1929)
+ add `generate_blackbox_verilog` that generates a black-boxed header file from a list of Verilog models
+ add `scripts/synth/blackbox.tcl` for `generate_blackbox_verilog`
+ use `generate_blackbox_verilog` with `VERILOG_FILES_BLACKBOX` and PDK verilog models
+ disable `UNDRIVEN` and `UNUSEDSIGNAL` for PDK verilog files
+ add `YOSYS_IN`, `YOSYS_OUT`, `YOSYS_DEFINES` which are used in blackbox.tcl
 to internal variables in ci variables documentation workflow 
~ enable `LINTER_INCLUDE_PDK_MODELS`

Co-authored-by: Donn <me@donn.website>
2023-08-31 12:24:48 +03:00
Donn
b1fb228e31 Revert "Enhancements to variables related to SDC files (#1931)"
This reverts commit 7a5857a595.
2023-08-10 17:44:18 +03:00
Kareem Farid
7a5857a595 Enhancements to variables related to SDC files (#1931)
+ Warn when IMPLEMENTATION_SDC_FILE is not overwritten by the user.
+ Add SDC_IN and IMPLEMENTATION_SDC_FILE_DEFAULT to ignore list in ci Check Variables flow
~ Rename RCX_SDC_FILE to SIGNOFF_SDC_FILE.
~ Rename BASE_SDC_FILE to IMPLEMENTATION_SDC_FILE.
~ Always use IMPLMEMENTATION_SDC_FILE instead of CURRENT_SDC except during signoff stage
2023-08-10 16:47:52 +03:00
Mohamed Gaber
157a650587 Update Documentation (#1917)
+ Added `make docs` target to primary Makefile to generate documentation
~ Update documentation dependencies
~ Updated `tcl.py` to handle JSON lists of elements including whitespace by joining them with a comma (unless one of the elements already contains a comma), resolving odd JSON syntax
~ Re-organized and re-order configuration variables and edited descriptions for general consistency as well as adding anchors
~ Update all documentation dependencies
~ Fixed a number of broken links
- Remove dependency on `docutils` and `sphinx-autobuild` (both unused)
- Remove two of the custom documentation extensions
2023-07-25 13:02:39 +03:00
Mohamed Gaber
2735f41574 PDK Variable Consistency (#1892)
~ Classified PDK variables by user modifiability
~ `SYNTH_MAX_FANOUT` -> Moved into PDK as `MAX_FANOUT_CONSTRAINT`
~ `SYNTH_MAX_TRAN` -> Moved into PDK as `MAX_TRANSITION_CONSTRAINT`
~ `SYNTH_CAP_LOAD` -> `OUTPUT_CAP_LOAD`
- Removed `DEFAULT_MAX_TRAN` from PDK (unused)
2023-07-12 17:05:03 +03:00
Kareem Farid
ed5647b8c8 Undocumented Variable CI Workflow
Script uses regular expressions to create a set of documents variables and a set of used variables and compare them against each other. Some variables are internal, unexposed and others. These variables are whitelisted. See https://github.com/The-OpenROAD-Project/OpenLane/issues/1889

\+ Add documentation for `QUIT_ON_XOR_ERROR`
2023-07-12 14:38:52 +03:00
Kareem Farid
54b233a6be Wrap splitnets and insbuf around SYNTH_SPLITNETS and SYNTH_BUFFER_DIRECT_WIRES (#1857)
Signed-off-by: Kareem Farid <kareefardi@users.noreply.github.com>
2023-06-19 13:42:22 +03:00
Kareem Farid
a3c416c54e Linter(Verilator) enhancements (#1837)
~ generalize verilator variables:
  QUIT_ON_VERILATOR_ERRORS -> QUIT_ON_LINTER_ERRORS
  QUIT_ON_VERILATOR_WARNINGS -> QUIT_ON_LINTER_WARNINGS
  VERILATOR_RELATIVE_INCLUDES -> LINTER_RELATIVE_INCLUDES
  RUN_VERILATOR -> RUN_LINTER
+ add LINTER_INCLUDE_PDK_MODELS
+ add LINTER_DEFINES
+ include verilator in ci tool updater
- do not include pdk verilog models using -I
- remove workaround for verilator std error
- disallow timing constructs. Print an error to the user to remove or guard them.
2023-06-19 11:47:56 +03:00
Kareem Farid
2e6954e75c magic lef write updates (#1850)
~ default to lef/def in order to generate lef with pin direction (and much faster than gds) 
~ bump magic version
~ restore `drc off` in `lef.tcl` that was removed in an older PR
~ record a separate magic lef write runtime
- remove unneeded `cellname` command from `lef.tcl`
+ add lef nocheck for power connections for antenna area calculation
2023-06-18 14:31:44 +03:00
Kareem Farid
3dabdadc4c don't set global connect when right a netlist from "powered def" (#1845)
the whole point of the powered def is to compare the power connections
of the rtl with the power connections defined in macro hooks. the
current implementation writes a def file generated from a netlist
created from the rtl and the final def generated after routing. this is
done in a python script followed by a tcl call to `write_verilog`
because there isn't a python api for writing verilog. this introduced a
problem where during `write_verilog` global connections defined in macro
hooks are set overwriting whatever changes to the power connections made in
the powered def. this pr add -no_global_connect during the
`write_verilog` step to avoid the override mentioned earlier.
2023-06-13 20:17:16 +03:00
Kareem Farid
5880f35897 Read multi-corner libs while running resizer and CTS (#1804)
+ add `RSZ_MULTICORNER_LIB`: a flag to read multicorner libs during resizer optimizations
+ add `RSZ_LIB_FASTEST`: defaults to `LIB_FASTEST`
+ add `RSZ_LIB_SLOWEST`: defaults to `LIB_SLOWEST`
+ add `LIB_CTS_SLOWEST`
+ add `LIB_CTS_FASTEST`
+ add `CTS_MULTICONER_LIB`
~ in `read_libs`, in `scripts/openroad/common/io.tcl`, iterate over each each corner definition to allow for reading multiple files for each corner.
~ replace `-override_libs` and `-multi_corner_libs` by `-lib_fastest`, `-lib_slowest` and `-lib_typical` and modify resizer and cts tcl scripts accordingly
~ don't make copies of files in `LIB_SYNTH_COMPLETE` for `RSZ_LIB`, instead point to the original files
2023-05-24 17:30:26 +03:00
Kareem Farid
ee14c3eb23 Add RSZ_DONT_TOUCH list (#1798) 2023-05-23 16:19:10 +03:00
Kareem Farid
5a29100535 Integrate back OpenROAD STA (#1784)
+ add STA_MULTICORNER_READ_LIBS to pick between reading liberties vs reading verilog + spefs - undocumented
+ add reading CURRENT_SPEF in function `read`
+ add ability to not read EXTRA_LIBS in function `read_libs` 
+ sta/multi_corner.tcl should now work with openroad
+ add -estimate_global and -estimate_placement to `run_sta` and used it whenever applicable: See https://github.com/The-OpenROAD-Project/OpenROAD/discussions/3287
+ add -tool to run_sta to switch between openroad and opensta
+ use -pre_cts whenever applicable
~ fix a bug where EXTRA_SPEFS aren't properly loading. Fix is accomplished by passing PROCESS_CORNER to multi_corner.tcl script.

+ add verfied scl to verilator verified list. sky130_fd_sc_hs had verilator errors in its verilog models
~ fix wrong usage of FP_IO_HLENGTH. should be FP_IO_VLENGTH
~ restore `report_design_area` in STA. 
+ add `report_design_area` in resizer scripts to see the impact of resizer, in terms of utilization
2023-05-10 22:30:22 +03:00
Kareem Farid
6b97e2c444 Moving, Renaming and Documenting Config. Variables (#1764)
Renamed Variables:
```
CLOCK_TREE_SYNTH -> RUN_CTS
FP_PDN_RAILS_LAYER -> FP_PDN_RAIL_LAYER
FP_PDN_UPPER_LAYER, FP_PDN_LOWER_LAYER -> FP_PDN_HORIZONTAL_LAYER, FP_PDN_VERTICAL_LAYER
```
Removed from default configuration:
```
RCX_CORNER_COUNT
RCX_MAX_RESISTANCE		
RCX_COUPLING_THRESHOLD		
RCX_CC_MODEL	
RCX_CONTEXT_DEPTH
```
Added documentation:
```
FP_PDN_CFG
FP_PDN_HSPACING
FP_PDN_VSPACING
FP_TAPCELL_DIST
DFF_LIB_SYNTH
DIODE_CELL_PIN
DIODE_CELL
STD_CELL_GROUND_PINS
CARRY_SELECT_ADDER_MAP
FULL_ADDER_MAP
STD_CELL_LIBRARY_CDL
LAYERS_RC
VIAS_RC
SYNTH_DEFINES
STA_REPORT_POWER
FP_PDN_ENABLE_GLOBAL_CONNECTIONS
PL_RESIZER_TIE_SEPERATION
QUIT_ON_HOLD_VIOLATIONS
QUIT_ON_SETUP_VIOLATIONS
QUIT_ON_TIMING_VIOLATIONS
```
Moved to pdk configuration:
```
FP_PDN_VOFFSET
FP_PDN_VPITCH
FP_PDN_HOFFSET
FP_PDN_HPITCH
```
\- Remove unneeded usage of `PL_TARGET_DENSITY_CELLS`

Addresses https://github.com/The-OpenROAD-Project/OpenLane/issues/1325
2023-04-26 10:39:25 +02:00
Kareem Farid
02a096e7af Integrate Verilator (#1760)
+ Add verilator check before synthesis
+ Add QUIT_ON_VERILATOR_ERRORS
+ Add QUIT_ON_VERILATOR_WARNINGS
+ Add VERILATOR_RELATIVE_INCLUDES
+ Only load verilog models for selected PDKs and warn the user about unsupported PD
2023-04-19 14:22:25 +02:00
Kareem Farid
674456fad6 Magic LEF write updates (#1728)
+ add wrapper.tcl to capture magic errors ported from openlane2
~ use lef/def or gds instead of mag to write a lef through MAGIC_LEF_WRITE_USE_GDS
~ print lef write log file path
2023-04-10 14:09:07 +02:00
Kareem Farid
0925f7506f Add Tri-State Logic Exception to Synthesis Checks (#1708)
Fix https://github.com/The-OpenROAD-Project/OpenLane/issues/1701

\~ Move Yosys check quitting entirely to Python script
\~ Update DRC rosetta to use streams instead of in-memory translation (for most of them)

\+ Add `SYNTH_CHECKS_ALLOW_TRISTATE` that allows tristate buffers in yosys `check`
\~ Fix wrong default value of `RUN_HEURISTIC_DIODE_INSERTION` in documentation
\~ Move Yosys check quitting entirely to Python script, can ignore tristate buffer-related warnings
\~ Update DRC rosetta to use streams instead of in-memory translation (for most of them)
2023-04-06 13:03:00 +02:00
Kareem Farid
2e09573fff Diode Insertion Overhaul (#1686)
- Deprecate DIODE_INSERTION_STRATEGY.
- Remove DIODE_INSERTION_STRATEGY 2, 1, and 5
+ Add GRT_REPAIR_ANTENNAS
+ Add HEURISTIC_ANTENNA_THRESHOLD
+ Add RUN_HEURISTIC_DIODE_INSERTION
+ Add DIODE_ON_PORTS
+ Add HEURISITIC_ANTENNA_INSERTION_MODE
~ Update benchmark results for SW_HD
~ Apply DIODE_PADDING in dpl_cell_pad which also runs after RUN_HEURISTIC_DIODE_INSERTION

run_designs.py:
  ~ Change default config to `config` instead of `config.json` to allow for designs with
  tcl default config
  ~ Change logging format
  + Print SUCCESS when a design is finished
  ~ Use extra parameters `params.keys()` instead of `ConfigHandler.get_header()` to build
   report csv header. This fixes inconsistencies between csv header and values reported

compare_regression_design.py:
  ~ Change metric name antenna_violations -> pin_antenna_violations
  ~ Handle "bad" encoding of csv report files
  ~ Quit when a report is perceived as invalid
  ~ Don't print output file name to stderr
  
compare_regression_reports.py:
  ~ Change metric name antenna_violations -> pin_antenna_violation
  ~ Handle "bad" encoding of csv report files

config.py:
  ~ Sort result from get_config_for_run and configuration_values for consistency
  ~ All get_config_for_run to get the full config
  
~ Fix antenna violations net extraction in `extract_antenna_violators.py`
~ Fix fetching antenna violation count in `generate_reports.py`

report.py:
  ~ Split "metric" antenna_violations to pin_antenna_violations and
  net_antenna_violations as reported by openroad antenna checker
  ~ Add Non-phyCells 
  ~ Add TotalCells
  ~ Rename cell_count to synth_cell_count to avoid confusion with TotalCells
  ~ Calculate cells_per_mm based on Non-phyCells instead of synth_cell_count
  ~ Rename
2023-03-27 20:30:59 +02:00
Mohamed Hosni
9b77c207f1 Change the default value of QUIT_ON_SYNTH_CHECKS to 1 (#1687) 2023-03-21 15:52:12 +02:00
Mohamed Gaber
8433bc03f8 Exit Cleanup (#1685)
~ Move `QUIT_ON` variables outside of checker functions
~ Move final timing checks to a flow step: `run_timing_check_step`
~ Replace a couple of loose `file exists` with `assert_files_exist` calls
~ Replace all `flow_fail` across the flow with `throw_error`, which behaves accordingly:
    * If running an interactive script, `flow_fail` is called
    * Else, the errors are propagated upwards, where `flow.tcl` is to catch it
~ Rename `try_catch` to `try_exec` as it now propagates the error, with translation behavior
- Remove UMich experimental ECO flow
2023-03-21 13:58:58 +02:00
Mohamed Hosni
a664c0e162 More strict antenna violations repair (#1671)
\+ Add `GRT_ANT_MARGIN`
\~  Increase `GRT_ANT_ITERS` to `15`

Signed-off-by: Mohamed Hosni <112901987+mo-hosni@users.noreply.github.com>
2023-03-02 13:15:42 +02:00
Mohamed Hosni
93c8d84c0d Add repair_design for global routing (#1670)
\+ Add run_resizer_design_routing before run_resizer_timing_routing
Co-authored-by: kareefardi <kareem.farid@efabless.com>
2023-03-02 12:55:32 +02:00
Mohamed Hosni
e10820ecf5 Add PL_WIRELENGTH_COEF to global placement. (#1672) 2023-02-28 18:26:21 +02:00
Kareem Farid
a35b64aa20 Checkers updates (#1665)
\+ Add `QUIT_ON_SYNTH_CHECKS` (perhaps needs a better name?)
\~ `run_tcl_script` now logs warnings to `.warnings` file
\~ `run_tcl_script` now logs errors to `.errors` file
\~ Rename `CHECK_ASSIGN_STATEMENTS` to `QUIT_ON_ASSIGN_STATEMENTS`
\~ Rename `CHECK_UNMAPPED_CELLS` to `QUIT_ON_UNMAPPED_CELLS`
\~ Fix implementation of `QUIT_ON_UNMAPPED_CELLS` by inspecting the correct yosys stat file
\~ Run `QUIT_ON_UNMAPPED_CELLS` and `QUIT_ON_ASSIGN_STATEMENTS` directly after synthesis before sta
2023-02-22 11:46:16 +02:00
Kareem Farid
bf207eda44 KLayout GDSII updates (#1608)
\+ Add `KLAYOUT_DEF_LAYER_MAP` for DEF/LEF mapping in klayout. `.lyt` is not sufficient to map a pin shape to pin and metal for example. 
\+ Add `KLAYOUT_XOR_IGNORE_LAYERS` see https://github.com/RTimothyEdwards/open_pdks/pull/347 (default: empty) 
\~ Enable `QUIT_ON_XOR_ERROR` by default
2023-02-07 19:23:39 +02:00
Mohamed Gaber
d8e399d55d Update Klayout Scripts + Klayout (#1462)
\+ Add klayoutrc to OL images
\+ Made klayout scripts launchable as commands
\+ Add new quit_on_xor_error checker
\+ Add `KLAYOUT_XOR_THREADS`
\~ Rewrite XOR script to be more readable
\~ klayout -> 8bed8bcc3ca19f7e1a810815541977fd16bc1db5
\- Remove KLAYOUT_XOR_GDS, KLAYOUT_XOR_XML: XML only now
\- Remove mv_shapes: unused


Co-authored-by: Kareem Farid <karimmhany@gmail.com>
2023-01-06 19:28:15 +02:00
Kareem Farid
d20c7b4746 Expose magic polygon subcells (#1566)
through MAGIC_GDS_POLYGON_SUBCELLS
minor formatting changes to other variables' documentation
2022-12-13 12:32:13 +02:00
Kareem Farid
95c7cd1944 magic updates (#1540)
~ fix cell name in `user_proj_example2.gds` in `caravel_upw` testcase. the cell name was incorrectly set to `user_proj_example`
~ update magic version.
+ add configuration variable `MAGIC_GDS_ALLOW_ABSTRACT` to allow abstract view of macros during magic gds generation which was previously allowed in magic. The new default is set to disallowed as usually having abstract view is caused by an error in configuration.
2022-12-01 17:23:19 +02:00
Kareem Farid
c98a290f70 Fix variables for setting pin thickness and multiplier (#1539)
~ check the right flags while setting pin thickness and multiplier
~ change default values of FP_IO_*EXTEND to 0

Co-authored-by: Donn <me@donn.website>
2022-12-01 14:22:16 +02:00
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-10 14:39:22 +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-01 19:09:25 +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
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-12 09:12:55 +00: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
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-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-02 22:40:02 +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
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-07 14:06:24 +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
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
Mohamed Gaber
57f3f21d6e Add Very Early support for GF180MCU + open_pdks Tweaks (#1251)
+ Add gf180mcuC configs for {APU, PPU, SPM}
~ Clean up some leftover variables
~ STD_CELL_LIBRARY now an optional environment variable- open_pdks config files are now responsible for setting the default
~ `to_tcl.py` updated to reflect that ^
~ Add ability to just set `METAL_LAYER_NAMES` in open_pdks
~ `open_pdks` -> 44a43c23c81b45b8e774ae7a84899a5a778b6b0b
2022-08-18 13:38:05 +02:00
Mohamed Gaber
7b15116b80 Revamp Net Unbuffering (#1261)
+ `UNBUFFER_NETS` created, which takes a regular expression, which if matched, remove buffers from said net
~ `scripts/odbpy/remove_buffers.py` rewritten to be comprehensible
~ `remove_buffers_from_ports` -> `remove_buffers_from_nets`, now runs after every resizer step
~ `remove_*` python commands now only use regular expressions
- Remove `DONT_BUFFER_PORTS` as the name does not reflect the proactive nature of buffer removal
- Remove `remove_component` (singular)- unused

This is a temporary workaround until a proper "don't touch net" feature is available in OpenROAD.
2022-08-15 18:27:17 +02:00