Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: openroad hierarchical macro placer #537

Draft
wants to merge 13 commits into
base: dev
Choose a base branch
from
Draft

feat: openroad hierarchical macro placer #537

wants to merge 13 commits into from

Commits on Aug 21, 2024

  1. Yosys Step Rewrite, Update nix-eda

    * `Yosys.JsonHeader`, `Yosys.*Synthesis`
      * **Internal**:
        * Steps are no longer `TclStep`s: rewritten in Python and now use `libyosys`. While there are no functional changes, this enhances the codebase's consistency and helps avoid tokenization-related security issues.
    
    * `Yosys.*Synthesis`
      * ABC scripts used now created dynamically and dumped as a `.abc` file into the step directory.
    
    * Updated `nix-eda`
      * `yosys` -> `0.44` (+ `-y` patch)
      * `klayout` -> `0.29.4`
      * OpenROAD now used with new `withPythonPackages` features to use Python packages specifically for the OpenROAD environment
    donn committed Aug 21, 2024
    Configuration menu
    Copy the full SHA
    7cd5485 View commit details
    Browse the repository at this point in the history
  2. Exclude Pyosys Scripts from mypy

    donn committed Aug 21, 2024
    Configuration menu
    Copy the full SHA
    f752ac9 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2024

  1. Fix missing passes in proc/synth

    donn committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    a5cfc8c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8082f54 View commit details
    Browse the repository at this point in the history
  3. Fix Lint

    donn committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    13b7c3a View commit details
    Browse the repository at this point in the history
  4. Fix &nf usage

    donn committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    5b72255 View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2024

  1. Fix nonsynth deletes

    donn committed Aug 25, 2024
    Configuration menu
    Copy the full SHA
    7b36a6e View commit details
    Browse the repository at this point in the history
  2. Fix vh

    donn committed Aug 25, 2024
    Configuration menu
    Copy the full SHA
    72875b8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    66524bd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3d55222 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2024

  1. Add support for Hierarchical RTL Macro Placer

    * `OpenROAD.*`
      * Added `log_cmd` from OpenROAD-flow-scripts -- neat idea for consistency
      * **Internal**: Steps now sensitive to `_OPENROAD_GUI` environment variable -- coupled with `--only`, it runs a step in OpenROAD then doesn't quit so you may inspect the result.
        * This is not part of the OpenLane stable API and may be broken at any moment.
    
    * `OpenROAD.CutRows`
      * Rows that generate less than a specified number of sites are now removed to help with PDN generation (default: 25)
    
    * Created `OpenROAD.HierarchicalMacroPlacer`
      * Based on OpenROAD `mpl2`-- a macro placer that uses hierarchy information from the RTL to generate a macro placement automatically
      * Used for macros for which a manual placement has not been provided
    
    * Created `OpenROAD.UnplaceAll`
      * Removes placement status of all instances.
    
    * `Yosys.Synthesis`
      * `SYNTH_NO_FLAT` replaced with `SYNTH_HIERARCHY_MODE` with three options: `flatten` (previously `false`), `deferred_flatten` (previously `true`) and `keep` (new value). When set to `keep`, the netlist generated is hierarchical.
    
    ## Flows
    * Classic
      * Added `OpenROAD.HierarchicalMacroPlacer` after `Odb.ManualMacroPlacement`
      * Moved pin placement flow before macro placement as `mpl2` requires pin placement information
      * Added `OpenROAD.UnplaceAll` after pin placement so rows can be cut for macros without worries about already-placed instances
    
    ## Tool Updates
    * `openroad` -> `49a497a`
    * Enhanced overlay for `or-tools` to fix a bug where trying to build OpenROAD from a git repo (using nix develop .#openroad) would Cmake always fail after the first `cmake ..`
    donn committed Aug 26, 2024
    Configuration menu
    Copy the full SHA
    60bcad1 View commit details
    Browse the repository at this point in the history
  2. lint michigan

    donn committed Aug 26, 2024
    Configuration menu
    Copy the full SHA
    29b3424 View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2024

  1. Update OpenROAD again + docs

    donn committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    a6fa5e6 View commit details
    Browse the repository at this point in the history