单端口RAM IP核

一、RAM简介

        RAM(随机访问存储器)是一种计算机内存类型,用于存储正在使用的程序和数据。它是一种临时性的存储,其内容在计算机关闭或断电时会丢失。RAM的主要目的是提供快速的读写访问,以支持计算机的实时操作和任务。RAM是一种随机访问存储器,这意味着计算机可以直接访问存储器中的任何地址,而不必按照顺序进行访问,这与顺序访问存储器(例如磁带)不同。RAM中的主存储器用于存储当前正在使用的程序和数据,而高速缓存存储器用于暂时保存经常访问的数据,以提高CPU对这些数据的访问速度。RAM分为动态随机访问存储器(DRAM)和静态随机访问存储器(SRAM)。DRAM需要定期刷新以保持存储的数据,而SRAM不需要刷新,速度更快,但相对更昂贵且需要更多的芯片空间。

        与RAM类似的还有ROM(只读存储器),RAM允许在运行时写入和读取数据 ,而ROM是只读的,即只能读取其中存储的信息。然而,也有一些具有可编程功能的ROM,如PROM(可编程只读存储器)和EPROM(可擦除可编程只读存储器)。通常ROM具有较慢的读取速度,因为它的设计目的是提供长期存储而不是频繁的读写操作。因此一般RAM用于临时存储和运行程序,而ROM用于存储固定的、不经常变化的数据。

        RAM又分为单端口RAM和双端口RAM。单端口RAM只有一个数据端口,意味着在任何给定时刻只能进行一次读取或写入操作。双端口RAM又分为伪双端口RAM和真双端口RAM,伪双端口RAM的两组端口一组只能用来写,一组只能用来读。真双端口 RAM 的两组端口都可以用来读和写。    

二、单端口RAM 模式

(一)原理介绍

        单端口模式支持从单一地址上的异时读写操作。下图显示了 Cyclone IV 器件 M9K 存储器模块的单端口存储器配置。

        写操作期间,RAM 输出行为是可以配置的。如果在写操作期间激活 rden 信号,则 RAM 输出端会显示相应地址上正在写入的新数据,或者原有的旧数据。 如果在 rden 信号未激活的情况下执行写操作,那么 RAM 输出端将保留它们在最近的 rden 信号有效期间所保持的值。

(二)端口简介     

        对于单端口的地址端口address[],当是写入数据时它就是写地址,读出数据时就是读地址,wren和rden都是高电平有效。byteena[]是字节使能信号,可以控制哪些字节可以写入,wren 信号以及字节使能 (byteena) 信号一起控制 RAM 模块的写操作。如下图所示,若没有字节使能信号,地址a0,a1,a2都应该被写入数据ABCD,但由于a0地址对应时钟下的byteena为10,真正写进去的为ABFF(只写入高八位,低八位保持),a1地址对应时钟下的byteena为01时,真正写进去的为FFCD。

        addressstall是地址时钟有效信号,当它被拉高后,RAM IP核就不去判断端口的地址了,而是以IP核内部所寄存的地址为准。Cyclone IV 器件 M9K 存储器模块支持低电平有效地址时钟使能,只要 addressstall 信号为高电平 (addressstall = '1'),低电平有效地址时钟使能就会保持之前的地址值。如图所示,读地址信号为a0,a1...a6,由于addressstall在高电平时,地址为上一个时钟缓存的数据地址,因此输出的数据只有a0,a1,a4,a6

        aclr是异步清零信号,当他有效时,清除RAM IP核内部的寄存器,而不是把RAM里面的数据清空。q[]是IP核输出数据,当是读出时,数据从该端口输出。

(三)时序图

        当写使能为高电平时有效,从地址adr[i]中读出数据data[i],q是输出端口,他会比延迟一个时钟输出,即当一个地址数据被采集完以后,q端口才开始输出这个数据

所示

三、实验目标

        使用Altera RAM IP核生成一个单端口RAM,然后对RAM进行读写操作,并通过ModelSim软件进行仿真及SignalTap软件进行在线调试。

四、创建RAM IP核

选择ram:1-port创建单端口ram,设置位宽,深度。关于位宽和深度的设置,参考下面

        一路next到总结页面,勾选上例化选项

五、代码编写

(一)系统框图

(二)RAM读写模块

        时序图:

        地址和数据的位宽是由初始设置的位宽与深度决定的,可以直接在ip核的那个.v文件中找到对应的地址和数据位宽。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值