Conversation
There was a problem hiding this comment.
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.
Is there a reason this target needs to be phony?
There was a problem hiding this comment.
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.