AreaExtract — tool to extract and process area data from different sources#2576
AreaExtract — tool to extract and process area data from different sources#2576pedropontesgarcia wants to merge 26 commits intomainfrom
Conversation
There was a problem hiding this comment.
Mostly looks good, great work!!! Edit: Nvm fixed! As mentioned via DM I'm having some trouble running Otherwise I left some minor comments.aext - if I can get some help on this that would be very appreciated :)
Also before you merge, if you can write some tests for aext (one with maybe an input JSON and another with input yosys files) with the output being in the CDF, that would be super helpful!
This can be post-merge but just a question: Do you think we can produce area (tree map) visualizations via information given to us via the CDF? I'm also curious whether it might be better to have Petal make the visualization for us. We can also get aext to do this as initially planned, but this could be an alternative!
…AreaExtract to include area-only visualizations
|
@ayakayorihiro I slashed all the previous iterations of area extraction and visualization, and added the area-only visualizations to AreaExtract. I updated all the readmes and resolved (I think) all your comments! I will write some tests (I already have test files so it should not be terribly hard) |
|
@ayakayorihiro I think we're ready for a merge unless you notice anything weird! (in which case do lmk and I'll fix it). Area project should be stable atp :) EDIT: Idk why the tests are not passing... they pass when I run |
ayakayorihiro
left a comment
There was a problem hiding this comment.
Mostly looking good - let's see if changing the Dockerfile will fix the CI!
|
@ayakayorihiro oh no, python versioning is at it again... (type aliases) |
3d31be6 to
1e2d553
Compare
1e2d553 to
29b65ae
Compare
29b65ae to
e0e814b
Compare
This PR adds AreaExtract as a tool in the repo, combining functionality that was previously split between technology-specific tools. I wrote a README and pasted it below. The PR also updates the profiler, Petal, to parse the new common data format and produce its area visualizations with it, independently of the source.
AreaExtract
AreaExtract is a tool that replaces previous technology-specific frontends for the Calyx profiler, Petal. It offers a combined frontend for several sources of area data for accelerator designs, and outputs processed data in a common data format that is parseable by Petal. Currently, the following technologies are supported:
Usage
Obtaining area data
This section provides instructions to obtain area data for designs from supported technologies, to use as input for AreaExtract.
Vivado
The simplest way to obtain a hierarchical area RPT file is to use Fud2 to run synthesis on a Calyx design:
Alternatively, it is possible to use Fud2 to obtain a synthesis-ready Verilog file, and then use Vivado directly to conduct synthesis. The relevant TCL command for Vivado is:
Yosys
Using the OSS-CAD suite, IL and statistics files can be obtained as follows:
It is also possible to pass Liberty files to the
statcommand through the flag-liberty <file>.Future work
This tool is not yet a full replacement of its technology-specific predecessors,
synthrepfor Vivado andaproffor Yosys, as it is not able to produce area-only visualizations, which is a desirable feature. In addition, some ofsynthrep's functionality is unrelated to area, and is not in scope for AreaExtract. Another area that is being explored is the addition of other technologies, especially OpenROAD as it targets ASICs instead of FPGAs. While Yosys also offers ASIC capabilities, it is primarily oriented towards FPGAs; Vivado exclusively targets AMD FPGAs.