-
Notifications
You must be signed in to change notification settings - Fork 415
Fix DSP blocks synthesis bug in Yosys+Odin-II #1953
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
Fix DSP blocks synthesis bug in Yosys+Odin-II #1953
Conversation
ac16c85
to
849941c
Compare
ea35798
to
e85240c
Compare
Thanks for working on this, @sdamghan. The general solution looks good to me. I'm not familiar with ODIN internals so can't really provide any meaningful comments on the code. I can help with some testing though. |
Thanks @aman26kbm |
f1fd872
to
d868d7e
Compare
HI @sdamghan, I am working with @aman26kbm and was testing out your fixes. I have instantiated a hard block in my circuit file and tested the yosys + odin ii flow. I am appending the results. I ran the following command on your fix_yosys_odin_dsp branch output on the terminal; output for master branch; elaborator.yosys.log for master branch; verilog test file; |
@karanmathur - Thanks for the results. |
@sdamghan I forgot to mention, but the output on your branch shows that the bug seems to have been fixed. |
Can we merge this? |
@aman26kbm - I believe the code is ready. Once the PR gets approved I will merged it. @vaughnbetz - would you mind letting me know your comments on this PR? |
d868d7e
to
2cca714
Compare
As of today's meeting, I have updated the branch with recent changes in the master branch and added more comments and clarified the pull request description. Will merge once CI tests are green |
2cca714
to
d1b0349
Compare
…lackboxes Signed-off-by: Seyed Alireza Damghani <[email protected]>
…e unused bb definitions Signed-off-by: Seyed Alireza Damghani <[email protected]>
…ng phase - create a fake ast node for user-defined DSPs in the BLIF Reader Signed-off-by: Seyed Alireza Damghani <[email protected]>
Signed-off-by: Seyed Alireza Damghani <[email protected]>
…2_accum DSP slice in the "k6FracN10LB_mem20K_complexDSP_customSB_22nm" architecture Signed-off-by: Seyed Alireza Damghani <[email protected]>
Signed-off-by: Seyed Alireza Damghani <[email protected]>
Signed-off-by: Seyed Alireza Damghani <[email protected]>
d1b0349
to
5192448
Compare
Hey @sdamghan , turns out there is still some issue here. When we have a hard block instantiated in the design, we get an error at the ABC stage. Here's the error in abc0.out: Sorry for not verifying properly earlier. We only verified the fix using the ./ODIN_II command (i.e. synthesis only). We didn't run run_vtr_flow or run_vtr_task to verify this change. Can you please take a look? |
@aman26kbm - let me investigate more, will let you know the result |
There are 3 BLIF files in the run directory:
Only |
Not actually, since the |
Description
Except for the VTR primitives, the rest of models in architecture files could not be parsed by Yosys elaborator in the Yosys+Odin synthesizer unless Yosys is provided with modules' signature. This was possible previously, by adding the modules signatures manually in a Verilog file and pass it to Yosys+Odin-II. This PR automate this process by:
arch_dsp.v
) in the ODIN_II directory. Additionally, the-blackbox
option is added to the write_blif command in the yosys script to print out the definition of the used hard blocks in the coarse-grained BLIF file, and the-purge_lib
option is added to the hierarchy command to avoid printing the definition of unused ones.HARD_IP
nodes for blackboxes and passes them untouched to the subsequent phases.Related Issue
Motivation and Context
How Has This Been Tested?
Types of changes
Checklist: