-
Notifications
You must be signed in to change notification settings - Fork 25
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
Feature/NVMulator #369
base: develop
Are you sure you want to change the base?
Feature/NVMulator #369
Conversation
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.
Thank you for the contribution. I have a couple of change requests related to the toolflow part. Someone else needs to look at the runtime changes.
return false | ||
} | ||
|
||
proc add_nvmulator {} { |
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.
This needs to accept arguments and pass it through
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 your review.
Done.
connect_bd_net [get_bd_pins /memory/mig/c0_ddr4_ui_clk] [get_bd_pins /memory/NVEmulator_0/CLK] | ||
connect_bd_net [get_bd_pins /memory/mem_peripheral_aresetn] [get_bd_pins /memory/NVEmulator_0/RST_N] | ||
|
||
|
||
puts "Adding NVMulator 0 programmer: memory-side" | ||
delete_bd_objs [get_bd_intf_nets /memory/mig_ic_M00_AXI] | ||
connect_bd_intf_net [get_bd_intf_pins /memory/NVEmulator_0/M_AXI_MIG] [get_bd_intf_pins /memory/mig/C0_DDR4_S_AXI] | ||
connect_bd_intf_net [get_bd_intf_pins /memory/mig_ic/M00_AXI] [get_bd_intf_pins /memory/NVEmulator_0/S_AXI_NV] | ||
|
||
puts "Connecting NVMulator programmer: memory-side" | ||
create_bd_cell -type ip -vlnv xilinx.com:ip:smartconnect:1.0 /memory/smartconnect_0 | ||
set_property -dict [list CONFIG.NUM_CLKS {2} CONFIG.NUM_MI {1} CONFIG.NUM_SI {1}] [get_bd_cells /memory/smartconnect_0] | ||
connect_bd_net [get_bd_pins /memory/smartconnect_0/aclk] [get_bd_pins /memory/mig/c0_ddr4_ui_clk] | ||
connect_bd_net [get_bd_pins /memory/smartconnect_0/aclk1] [get_bd_pins /memory/design_clk] | ||
connect_bd_net [get_bd_pins /memory/mem_peripheral_aresetn] [get_bd_pins /memory/smartconnect_0/aresetn] | ||
current_bd_instance "/memory" | ||
set s_nvm [create_bd_intf_pin -mode Slave -vlnv xilinx.com:interface:aximm_rtl:1.0 "S_NVM"] | ||
connect_bd_intf_net [get_bd_intf_pins /memory/S_NVM] [get_bd_intf_pins /memory/smartconnect_0/S00_AXI] | ||
connect_bd_intf_net [get_bd_intf_pins /memory/smartconnect_0/M00_AXI] [get_bd_intf_pins /memory/NVEmulator_0/S_AXI] |
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.
This is not portable and has too many assumptions on port names. It will only work on the Alveo U280. In the current form, the plugin should not be under platform/common
but instead restricted to U280.
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.
I made it general. I tried it on AU250 and the plugin was able to integrate NVMulator as expected.
exit 1 | ||
} | ||
|
||
save_bd_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.
Please remove debugging commands such as save_bd_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.
Done
puts "Connecting NVMulator programmer: host to memory" | ||
connect_bd_intf_net [get_bd_intf_pins /host/M_NVM] [get_bd_intf_pins /memory/S_NVM] | ||
|
||
current_bd_instance |
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.
does this command have any function when used without parameter?
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, it uses default value (i.e., 0 for read_latency and write_latency).
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.
I was refering to the current_bd_instance
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.
I see. I also updated input for current_bd_instance
|
||
current_bd_instance | ||
} | ||
} |
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.
Indentation is off
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.
Done
namespace eval nvmulator { | ||
|
||
proc is_nvmulator_supported {} { | ||
puts "AU280" |
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.
This output is not meaningful. Either leave it out or add more context.
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.
I removed it.
I had a short look at the runtime changes. If I understand it correctly, the changes to the runtime basically just configure the NVMulator IP (via an AXI-Lite slave), correct? I want to propose some alternatives, on how to achieve this:
|
…_nvmulator proc, and Indentation
Is there any progress on this PR? I agree with the suggestions of @wirthjohannes, we need a more general approach to get this PR merged. |
No description provided.