PYNQ-Z1 RAM IP核使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

无论什么样的资源处理器RAM资源都是必不可少的只要我们在程序的运行过程中需要用到计算那么必然会产生数据,必须需要一个存储空间去存储我们计算的数据。RAM是一个非常重要的资源。


提示:以下是本篇文章正文内容,下面案例可供参考

一、RAM IP简介

 

1片RAM为36k ram的读核写是独立的,需要先定义读优先还是写优先。

二、RAM IP核的使用

1.RAM IP核的使用步骤

 

点击ok生成ip核打开.veo复制例化模版

 2.读入数据

 增加读写数据模块

向.v文件中添加如下代码


module RAMIP_rw(
    input           clk,
    input           rst_n,
    
    output reg ram_En,                 //读写使能
    output reg rw,                      //读写选择
    output reg[4:0] ram_addr,         //2的5次方=32
    output reg[7:0] ram_wr_data
    );
    reg[5:0] rw_cnt;
   //使能
   always@(posedge clk or negedge rst_n)
   begin
      if(!rst_n)
        ram_En <= 1'b0;
      else
        ram_En <= 1'b1;
   end
   
   //读写控制计数器
    always@(posedge clk or negedge rst_n)
    begin
     if(!rst_n)
        rw_cnt <= 6'b0;
     else if (rw_cnt == 6'd63)
        rw_cnt <= 6'b0;
     else
        rw_cnt <= rw_cnt+6'b1;
    end
    
    //写入数据
    always@(posedge clk or negedge rst_n)
    begin
      if(!rst_n)
          ram_wr_data <= 8'b0000_0000;
      else if((rw_cnt <= 6'd31)&&ram_En)
          ram_wr_data <= 8'd1 + ram_wr_data;
      else
          ram_wr_data <= ram_wr_data; 
    end
    
    always@(posedge clk or negedge rst_n)
    begin
      if(!rst_n)
        rw <=1'b1;
      else if(rw_cnt <= 6'd31)
        rw <=1'b1;               //写状态
      else
        rw <= 1'b0;
    end
    
    //读写地址设置
    always@(posedge clk or negedge rst_n)
    begin
      if(!rst_n)
        ram_addr <= 5'd0;
      else 
        ram_addr <= rw_cnt[4:0];          //0-31的地址位
     end
endmodule

再将该模块例化进入顶层文件

    wire [7:0] dout;
    wire ram_En;
    wire rw;
    wire [4:0] ram_addr;
    wire [7:0] ram_wr_data;
RAMIP_rw u_RAMIP_rw(
.clk        (sysclk)      ,
.rst_n      (sys_rst_n)   ,

.ram_En     (ram_En)      ,                 //读写使能
.rw         (rw)          ,                      //读写选择
.ram_addr   (ram_addr)    ,         //2的5次方=32
.ram_wr_data(ram_wr_data)
    );

 进行综合

  3.使用ILA检测读取数据是否正确

添加ILA IP

将其例化到顶层文件,以及将之前RAM的ip也例化到顶层文件

生成比特流下载程序


 

 

 

 

 

 

 

 

 

 

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值