This project can be implemented using standard cells based ASIC flow.
First, you need to provide technology-dependent implementations of some of the cells which require specific instantiation.
Then, please provide a set_libs.tcl and set_constraints.tcl scripts to set link and target libraries, and constraints as the clock.
To generate the analyze
script for the synthesis scripts with DC, execute:
make asic
This relies on a fork of edalize that contains templates for Design Compiler and OpenRoad.
First, clone clone OpenROAD-flow-scripts
cd flow
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
cd OpenROAD-flow-scripts
Install OpenRoad
locally as,
sudo ./tools/OpenROAD/etc/DependencyInstaller.sh
sudo ./build_openroad.sh --local
Finally, you need to install KLayout
v0.27.1
Installing OpenRoad and KLayout may not be as straight and forwards, so you may need to install several missing packages (e.g. Qt for KLayout or libreadline-dev for Yosys, tcl-dev for OpenSTA, etc)
git clone --depth=1 --branch v0.27.1 https://github.com/KLayout/klayout.git
cd klayout
./build.sh -noruby
x-heep
uses a verion of edalize
+ fusesoc
that supports sv2v
to convert SystemVerilog to Verilog so that
OpenRoad
(yosys
) can compile it.
You need to install sv2v
as:
git clone https://github.com/zachjs/sv2v.git
git checkout 36cff4ab0ff3fc64dddb66ef6f3ff4ed80cbd581
cd sv2v
make
Follow the instructions at sv2v
and add sv2v
to the PATH
variable.
make openroad-sky130