Skip to content
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

In ECP5 and MachXO2 backends, is the -forceAll option necessary? #604

Closed
cr1901 opened this issue Apr 4, 2021 · 1 comment · Fixed by #609
Closed

In ECP5 and MachXO2 backends, is the -forceAll option necessary? #604

cr1901 opened this issue Apr 4, 2021 · 1 comment · Fixed by #609

Comments

@cr1901
Copy link
Contributor

cr1901 commented Apr 4, 2021

While creating nmigen designs for MachXO2 that require Diamond, I noticed that the synthesis was significantly slower than compared to the manual shell script that @gatecat created for prjtrellis. I talked to them today, and we determined that removing the -forceAll option from each step significantly increases the synthesis speed because synthesis steps are not run repeatedly. By extension, removing -forceAll significantly reduces the output log size from running build_*.{bat, sh} > log.txt. @gatecat doesn't believe -forceAll is necessary at this time, and looking at a test bitstream built without -forceAll in EPIC, I'm inclined to agree.

I have created an MVCE with all the files already generated to show the synthesis speeds/log file sizes. Run python3 mk_build.py > log.txt to regenerate the output log. log-noforceall was generated by removing -forceAll manually and running the build script directly. The size difference between the logs is significant; 800 vs 4700 lines (the latter doing completely redundant work?).

Files

MVCE: diamond-test.zip
Log of the above, with -forceAll manually removed from the generated .bat (should also apply to .sh): log-noforceall.txt

@whitequark
Copy link
Member

We can remove -forceAll. Would you be willing to send a PR?

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

Successfully merging a pull request may close this issue.

2 participants