Queryable physical design
We recommend using a python virtual environment. For the base project, the required python packages are listed in requirements.txt.
python -m venv env
# Use activate.csh if on tcsh.
source env/bin/activate
python -m pip install -r requirements.txt
To get more designs for experimentation, there are some included submodules, such as garnet. Use the git submodule command to fetch these:
git submodule update --init --recursive
Some submodules require their own requirements, contained in <submodule>-requirements.txt. E.g. for garnet related experiments:
python -m pip install -r garnet-requirements.txt
Tests can be run using pytest:
python -m pip install pytest
python -m pytest pdq/
Assuming you have access to the necessary physical design tools, code can be run using:
python basic_flow_main.py --package <design_package_name> [--module <module_name> | --generator <generator_name>] [--params <key>=<value>,...]
This will run the query flow on either the specified module or generator from <design_package_name>. <design_package_name> should be specified as a "dot" path rather than a file path. For example, to run on the Adder generator found in the file magma_examples/magma_examples/adder.py, we could run
python basic_flow_main.py --package magma_examples.magma_examples.adder --generator Adder --params n=16