Skip to content
Snippets Groups Projects
  1. May 08, 2024
    • Mohamed Gaber's avatar
      Migrate Build System to Match OpenLane 2 (#2115) · 14b94a66
      Mohamed Gaber authored
      + Repository is now a Nix flake
      ~ Change all invocations of `openroad -python` to use `run_odbpy_script` for consistency
      ~ Change build system from ad-hoc to Nix, still producing a Docker image as a final result
      ~ Update KLayout scripts to use `klayout-pymod` or properly parse commandline arguments
      ~ `open_pdks` -> `bdc9412` to match OpenLane 2
      - Remove local installer; `nix run .` will run OpenLane natively
      14b94a66
  2. Nov 22, 2023
    • Mohamed Gaber's avatar
      Issue Survey Fixes (#2056) · ee452da4
      Mohamed Gaber authored
      ~ Updated install documentation
      ~ Fixed issue where the issue survey's PDK checker uses `./pdks` instead of `~/.volare`
      - Dropped `pip` requirement/check: `venv`s include `pip` regardless
      ee452da4
  3. Sep 03, 2023
  4. May 24, 2023
  5. Nov 30, 2022
    • Mohamed Gaber's avatar
      Add test for #1506, Isolated Installation in Docs (#1536) · d4d4a319
      Mohamed Gaber authored
      + Add test for JSON config files
      ~ Updated various `rm` execs to `file delete -force`
      ~ Test script now outputs to stdout as well as a log file
      ~ Moved post-run hook runner to `all.tcl`
      ~ Moved installation docs to their own subcategory
      ~ Fix security bug
      d4d4a319
  6. Oct 09, 2022
    • Mohamed Gaber's avatar
      Changes Requested by Caravel Team (#1414) · cfb7ee91
      Mohamed Gaber authored
      + 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
      cfb7ee91
  7. Sep 22, 2022
  8. Sep 12, 2022
    • Mohamed Gaber's avatar
      Documentation Restructure (#1337) · cbb9e6b0
      Mohamed Gaber authored
      ~ 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
      cbb9e6b0
  9. Sep 06, 2022
  10. Aug 09, 2022
    • Mohamed Gaber's avatar
      IR Drop Reports in the Signoff Stage (#1255) · 6ab944bc
      Mohamed Gaber authored
      + Create new IR drop report generation step in the `signoff` stage
      + ALMOST ALL STEPS NOW PRINT THEIR LOGS' PATH
      ~ `increment_index/TIMER/set log/puts_info` commands organized across the board
      ~ Fix issue where `FP_PDN_AUTO_ADJUST` would not snap its values to the mfg grid
      ~ Reorder `configuration/general.tcl`
      ~ Update Contribution Guidelines
      ~ Various Docs Fixes
      - Remove `FP_PDN_IRDROP`
      6ab944bc
  11. Jul 22, 2022
    • Mohamed Gaber's avatar
      RTD Fixes (#1228) · 610a3296
      Mohamed Gaber authored
      ~ RecommonMark, Sphinx Markdown Tables replaced with MyST Parser
      ~ All package versions pinned
      ~ Updated various broken links
      610a3296
  12. Jul 18, 2022
    • Mohamed Gaber's avatar
      PDK Installation Fixes and Documentation Updates (#1212) · ebbb579d
      Mohamed Gaber authored
      + Added PDK build instructions using Volare
      ~ Git requirement for general use (but not building) dropped from 2.35 -> 2.22
      ~ Fixed `override_env`'s inconsistent behavior (thanks, Tcl)
      - Removed conda pdk installation vestiges
      - Removed some useless and confusing under-the-hood sections
      ebbb579d
  13. Jul 13, 2022
    • Mohamed Gaber's avatar
      JSON Config Overhaul (#1134) · c38101ea
      Mohamed Gaber authored
      + JSON Configs now support per-PDK and per-SCL options
      + JSON Configs now have a limited expression engine and a way to specify the current working directory and glob inside of it
      + Created script to help migrate tcl configs to json configs
      + `-init_design_config` rewritten, now creates an `openlane` folder inside the design's directory. New flag `-add_to_designs` restores the previous behavior
      + `docs/source/configuration_files.md` created with a focus on documenting how the configuration files work, including the JSON configuration files
      ~ Update `picorv32` design
      ~ Most `config.tcl`s replaced with `config.json` alternatives
      ~ Global configuration files now loaded in a specific order with no glob
      ~ Changed default values for PL_TARGET_DENSITY
      ~ Documentation updates to support the use of configuration JSON files as a first class citizen
      ~ Update author list
      ~ Replicate override_env after second design source
      ~ Move verify_mismatches to before most preparation
      ~ flow.tcl no longer requires `-design`, is happy to use the current working directory as a default
      ~ replicate.py rewritten
      ~ update.py not rewritten, but uses click now (and an improved --help)
      - Removed "flag documentation" for some python scripts, just use `--help`
      c38101ea
  14. Apr 15, 2022
  15. Apr 07, 2022
    • Mohamed Gaber's avatar
      Multi-Process Corner RCX (#978) · b7370865
      Mohamed Gaber authored
      + Added optional multiple **process corner** technology lef support (min/max/nom), in addition to the already existing multiple **timing corner** support (ss/tt/ff). This will also be our nomenclature going fwd.
      + Parasitics extraction now run at all process corners, and multi-corner analysis is run at all three process corners
      ~ `finishing` -> `signoff`
      ~ Parasitics extraction and STA are now an independent step instead of being lumped in routing, as part of the signoff block
      ~ Update OpenROAD
      ~ Update Open_PDKs, Sky130, and Magic
      ~ PDK verification made more PDK agnostic outside of env.py
      ~ Made RCX use LEF files instead of multiple configuration variables/set_rc.tcl
      ~ `prep_lefs` more or less rewritten
      - Removed redundant RCX variables
      - Removed `-order_wires` from various `read_def`s in OpenROAD- deprecated, apparently
      b7370865
  16. Apr 05, 2022
  17. Apr 01, 2022
  18. Mar 14, 2022
    • Donn's avatar
      More Usability Tweaks (#984) · 00da77e5
      Donn authored
      + `-verbose` flag added with multiple levels, replacing `-disable_output` (which is now the default behavior)
      + New command `puts_verbose` added, to be used for extra pieces of information
      + ./flow.tcl header now includes version, copyright and licensing information
      + Added `-last_run` flag allowing you to quickly resume the last run (useful with -interactive)
      + Added `open_in_klayout` command that lets you open the CURRENT_DEF in Klayout
      ~ `env.py issue-survey` now detects whether it's running inside the container and warns accordingly
      ~ RUN_KLAYOUT, RUN_KLAYOUT_DRC, RUN_MAGIC_DRC, RUN_LVS now only control noninteractive flows
      ~ Full git hash added to containers
      ~ Various Documentation Updates
      ~ Changed verbosity of various output messages
      - Removed `-disable_output` (now the default behavior)
      - Removed OpenLane ASCII art
      - Removed various "chatty" messages, including things succeeding (shut up unless something fails)
      00da77e5
  19. Feb 28, 2022
  20. Feb 19, 2022
  21. Jan 28, 2022
  22. Jan 27, 2022
    • Donn's avatar
      Some QoL changes to PDK Installation Make Targets (#888) · bff0186b
      Donn authored
      Some usability improvements for the sky130 PDK make targets in addition to code de-duplication.
      
      ~ `INSTALL_SRAM=enabled make pdk` removed in favor of `make pdk-with-sram`
      ~ `make full-pdk` removed in favor of `FULL_PDK=1 make pdk`
      ~ `make native-pdk` removed in favor of `NATIVE_PDK=1 make pdk`
      bff0186b
  23. Jan 24, 2022
    • Donn's avatar
      Add Python Linting (#876) · 7a65b61b
      Donn authored
      + Added linting rules for flake8, formatting with black
      + Added a GitHub Action to enforce lint/format rules
      7a65b61b
  24. Dec 27, 2021
  25. Dec 14, 2021
    • Donn's avatar
      Rewrite `run_designs.py` (#760) · c71becce
      Donn authored
      + run_designs.py now exits with exit code 2 if a design failed
      ~ run_designs.py rewritten in click, API altered slightly
      ~ renamed `addComputedStatistics` to `add_computed_statistics`
      - removed `make regression_test`
      c71becce
    • Donn's avatar
      Usability Tweaks (#759) · 96670268
      Donn authored
      ~ CI now uploads each run tarball individually
      ~ Updated READMEs
      ~ `save_views` now always executed
      - Removed `run_power_pins_insertion_step`: `write_powered_verilog` now run right before LVS
      96670268
  26. Dec 02, 2021
    • Donn's avatar
      Report Generation Bugfixes (#742) · 445acc69
      Donn authored
      * Report Generation Bugfixes
      
      + Added `-override_env` option to flow.tcl to override certain environment variables on a per-run basis
      + Added option to extract inverter cells into the metrics behind an env var (so as not to break compatibility)
      + Klayout requirements added to runtime
      ~ Regression test outputs renamed, design report now in yaml
      ~ CI now runs on ubuntu-20.04 specifically, installs pyyaml
      ~ Fixed `make test`
      ~ Rewrote compare_regression_reports in click
      ~ Fixed compare_regression_design (typo made it not run, aliasing failures!!)
      ~ Changes to variable names: FINAL_TIMING_REPORT_TAG is now LAST_TIMING_REPORT_TAG, ran every STA
      ~ Fixed yosys gate type extraction
      
      * Fix Odd Antenna Issue By Reverting OpenROAD
      445acc69
  27. Nov 23, 2021
    • Donn's avatar
      Artifact Reorganization (#723) · 3bc6fcd3
      Donn authored
      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
      3bc6fcd3
  28. Nov 13, 2021
    • Donn's avatar
      Assorted Usability Improvements (#709) · cbb562bd
      Donn authored
      * 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
      cbb562bd
  29. Nov 12, 2021
    • Donn's avatar
      OpenROAD Script Updates (#702) · 8950f1aa
      Donn authored
      * 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.
      8950f1aa
  30. Oct 25, 2021
    • Donn's avatar
      Docker Overhaul (#673) · 6d85a85e
      Donn authored
      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.
      6d85a85e
  31. Oct 22, 2021
  32. Oct 17, 2021
  33. Oct 16, 2021
    • Donn's avatar
      Improved Environment Utilities (#648) · 52783014
      Donn authored
      
      + ./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: default avatarAhmed Nofal <ahmed.nofal@efabless.com>
      52783014
  34. Sep 29, 2021
    • Donn's avatar
      Makefile tweaks (#630) · 18ef85a4
      Donn authored
      This changes Makefile environment variables to be consistent with caravel user project based on feedback from @mattvenn.
      
      Also, the fastest_test_set/extended_test_set productions have been fixed from a break in #627.
      
      * IMAGE_NAME -> OPENLANE_IMAGE_NAME
      
      * CURRENT_TAG -> OPENLANE_TAG
      18ef85a4
  35. Sep 07, 2021
  36. Aug 31, 2021
    • Donn's avatar
      Top Level Cleanup (#568) · f1a3448f
      Donn authored
      ~ Reformatted run_designs.py to be more consistent with the rest of the codebase
      ~ Moved almost all top level scripts into other folders
      ~ Moved most top level documentation to docs/source
      ~ ol_install.py -> install.py
      ~ Fixed infinite recursion issue with or_issue.py
      f1a3448f
  37. Aug 16, 2021
  38. Aug 04, 2021
Loading