一、PL和PS端交互方式
- PS端作为AXI master,FPGA作为AXI slave
- PS端作为AXI slave,FPGA作为AXI master
二、PS端为主机,FPGA为从机
BD框图:
1、实验一
1.1、PL端工作
PL端在BRAM地址0-39当中写入40个字节数据,然后PS端去读该数据
注: 写代码的时候需要注意一点,在平时我们使用BRAM时候,如果位宽为32,那么地址加一时候的单位是以4字节为单位,但是在BD里面通过AXI BRAM CTRL去控制BRAM的时候,地址加一对应的是一个byte数据,我们位宽为32,那么写一个数据,地址就应该加32/8,也就是4。
module RAM_WR#(
parameter P_OPERATION_NUM = 40 ,
parameter P_DATA_WIDTH = 32 ,
parameter P_WRITE_BASEADDR= 0 ,
parameter P_READ_BASEADDR = 40
)(
input i_clk ,
input i_rst ,
output [31:0] o_bram_addr ,
output [31:0] o_bram_data ,
output o_bram_en ,
output o_bram_wen ,
input [31:0] i_bram_data
);
localparam P_BURST_LEN = P_OPERATION_NUM/(P_DATA_WIDTH/8);
reg [31:0] ro_bram_addr ;
reg [31:0] ro_bram_data ;
reg ro_bra