Commit Graph

1353 Commits

Author SHA1 Message Date
Donn
520f2f136a Update OpenROAD, Magic and CVC (#734)
CVC now also points at master instead of @donn's fork
2021-11-24 14:59:08 +02:00
Anton Blanchard
65da365962 Fix typos in PL_RESIZER_REPAIR_TIE_FANOUT option (#732)
[skip ci]
2021-11-24 14:50:31 +02:00
Harald Pretl
fe42719460 Fix reading multiple liberty files during STA (#728)
Resolves #727
2021.11.24_02.01.48
2021-11-23 20:08:24 +02:00
Donn
3bc6fcd3e1 Artifact Reorganization (#723)
The best thing to happen to OpenLane since OpenLane.

Variables related to output files: i.e. logs, results and reports, are becoming more uniform.

* Variables now point to folders
* Variables now called `{stage}_{type}s`
* All variables renamed to be tool-generic
   * magic, klayout, cvc and lvs all unified, renamed "finishing"
* Better flow runtime calculation
  * All step runtimes are now stored in a yaml file, which can easily be read by a human or parsed by a computer.
* Better step indexing
   * You have to increment the step index explicitly using `increment_index`.
   * Functions that take log arguments now require you to not use an indexed file, it's their responsibility to index them.
* Changed names for many logs to make more sense
* A plethora of files being moved and/or renamed
   * Yosys scripts were moved into their own folder
   * All references to OpenLANE that are not a published paper have been replaced with OpenLane
   * Copyright dates updated on some files
2021-11-23 19:40:15 +02:00
Manar
e1883edfbc Update resizer (#726) 2021.11.23_01.42.34 2021-11-22 15:59:18 +02:00
Manar
6245b0e675 Fix sram install (#724)
Also disable by default
2021.11.20_01.52.16
2021-11-19 21:38:50 +02:00
Manar
e0e6fbc1bd Add option for enabling/disabling repair_tie_fanout (#722)
* Add option for enabling/disabling repair_tie_fanout

* add escape characters

* Add option for enabling sta report power
2021-11-19 20:30:08 +02:00
Donn
92f1274352 Non-fixed layer count for GLB RT adjustments (#721)
* Non-fixed layer count for GLB RT adjustments

Remember this kids, nothing is more permanent than a temporary solution.

* GLB_RT_LX_ADJUSTMENT variables consolidated into GLB_RT_LAYER_ADJUSTMENTS, a comma-delimited set of values

* GLB_RT_LX_ADJUSTMENT will continue to be accepted but display a deprecation warning, and will be removed in a later version of OpenLane.

* GLB_RT_L1_ADJUSTMENT value from the PDK is now ignored.

* Bashrc fix (Line wrap problem), or_issue fix
2021.11.19_01.56.31
2021-11-18 12:06:02 +02:00
Donn
f77d85eb21 Replace internal grt:: calls (#719)
Also:
* create layer_adjustments file that's source by the other two files
* use lindex TECH_METAL_LAYERS instead of findRoutingLayer
2021.11.18_01.51.21
2021-11-17 20:29:51 +02:00
Donn
0ffb3ccd17 Update tool_updater.yml (#720)
[skip ci]
2021-11-17 19:33:43 +02:00
Anton Blanchard
46a0287190 Fix a few typos (#717)
[skip ci]
2021-11-17 19:20:42 +02:00
Donn
bdb1b56f58 or_issue, sta.tcl updates (#715)
* Only `read_verilog` if there's no CURRENT_DEF: see https://github.com/The-OpenROAD-Project/OpenROAD/issues/1305#issuecomment-968336079 (Practically didn't cause an issue as all DEFs are used without the standalone flag)
    * or_issue now supports netlist inputs and no longer generates tarballs: encourages inspecting and running the code before uploading a tarball
    * or_issue now also creates tcl, gdb and lldb files
    * OpenROAD commit now sedded in instead of GITDIR-NOTFOUND: See last paragraph of https://github.com/Cloud-V/DFFRAM/issues/115
2021.11.17_01.42.05
2021-11-16 14:44:55 +02:00
Manar
922e35bcc0 Fix multiple synthesis libraries (#714)
* Fix multiple synth lib

* Fix LIB_RESIZER_OPT documentation

* Fix lappend statement
2021-11-16 14:28:29 +02:00
Anton Blanchard
11d9af33a5 Move fill insertion after detailed placement (#716)
I have a design that fails detailed placement just before global routing.
Looking closer, I'm not sure why we do fill insertion before the final
detailed placement step, because adding filler cells is just going to
make it impossible to fix any placement issues.
2021-11-16 14:27:40 +02:00
Anton Blanchard
fe93ae601c Fix typo in run_resizer_design (#713)
[skip ci]
2021.11.16_01.40.20
2021-11-15 09:53:21 +02:00
Matt Guthaus
62e2d95f15 Bugfix to allow TCL lists for environment variables (#711)
This is needed to specify a signal such as a clock that
may have brackets (bus) annotation. Without this, it tries to
interpret the brackets as a command and execute it.
For example:
set ::env(CLOCK_PORT) {io_in\[17\]}
2021.11.15_01.54.35
2021-11-14 13:23:42 +02:00
Anton Blanchard
207179613a Remove *_REPO and *_COMMIT defaults in Dockerfiles (#712)
[skip ci]
2021-11-14 13:22:55 +02:00
Donn
cbb562bd43 Assorted Usability Improvements (#709)
* verilog2def -> init_floorplan

Some files still retained the name of a floorplanning tool we're no longer using. It has been removed.

* netlist locations

Netlists generated as part of later steps were placed under `synthesis/`. They have been moved to their proper locations.

* Build tweaks

`make openlane` now actually builds the container. `make pull-openlane` has been added with the original functionality.

The git commit has been placed in the container at `/git_version`.

A custom `.bashrc` has been added.

Non-standard `echo -ne` invocations replaced with `printf`.

* Issues

verify_versions now works without a `PDK_ROOT` set (`$openlane_root/pdks`)

clarified issue template
2021.11.14_01.53.37
2021-11-13 13:20:00 +02:00
Anton Blanchard
9958a53dd0 Update documentation to show RUN_SIMPLE_CTS defaults to off (#708) 2021-11-13 06:52:06 +02:00
Manar
9d2c4de07e Bring back FP_IO_MIN_DISTANCE (#705)
* Bring back FP_IO_MIN_DISTANCE

* Set io min distance default to 3
2021.11.13_01.43.55
2021-11-12 23:14:54 +02:00
Manar
665626bb1f Fix typo in clock routing layer variables (#703)
* Fix typo in clock routing layer variables

* Expose max_wire_length option for the repiar_clock_nets command
2021-11-12 14:54:55 +02:00
Donn
8950f1aaeb OpenROAD Script Updates (#702)
* Rewrite or_replace.tcl

That script used a lot of internal swig commands with an unstable API/unpredictable behavior. Resolves #697.

* Expose `max_displacement` flag for detailed placement

This was added at some point as a replacement to the diamond search height thing and is necessary for macros.

* Add OpenROAD GUI/Tcl Readline

Resolves #642. Note that this addition will be intentionally undocumented and is intended more for people who absolutely want it.

MISC:

* CI fast fail off/always push image

The CI will report failures still, but will still publish an image and create a tag. Additionally, other tests won't be killed  on the first failure.

* Naming convention changes

  * `docker_build/` -> `docker`: Just is more consistent with literally every other codebase that uses Docker ever.

  * Removed `or_` prefix from OpenROAD scripts: redundant: They're all already under a folder called "openroad." The distinction no longer makes any sense as there are no separate scripts for the previously standalone utilities.
2021-11-12 13:16:15 +02:00
Manar
320ce39d63 Add opendb script for removing buffer cells (#701) 2021-11-11 14:42:58 +02:00
Anton Blanchard
b41737e609 Disable timing and routability driven modes when not wanted (#700)
In global placement, OpenLane assumes timing and routability driven modes
are disabled. This is not the case when calling the OpenROAD APIs
directly, so explicitly disable them.
2021-11-11 03:47:33 +02:00
Donn
18a17f4074 or_issue.py tweaks (#689)
* Fix vv

* OR Issue Tweaks

This adds a number of tweaks to or_issue.py

1. It is now expected to be run from within the same environment OpenLane is run in. i.e., `make mount` for OpenLane docker users. Running from an external environment is no longer supported.

2. Interface changed slightly.

3. Improvements allowing OpenROAD scripts that depend on other OpenROAD scripts to run fine.
2021-11-05 22:40:33 +02:00
matt venn
a02cfc2e52 Update README.md (#691)
Take @maliberty explanation in the skywater slack and add to the parameters on hold and setup slack.

[skip ci]
2021-11-05 19:34:50 +02:00
Mitch Bailey
01a6d1b911 Additions to cvc model file (#685) 2021-11-01 14:05:43 +02:00
Manar
8c55f4d9f0 Read additional .lib files for macros (#687) 2021-11-01 14:04:40 +02:00
Manar
db8505acbc Update set_wire_rc command (#682) 2021-11-01 13:47:44 +02:00
Mitch Bailey
4528b34bed Added missing tee (#684)
[skip ci]
2021-11-01 13:45:54 +02:00
Manar
ff6eec246a Unify the way we are running STA (#681)
* Fix genericfir timing vios

* Run sta inside the step script
2021-10-28 18:06:49 +02:00
Manar
8d686c081c Update openroad + add multi-corner timing analysis (#680)
* Update OR App

* Fix overflow iterations

* Fix repair_tie_fanout command

* Update design config

* Add multi-corner analysis
2021-10-27 15:12:35 +02:00
Vitor Bandeira
683151cc9e Make sure docker logs dir exists (#679)
Signed-off-by: Vitor Bandeira <vitor.vbandeira@gmail.com>

[skip ci]
2021-10-27 14:36:07 +02:00
Manar
354a25f774 Update resizer options (#678)
* Update design configuration to address timing violations

* update resizer scripts

- added repair_tie_fanout command
- added catch to the repair_timing commands to prevent exiting when the utilization limit is reached

* Reset routing_cores to 2
2021-10-26 16:57:47 +02:00
Anton Blanchard
c0b75f5f37 Fix typo in python exit call (#677)
In commit 4e158a77ef ("Quit on timing violations at the typical
corner (#659)"), os.EX_DATA should have been os.EX_DATAERR.
2021-10-26 15:11:33 +02:00
Donn
e8f4a88f66 Last Minute Fixes for MPW3 (#675) 2021.10.25_20.35.00 mpw-3a 2021-10-25 20:32:41 +02:00
Manar
003992ec39 Update timing signoff methodology (#674)
- Removed the `-min/-max` options from read_liberty since they shouldn't be used for modeling different process corners (https://github.com/The-OpenROAD-Project/OpenLane/issues/671). 
- Updated the base SDC file to include information about clock uncertainty, clock transition, and timing derate.
- Updated the timing/design optimizations to be done at the typical corner.
- Updated the STA script to generate the SDF file after the routing is concluded. 
- Updated the STA script to report more information like clock skew, worst slack, power, area.
- Added some fixes to the report generation to retain the log file index so that we can easily keep track of when the reports are generated.
2021.10.25_17.22.00
2021-10-25 16:44:59 +02:00
Donn
6d85a85eac Docker Overhaul (#673)
This makes a number of internal improvements to the docker build process.

* A common build base

This common build base utilizes the dependency list outlined in `/dependencies` for both yum and pip, with the exception of cu-gr and dr-cu which use an... interesting (read: obtuse) build system. Speaking of...

* A pre-compile dependency list

This allows for the installing of dependencies that may need to be needed to compile *other* dependencies, incl. wheel, pyinstaller, devtoolset, etc.

* Builds now use tarballs

Git is no longer used, saving us the time needed to check out the *entire commit history every single time we build.* To handle submodules, I wrote a special script. Only OpenROAD uses submodules anyhow.

* Rewrote final image

The final image's Dockerfile was a mess. The new one also uses the dependency list and is better organized.

* OpenLane is now mounted to `/openlane` instead of `/openLANE_flow`

We don't really use `openLANE`, branding was settled on `OpenLane`, except I think it's better for everyone's sanity if I avoid capital letters altogether.
2021-10-25 14:45:52 +02:00
Donn
678cf7c901 Clarify whether the issue template is a suggestion or not (#672)
(its not) [skip ci]
2021-10-25 13:32:02 +02:00
Donn
2e6f34032f Fix RTD link [skip ci] (#668) mpw-3 2021-10-22 16:17:54 +02:00
Donn
3957fe303f Simple CTS Now Suboption Of Clock Tree Synthesis (#667)
~ RUN_SIMPLE_CTS no longer runs the Simple CTS if CLOCK_TREE_SYNTH is off.
~ TritonCTS will no longer run if RUN_SIMPLE_CTS is on.
- wbqspiflash was apparently duplicated between the FTS and ETS so it's been removed from the ETS.
2021-10-22 16:04:26 +02:00
Manar
4e158a77ef Quit on timing violations at the typical corner (#659)
* Report clock skew in or_sta.tcl

* Error on timing violations at the typical corner and warn on timing violations at the typical corner

* Reset or_sta.tcl

* Timing Report Fixes + Only warnings on slew by default

~ Tweaks to PDK version verification (broken on some platforms)
~ Resizer default value changes
~ Tweaks to report generation, report.sh removed
~ Run folders now use a full timestamp
- Empty timing reports no longer generated

* Warn on max slew violations

* Fix odd 'exceptional failure' issue

Co-authored-by: Mohamed Gaber <me@donn.website>
2021-10-21 16:41:08 +02:00
Manar
23b9177502 Move pdn configuration to openlane (#653) 2021-10-20 11:59:29 +02:00
Mohamed Shalan
8434170664 Merge pull request #651 from Manarabdelaty/update_rsz_scripts
Update resizer scripts
2021-10-19 15:32:22 +02:00
manarabdelaty
b7b35ae941 fix wbqspiflash antenna vios 2021-10-19 13:59:25 +02:00
manarabdelaty
e8c1fd4b27 Fix spm/wbqspiflash 2021-10-18 16:14:11 +02:00
manarabdelaty
d935a04070 Merge branch 'update_rsz_scripts' of https://github.com/Manarabdelaty/openlane into update_rsz_scripts 2021-10-18 14:22:42 +02:00
manarabdelaty
b1b94c9230 Update open_pdks commit to get the updated synth driving cell/capacitence 2021-10-18 14:22:04 +02:00
Manar
93c9deb684 Merge branch 'The-OpenROAD-Project:master' into update_rsz_scripts 2021-10-18 07:12:03 -05:00
manarabdelaty
c6d81a2567 fix timing violations in usb/s44/zipdiv designs 2021-10-18 14:09:30 +02:00