-
Notifications
You must be signed in to change notification settings - Fork 982
STAT: Add parameterised cells #5281
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
STAT: Add parameterised cells #5281
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As with #5054, it would be good to add a test or two for the behavior you're adding, along with minimal versions of the .lib files you've got in the PR description that can be included in the repository (containing just a couple cell types to check a small design).
fix design hierarchy containing wrong values. remove left over debug print.
Fix some unknown cells apearing twice.
Fix existing testcases Fix edgecase where modules where counted as cells.
efe4fcd
to
bf876cd
Compare
Testcases have been added. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Co-authored-by: KrystalDelusion <[email protected]>
cells can have their area as a function of the input port width.
Should be covered by the yosys license not anything else.
fd46d7b
to
9278bed
Compare
THIS PR IS A EXTENSION OF #5054 . (I'm not sure how this should be presented best, should it just contain the changes after #5054? currently it is a branch of the #5054 branch)
What are the reasons/motivation for this change?
In discussion with @phsauter and the PULP group there is a need to have a way to estimate the area earlier in the flow.
This PR implements a way to estimate the area earlier in the flow. It allows for lib files that have been customised to contain tables to lookup the "area" by the size of the input/output of the cells. This is the same idea as for #5278 .
The details are explained there.
Explain how this is achieved.
See the same idea as #5278.
The user can use their own definition of area.
There is a prepared lib files for area estimated using nand2 gates as equivalent. and then just using mathematical scaling.
If applicable, please suggest to reviewers how they can test the change.
There are these three lib files as a example (the first one could also be replaced by a actual lib file from a pdk)
they can be loaded and should be usable with any design. I have used the croc design from pulp.
These are the same files as used by #5278.
IHP130 standard cells: ihp130_stdcell.lib.txt
Yosys internal cells (which are used after techmap): nand2_based_internal.lib.txt
Yosys internal cells (before techmap): area_by_width.lib.txt