-
Notifications
You must be signed in to change notification settings - Fork 415
Yosys+VTR #1844
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
Yosys+VTR #1844
Conversation
a0a57cb
to
91cf6ad
Compare
nightly_test_3 failed due to arm_core getting less logic and somewhat more memory (QoR failure). This doesn't really seem like a problem, but do you expect this @sdamghan ? If so, you can update QoR data to make it pass.
|
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.
Looks good overall @sdamghan .
- I think you should add a README to yosyslib explaining where these files came from, and what they are for, and giving a link to the relevant yosys documentation.
- I see changes to arm_core and boundtop, so the QoR changes look OK. But you'll need to update the golden results.
- You should update the VTR documentation with a Yosys tab and brief information on how to run it with the other tools (but that can be another PR).
@vaughnbetz I am going to investigate the memory packing problem with Yosys as the VTR flow synthesizer. I think it would be better to merge this PR once this problem is solved, |
Sounds good; thanks. |
@vaughnbetz, it seems last week I made a mistake; I still see the memory packing issue using Yosys synthesizer. As you suggested, I tested a simple single ram module to see the difference between these two synthesizers. I could not find any effective difference between the generated BLIF files by both synthesizers, expect, Yosys put a wrapper around signals connected to single_port_ram blocks. That would be really appreciated if you or anyone you suggest could have a look at them as well. |
Thanks @sdamghan . I took a look, and the yosys design connects an additional 7 address lines to LUTs (.names) that output gnd, while odin-ii leaves them unconnected.
Two possible fixes:
If 1 is doable, it is probably simpler; would you know how to do #1? |
I appreciated it @vaughnbetz , I didn't know unused address signals with gnd value could make such a difference versus the unconn value. The first option has a simple solution and again thanks it worked :) I will tide up the code and push this change in a new commit. |
Great, thanks. |
@QuantamHD would you please add a Kokoro runner for the VtR Yosys test? [presubmit] [continous] |
@sdamghan : I think you've addressed my comments except adding a README or some other documentation explaining where yosyslib came from -- I assume it is copied from somewhere, so explaining where it came from (and why it is copied instead of referenced, and if anyone would ever want to update it from the original source and how) would be good. |
0869552
to
7e6cac0
Compare
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.
Thanks for the README -- it is very clear!
3c9e451
to
db5eeda
Compare
@vaughnbetz thank you. I believe once a new Kokoro runner is allocated for the |
Is @mithro or someone else allocating that kokoro runner already? If not, good to ping someone or file an issue. |
@sdamghan - Please create a GitHub issue and assign it to @QuantamHD to complete. |
The real configuration will be landed in verilog-to-routing#1844 Signed-off-by: Tim 'mithro' Ansell <[email protected]>
- add yosys stage to run_vtr_flow script. - add yosyslib and vtr primitive verilog files to vtr_flow/misc - add slightly modified VTR compatible yosys_models adapted from @eddiehung version - add vtr_reg_yosys running VTR benchmarks using Yosys as the VTR front-end - modify CMakeList to add the libyosys to the VTR build tree Signed-off-by: Seyed Alireza Damghani <[email protected]>
- fix multiple conflicting drivers error in boundtop Signed-off-by: Seyed Alireza Damghani <[email protected]>
- remove arm_core reg init values - modify synthesis.ys to perform formal synthesis Signed-off-by: Seyed Alireza Damghani <[email protected]>
Signed-off-by: Seyed Alireza Damghani <[email protected]>
Signed-off-by: Seyed Alireza Damghani <[email protected]>
- fail techmap if read enable is constant low - retrieve arm_core implicit memory Signed-off-by: Seyed Alireza Damghani <[email protected]>
… by Yosys - fix a concatenation bug in arm_core caused failure in ABC for circuits synthesized by Yosys - remove SPRAM/DPRAM rename files - add info to Yosys synthesis script Signed-off-by: Seyed Alireza Damghani <[email protected]>
- regenerate expectation results of techmap_heavysuite - remove whitespace changes Signed-off-by: Seyed Alireza Damghani <[email protected]>
…pack memory slices - add a autoname stage in Yosys synthesis script to avoid VPR misinferring the same signals as distinct ones - perform dffunmap and opt fast as the last stages before wrtiing BLIF Signed-off-by: Seyed Alireza Damghani <[email protected]>
…arse_results.txt Signed-off-by: Seyed Alireza Damghani <[email protected]>
Signed-off-by: Seyed Alireza Damghani <[email protected]>
Signed-off-by: Seyed Alireza Damghani <[email protected]>
Signed-off-by: Seyed Alireza Damghani <[email protected]>
Description
This PR provides the VTR flow with scripts to run Yosys as the synthesizer.
The Yosys synthesis script is mostly inspired by what Eddie Hung proposed for VTR-to-Bitstream. However, some changes like removing the ABC stage from inside of the Yosys and adding new designs to perform depth splitting for single_port_ram and dual_port_ram are added, and updating the yosys_models with recent Yosys changes have been applied.
Comparison:
Steps to run VTR flow with the Yosys front-end
Related
Issue
Motivation and Context
Complimentary changes to PR #1798
How Has This Been Tested?
Types of changes
Checklist: