FPGA PS与PL通过BRAM 通信

 

 

open block design 

打开ps添加AXI BRAM Contoller 

 

 

generate block design   将自己的设计打包生成接口在 ps_subsystem_wrapper里面,供上层模块使用 

定义上层模块定义BRAM 接线

上层模块中 BRAM接线,与BRAM controller 相连

上层模块中,BRAM接线与BRAM相连

  

ram 定义

module ram_test(
input [11:0]  bram_addr_a,  //地址
input[32:0] bram_wrdata_a,//写数据
input[31:0] bram_rddata_a,//读数据 
input bram_rst_a,  //复位
input bram_clk_a,  //时钟
input [3:0]bram_we_a,//
input  rst_n,      //
input dac_data_clk,
output wire[15:0] test_data_i,
output wire [31:16] test_data_q 
);
wire [31:0] test_data;
wire   [9:0]   bram_addr_a0;
reg   [11:0]  r_addr;
//assign bram_addr_a0 = bram_addr_a>> 2;
assign {test_data_q,test_data_i}=test_data;
always @(posedge dac_data_clk)
    begin
        if(!(&r_addr))    
            r_addr <= r_addr + 1'b1;
        else
            r_addr <= 12'b0;
    end
    
//-----------------------------------------------------------
//实例化RAM
ram_ip ram (
   .clka (bram_clk_a ), //a口时钟
   .wea (bram_we_a), //写使能
   .addra (bram_addr_a), //BRAM地址
   .dina (bram_wrdata_a), //BRAM A进入数据 
   .douta(bram_rddata_a),//BRAM a口输出数据 
   .clkb (dac_data_clk ), 
   .addrb (r_addr), 
   .doutb (test_data) 
 );
endmodule

run 综合

run 实现

生成bitstream

export handware (勾选 bitstream)

launch sdk 

删除板级支持包

重新生成板级支持包  选好芯片psu_cortex5_0 , 支持包名字命名 r5_rf_cfg_bsp

班级支持包下面 include  xbram_hw.h 两个函数

#define XBram_ReadReg(BaseAddress, RegOffset) \
    XBram_In32((BaseAddress) + (RegOffset))

#define XBram_WriteReg(BaseAddress, RegOffset, Data) \
    XBram_Out32((BaseAddress) + (RegOffset), (u32)(Data))

负责BRAM的读写

r5_rf_cg 里面main.c 写代码 

 

run as  ,run configure

点run 下载进去 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值