Commit Graph

8 Commits

Author SHA1 Message Date
Mohamed Gaber
601eede636 Support Multi-Arch Docker Builds (#1075)
Tested on Apple M1 and AWS Graviton.

+ Add support for multiple-architecture building
    + Support for amd64, ppc64le and arm64v8 added
    + amd64 and arm64v8 will be automatically built by the CI

~ Major CI Overhauls
   ~ Added composite actions for the Docker build and setting environment variables
   ~ pdk build is now its own job, and amd64/aarch64 have a job each
   ~ matrix -> design_matrix, designs only tested on amd64 for performance reasons

~ run/build base docker images now pushed to Docker Hub based on a hash of dependency lists (to work with the buildx `docker-container` driver)

- Remove pandas (overkill for what we're using it for)

- Remove `cugr`, `drcu` *for now* (they're x86-64 Linux-only utilities)
2022-05-21 18:47:55 +02:00
Mohamed Gaber
8120faaedf Make RUN_SPEF_EXTRACTION skip STA entirely, remove pandas (#1089)
~ `RUN_MAGIC` check moved to flow.tcl
~ `RUN_SPEF_EXTRACTION` now skips STA entirely
- Remove pandas (it's overkill for what we need + greatly inflates install times)
2022-05-11 19:42:22 +02:00
Mohamed Gaber
bb89ac959a Integrate Volare for PDK Building and Mangement, Part 2 (#1052)
Please excuse the last commit lacking a changelog.

+ PDK installation uses Volare, transparently to the user: all they have to do is type "make", where it will get OpenLane and the PDK
+ CI now uses Volare to either **get** or **build** the PDK (if not found), which speeds up the fastest test set by around 60%.
+ Added rudimentary dependency installation instructions.
+ pyyaml folded into the repo, so users without pip can still run issue surveys
~ Open PDKs updated: Parasitics are now extracted using a rules file based on [spef-extractor](https://github.com/Cloud-V/spef-extractor) as a ***temporary*** measure
~ Issue survey no longer checks for click and pyyaml: a venv is used in those scenarios.
~ OpenLane build no longer uses the host filesystem as an intermediary, instead using a templated dockerfile with an N-stage build for N tools, saving IO operations (40% improvement measured)
~ Old PDK targets renamed to build-pdk-conda, includes SRAM by default
~ Replaced python3 ./env.py issue-survey with `make survey`
- Removed Fault from documentation (until I get the chance to work on it)
2022-04-15 13:15:46 +02:00
Mohamed Gaber
0d8d4c187c Fix PIP versions for CentOS 7 (#1023) 2022-03-29 15:25:06 +02:00
Mohamed Gaber
b76d11ac12 CI Fixes (#1022)
+ Pin all pip versions
~ Verify versions made more PDK independent, reads .config/nodeinfo.json
~ Make `requirements_lint.txt` separate
~ Update to new Black: changes to ** operator formatting
~ Various spelling/grammar fixes
~ git:// -> https://
2022-03-29 15:10:54 +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
5278301413 Improved Environment Utilities (#648)
+ ./install.py greatly expanded to ./env.py, a python script consolidating all manners of environment configuration including installation and docker option generation
+ issues are now required to use ./env.py to survey the environment
+ installs to arch/manjaro now supported
~ python no longer asks to install, it creates a virtual environment
~ centos7 -> centos-7 (for consistency)
~ scripts reorganized: i need that top level as pristine as humanly possible
- removed csv2html. just use a viewer

Co-authored-by: Ahmed Nofal <ahmed.nofal@efabless.com>
2021-10-16 21:32:23 +02:00
Donn
8d70ae306f Versioning Improvements (#510)
* Get OpenLane version

* Remove OpenPhySyn and Antmicro Yosys

* Time-based tag names, current -> latest

* Made local installer comply with new versioning scheme

* Made Docker Get Commit/Repo Info From YAML file

~ Updater now also updates just the YAML file
~ Main makefile PDK option also consults the YAML file
~ Updated CI to reflect the above changes + reduce redundancy (Cleanup and Deploy Folded)

* CI Bugfix

* One Final CI Fix
2021-07-28 23:09:50 +02:00