IP核之双端口RAM

一.RAM简介

      1.1RAM种类简介

     

    RAM(Random Access Memory)随机访问存储器,包含静态和动态RAM。静态 RAM 只要有供电,它保存的数据就不会丢失,一般包括单端口 RAM(Single Port RAM,缩写为 SP RAM)、简单双端口 RAMSimple Dual Port RAM,缩写为 SDP RAM,也叫伪双端口 RAM)和真双端口 RAMTrue Dual Port RAM,缩写为 TDP RAM)。而动态 RAM 在供电的情况下,还需要根据其要求的时间来对存储的数据进行刷新,才能保持存储的数据不会丢失,一般包括 SDRAM 和 DDR SDRAM。

    ROM(只读存储器),只读存储器一般包括 PROMEPROM EEPROM 等,是非易失性的存储器。

      1.2RAM IP核简介

        这里以伪双端口RAM为例进行介绍。简单双端口 RAM 的端口 A 只能写不能读,端口 B 只能读不能写。

       DINA:写数据(数据数值);

      ADDRA:写数据地址;

     ENA:写使能端,该值为高,DINA的值才可以被写进ADDRA中;

     WEA:写使能,高电平表示向RAM中写入数据,低电平表示从RAM中读出数据;

     ADDRB:读数据地址;

     ENB:读使能端,该值为高,从ADDRB中读出数据

   DOUTB:读数据(数据数值)。

二.实验任务 

      本章实验任务是将 Xilinx BMG IP 核配置成一个同步的伪双端口 RAM 并对其进行读写操作,然后通过仿真观察波形是否正确,最后将设计下载到 FPGA 开发板中,并通过在线调试工具对实验结果进行观察。

三.RAM IP核配置

      1.搜索RAM IP核

 

2.memory type 中选择”简单双端口“模式,其余保持默认。

3. 分别对读/写端口进行配置。

 

4.其余选项默认,最后生成IP核即可。

四.模块设计 

五.波形图绘制 

5.1写模块波形图绘制

           系统清零信号结束后,en和we都为高电平,进入读数据模式,实验要求读数据深度是64,宽度8,则此时每来一个时钟脉冲,就会在写数据地址上写入一个数据,从0 开始写,到63截止,因为数据深度为64。在写数据写到31时,写标志位(中间信号)翻转,则读模块开始读数据。这里添加写标志位的目的是防止同时对某一地址进行同写同读操作,从而避免掉发生”读写冲突“或者”写写冲突“的情况。

5.2 读模块波形图绘制

        当系统复位结束后,en与we_flag保持一致,只要写标志位为高电平,读使能立即赋值为1,进入读数据模块。每来一个时钟脉冲,就从读地址端读出一个数据。

       

六.vivado和modelsim联合仿真验证 

    可以看出和预设波形图完全一致,符合预期设计。

七.板级验证和ILA在线调试分析

        7.1ILA

          ILA(Integrated Logic Analyzer)集成逻辑分析仪:可定制的集成逻辑分析仪(ILA)IP核是一种逻辑分析仪内核,可用于监控设计的内部信号。ILA内核包括现代逻辑分析仪的许多高级功能,包括布尔触发方程和边沿转换触发器。由于ILA内核与被监视的设计同步,因此应用于设计的所有设计时钟约束也会应用于ILA内核内的组件。

       7.2下板验证

1.进行引脚约束。

2.对观察信号添加debug属性

3.进行综合

 4.打开综合选项下的”set debug“,可以看出步骤2中添加debug属性的信号已经自动添加进来。然后保存即可。

5.生成比特流文件

6.下板验证。可以看出与上面仿真波形一致。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值