-
Notifications
You must be signed in to change notification settings - Fork 953
more detailed Stat command #5054
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
base: main
Are you sure you want to change the base?
Conversation
…abc and before any flattening has been applied
internal renaming
Hi, thanks for working on this. I like the general direction.
In terms of gate equivalents? Keep in mind that Yosys is not just an ASIC toolchain. Best not to assume the target is a CMOS chip, it might be a an FPGA, a SAT solver, or an academic coarse-grain reconfigurable accelerator
Additionally,
|
The goal is to have a file to describe the "area" of the cells. Similar to the liberty files used currently by stat. This way people can write their own description of "area". I'm open to discuss this also on slack(cwalter_at_ethz.ch), as it isn't the primary goal of this PR. Thanks for the feedback. I will implement it.
I currently use the word "Instances" to describe what you call submodules. Is submodules the prefered yosys naming and should I therefore switch over to using it everywhere? |
It's not yosys naming, but consider the hierarchy foo/bar/baz. If you look at stat and it says "baz: area including instances" then it may seem like it's referring to instances of baz, rather than instances in baz. I'm not sure how exactly to word it, I don't like introducing new terms but "submodule" at least seems unambiguous. I'm definitely open to alternate ideas |
We discussed this at the dev jour fixe (this is an event open to contributors here every Monday at 3PM central european time, feel free to pop in) and have reached some consensus for how we'd like to see this play out.
A possible way of formatting to reduce total output width at the cost of line count is this:
rather than
|
On request of @phsauter I'm working on making stat more expressive.
The goal is to have more Information for unflattened designs.
Especially regarding area. It is already possible to use a "liberty" file that helps to estimate the area after the techmap step. where the designs normally aren't yet flattened. With this file it's already possible to get a good area estimates pre optimization. But with the current stat command the resulting report doesn't contain a lot of useful information.
In a later PR I will then also implement a way to get area estimates already before techmap.
A sample report can be found here: croc_chipexperiment.txt
A sample mock Liberty file can be found here : experiment_mock.lib.txt
For the format I took inspiration from: pulp-platform/croc#39. I haven't implemented all the data that is provided there.
This PR isn't yet final. Many parts of the code aren't in a clean state.
Regarding the generated report I'm looking for feedback on the following points:
What are the reasons/motivation for this change?
We would like to have more detailed reporting of the area used by parts of the circuit.
Explain how this is achieved.
Parsing the modules hierarchically allows us to get the area of used modules.
If applicable, please suggest to reviewers how they can test the change.
To test this have a design after Techmap and not yet (completely) flattened.
Run stat
stat -liberty <path/to/mock.lib>
where mock.lib can be the lib file from above.