You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
we're currently working on a plugin for the 250MHz user box that includes two VitisNetP4 instances and a custom PIFO (Push-In First-Out) queue in between. Our P4 implementation is based on https://github.com/OCT-FPGA/P4Framework.
When there is a single VitisNetP4 instance, it is directly connected to the AXI-Lite interface of the user box and it can be addressed at address 0x100000 from the host.
How can multiple AXI-Lite slaves be connected to the AXI-Lite interface? We thought about the following approaches:
Somehow modify the AXI crossbar in the glue logic of the user box to handle additional AXI-Lite slaves. We noticed that there is at least one AXI-Lite interface per physical function/interface and increasing NUM_INTF increases the number of AXI-Lite interfaces, but I think it makes the most sense to keep NUM_INTF at 1 if only one is used.
What approaches can you recommend, do you have any further ideas? Can someone provide us with an example that shows similar behavior?
Thanks!
Update: We decided to focus on modifying the AXI crossbar in the user box's glue logic because it does not involve any additional components.
Although we have not yet tested it, steps similar to the following ones should yield the expected result:
Add an additional AXI-Lite interface to the p2p_250mhz module (p2p_250mhz.sv)
Adjust the AXI-Lite interfaces in box_250mhz_address_map_inst.vh and user_plugin_250mhz_inst.vh accordingly
Also add the new interface in box_250mhz_address_map.v. C_NUM_SLAVES needs to be increased by 1, new ..._INDEX and ..._ADDR parameters need to be added and new connections/assignments are required.
The new interface is configured in box_250mhz_axi_crossbar.tcl: Increase CONFIG.NUM_MI by 1 and add CONFIG.Mmm_Aaa_BASE_ADDR and CONFIG.Mmm_Aaa_ADDR_WIDTH for the new interface (see PG059: AXI Interconnect v2 , page 107)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hi everyone,
we're currently working on a plugin for the 250MHz user box that includes two VitisNetP4 instances and a custom PIFO (Push-In First-Out) queue in between. Our P4 implementation is based on https://github.com/OCT-FPGA/P4Framework.
When there is a single VitisNetP4 instance, it is directly connected to the AXI-Lite interface of the user box and it can be addressed at address
0x100000
from the host.How can multiple AXI-Lite slaves be connected to the AXI-Lite interface? We thought about the following approaches:
NUM_INTF
increases the number of AXI-Lite interfaces, but I think it makes the most sense to keepNUM_INTF
at 1 if only one is used.What approaches can you recommend, do you have any further ideas? Can someone provide us with an example that shows similar behavior?
Thanks!
Update: We decided to focus on modifying the AXI crossbar in the user box's glue logic because it does not involve any additional components.
Although we have not yet tested it, steps similar to the following ones should yield the expected result:
p2p_250mhz
module (p2p_250mhz.sv
)box_250mhz_address_map_inst.vh
anduser_plugin_250mhz_inst.vh
accordinglybox_250mhz_address_map.v
.C_NUM_SLAVES
needs to be increased by1
, new..._INDEX
and..._ADDR
parameters need to be added and new connections/assignments are required.box_250mhz_axi_crossbar.tcl
: IncreaseCONFIG.NUM_MI
by1
and addCONFIG.Mmm_Aaa_BASE_ADDR
andCONFIG.Mmm_Aaa_ADDR_WIDTH
for the new interface (see PG059: AXI Interconnect v2 , page 107)Beta Was this translation helpful? Give feedback.
All reactions