-
Notifications
You must be signed in to change notification settings - Fork 908
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
Automatically call hierarchy
if the current pass does not accept abstract modules
#4089
base: main
Are you sure you want to change the base?
Conversation
I disagree with this change, it would make it impossible to load certain files as command line arguments, so you couldn't write scripts that work on any valid input without knowing the file name any more. There are many passes that do not work correctly until you run |
Are there any passes that work correctly while there are The more general problem here is that the change that delayed module instantiation until If this change is rejected I will probably look into updating the Verilog frontend to not create What makes the current situation worse is that unlike with |
hierarchy
after reading command line inputshierarchy
if the current pass does not accept abstract modules
6a2d9b7
to
af2b9a5
Compare
Having thought about the reasoning here I agree that the change I proposed is wrong.
I would be disappointed to have to wait a year or more for something so basic. This pull request now implements awareness of the design state where there are abstract modules in the design, and automatically runs In principle the same could be done for
I do think that something similar should be happening for processes (and |
73342a0
to
d5aac9a
Compare
(This got an answer in form of the |
1df5b52
to
2e94c4e
Compare
Whenever there are abstract modules in the netlist and the pass does not declare that it supports them, call `hierarchy -auto-top` or `hierarchy` (depending on whether there is a module marked `top`) to instantiate them first. This makes several CLI workflows much more usable, including one as basic as: $ yosys file.v -o file.il
2e94c4e
to
9cd4b4e
Compare
We discussed this on today's Dev JF. We decided that the classification of passes into pre-hierarchy and post-hierarchy that is done in this PR should stay, that We have also concluded that it may be useful to extend this to cover pre- and post-proc passes. |
Literally nobody who has ever used Yosys, in the entire history of Yosys, has wanted to see a
$abstract\foo
anywhere in the netlist. I have been encountering this issue for several years now. Enough.