-
Notifications
You must be signed in to change notification settings - Fork 162
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
Vexriscv BRAM support #352
base: master
Are you sure you want to change the base?
Conversation
apond308
commented
Jul 1, 2021
•
edited
Loading
edited
- Added Vexriscv and Picorv32 benchmarks to OpenFPGA
- Added 1K bram/dff/dsp arch file
- Added 18 bit multiplier (before only had 36 bit)
- Added pmux to mux techmap to yosys bram_dsp_flow, avoids pmux errors
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.
@apond308 In general, looks good. Just need to enhance testing.
@@ -0,0 +1,17 @@ | |||
module mult_18x18 ( |
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.
Each file in this directory is binded to a specific architecture, so that for each architecture, we can customize the synthesis options to the most. Please avoid a generic naming. Suggest to rename this file to k4_frac_N8_tileable_adder_chain_dpram1K_dsp18_fracff_40nm_dsp_map.v
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.
Wouln't that lead to redundancy though? If I have two architectures like this:
k4_frac_N8_tileable_adder_chain_dpram1K_dsp18_fracff_40nm_dsp_map.v
vs
k4_frac_N8_tileable_adder_chain_dsp18_fracff_40nm_dsp_map.v (no BRAM)
Wouldn't that lead to duplicate multiplier map code? Couldn't those two architectures just use a single dsp18 map since they both have the same multiplier design?
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.
You are right. I believe it is time to rework this directory and create rules when adding new technology libraries for yosys.
My current plan is
- Each architecture has an independent set of technology library files, such as
<arch_nam>_dsp_map.v
,<arch_name>_bram_map.v
etc. As such, it is easy for users to pick technology libraries because the rules are simple. - To avoid duplicated codes, you may try to use symbolic links. For example,
k4_frac_N8_tileable_adder_chain_dpram1K_dsp18_fracff_40nm_dsp_map.v
contains the actual codes, whilek4_frac_N8_tileable_adder_chain_dsp18_fracff_40nm_dsp_map.v
is a symbolic link. - We need to create separated directory for each architecture, and classify the files into different directories. As a result, it is easy to maintain. Otherwise, later on, when we 10+ architectures in the
openfpga_yosys_techlib
directory, it may become a mess.
Let me know what you think.
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.
Oh so you are planning on having a directory (for example, k4_frac_N8_tileable_adder_chain_dpram1K_dsp18_fracff_40nm) with the openfpga arch, vpr arch, dsp_map, bram_map, etc all in that directory?
@@ -0,0 +1 @@ | |||
/home/apond/sofa/SCRIPT/skywater_openfpga_task |
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.
We do not put skywater task run in OpenFPGA repo. They are covered in the SOFA repository.
I see you have added new benchmarks. Can you create dedicated task-run for the picorv benchmarks?
The micro-benchmark regression test is a proper place to add these test cases.
run-task benchmark_sweep/signal_gen --debug --show_thread_logs |
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.
Yes, I thought I deleted the skywater_openfpga_task symlink; I'll delete it.
And yes, I will create a task-run for the picorv.