zynq板zedboard+vitis设计(四)基于bram的ps与pl交互

本文介绍了如何在Zynq平台上,通过BRAM实现处理器系统(PS)与可编程逻辑(PL)间的数据传输。PL部分使用Verilog设计了一个模块,处理BRAM的读写命令,而PS部分使用C语言编写程序向BRAM写入数据。当PS写入特定结束标志后,PL开始继续写入新的数据。地址映射在PS和PL间有所不同,需注意地址转换。

前言

本文简单介绍通过bram在ps和pl间进行数据的传输以及命令的交互

1.pl部分 

1.1设计文件代码

module bram_pl
 (
  input            clk,                          
  input            rst,  																		   
  input [31:0]     bram_dout,                   

  output           bram_en,
  output[31:0]     bram_din,
  output[3:0]      bram_we,
  output[31:0]     bram_addr                                                  
  );

reg[31:0] addrb;
reg[1:0]  bram_st;
reg[3:0]  web;
reg[31:0] data;   
always@(posedge clk)begin 
  if(rst)begin
    addrb <= 32'h000003fc;
    bram_st <= 2'd0;
    web <= 4'b0000;
  end else begin
    case(bram_st)
    0:begin
      if(bram_dout == 32'h0000_00ff)begin
        bram_st <= 2'd1;
        addrb <= 32'h00000400;
      end else begin
        bram_st <= 2'd0;
        addrb <= 32'h000003fc;
      end
    end
        
    1:begin
      addrb <= addrb + 4;
      if(addrb == 32'h000007fc)begin
        bram_st <= 2'd3;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值