Add Support for Parmys plugin in VTR/Yosys #2215
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Provide Support for intelligent partial mapping for VTR/Yosys using Parmys plugin.
The plugin will be built and installed using the
YOSYS_PARMYS_PLUGIN
flag when buildin the VTR project:make CMAKE_PARAMS="-DWITH_YOSYS=on -DYOSYS_PARMYS_PLUGIN=ON"
To specify the partial mapper, a new argument named
-mapper
is added to therun_vtr_flow
script for Yosys frontend. The available options are [yosys
andparmys
]. If no mapper is specified or-mapper yosys
is used then as before the Yosys itself will perform the partial mapping. If-mapper parmys
is passed then the partial mapping stage will be performed by theparmys
pass within Yosys.The plugin is added as an external project to the VTR CMake tree and when building with
-DYOSYS_PARMYS_PLUGIN=ON
flag, CMake clones the parmys-plugin repository into the VTR_ROOT/libs/EXTERNAL directory and builds the specified tag.Description
This PR provides support for Parmys (Partial Mapper for Yosys) plugin in VTR with Yosys frontend. Parmys is a Yosys plugin that performs intelligent partial mapping (inference, binding, and hard/soft logic trade-offs) from Odin-II.
how to run a sample task:
Related Issue
#2214
How Has This Been Tested?
A new regression test named
vtr_reg_yosys_parmys
is added with golden results regenerated. This regression test includesvtr_benchmarks
andkoios
tasks utilizingk6_frac_N10_frac_chain_mem32K_40nm
andk6FracN10LB_mem20K_complexDSP_customSB_22nm
architectures respectively. This regression test is also added to the CI (Github workflows).Types of changes
Checklist: