-
Notifications
You must be signed in to change notification settings - Fork 5
Add Yosys elaboration support #21
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: master
Are you sure you want to change the base?
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.
LGTM. I suggest to add this elaboration step to the CI, and to parse the generated reports for (i) Errors, (ii) Inferred latches, (iii) Timing loops. The latter most likely is a different command and will generate a different report. You can use tee to write the output of a command to a file (like a report log) while simultaneously writing to std out
PS this can also be done later and open an issue meanwhile
Totally agree, the elaboration currently exports a netlist and generates a report that we can parse. Not sure whether inferred latches and timing loops would already be reported at this stage, but for sure if they are we should grep for those and report errors. Will update this once I figured out how to run Yosys in Github CI. |
| mkdir -p $(YOSYS_OUT_DIR) $(YOSYS_REPORTS_DIR) | ||
| cd $(YOSYS_ROOT_DIR) && $(YOSYS) -C elaborate.tcl | ||
|
|
||
| .PHONY: yosys-elaborate |
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.
Is there a reason this target needs to be phony?
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.
isn't it because it's not a file created by make?
This PR adds support for elaboration with Yosys. At the moment this is basically equivalent to parsing the design with Slang, as Yosys is configured to use Slang as frontend. However, the idea is that this script could be further extended later on to perform more synthesis steps or even full synthesis in an open-source technology such as IHP-Open-PDK.