Skip to content

Conversation

ezelioli
Copy link
Collaborator

@ezelioli ezelioli commented Apr 3, 2025

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.

@ezelioli ezelioli self-assigned this Apr 3, 2025
@ezelioli ezelioli requested review from bluewww and alex96295 April 3, 2025 14:14
Copy link
Member

@alex96295 alex96295 left a 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

@ezelioli
Copy link
Collaborator Author

ezelioli commented Apr 3, 2025

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
Copy link
Collaborator

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?

Copy link
Member

@alex96295 alex96295 Apr 8, 2025

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants