简易计算机系统综合设计--RAM存储器

  前面已有粗略地提了一下该部件的作用--储存指令,这里对具体过程进行说明。我这里没用VHDL代码写RAM存储器(不会QWQ),用的是库里面的lmp_ram_io.

  首先我们看一下库里面的RAM:



(1)开始显然看不懂各个端口具体的作用,所以我们可以去看一下lpm_ram_io的端口说明,操作步骤为:



input Ports可以查看各个输入端口的作用,Truth Table可以查看部件输入输出的“真值表”。



这里有三个真值表,各个表的使用条件在表前均有说明:




根据不同的设计要求可以减少部件的某些非必需的端口,根据这里的设计这里的设计,需要一个数据输入端口,一个时钟信号端口,然后we和outenab配合控制在时钟信号到来时是读数据还是写入数据,故可以删除端口outclock和memenab:



设置结束后:



然后我们需要设置RAM的各项参数:



各个参数的含义在后面都有说明,这里主要说明一下RAM_FILE的设置:

RAM是一个储存数据的部件,那么我们自然需要给该部件初始化储存的数据,设置RAM_FILE就是给RAM绑定一个用于初始化的数据集(大概这么个意思,可能不那么专业)。我们需要先新建一个内存文件:



得到文件后右键第一行或者第一列可以改变其现实的形式,每个单元格子用于储存一个8位宽的数据,共256个储存单元,文件建好之后继续设置参数:



最终所有的参数设置如下:



(2)引脚说明

 

输入输出端口分别为:

Addr:地址输入端口;

EN: 读取端口,允许对RAM进行读取操作,当EN为高电平时有效;

WE: 写入使能,允许对RAM进行写入操作,当EN为低电平,WE为高电平时有效;

CLK:时钟信号输入端口,当时钟上升沿到来时配合WE以及EN对RAM进行读写操作。

Fout:双端接口,既可以从这里将RAM的数据读出,又可以将外部数据写入RAM,具体由CLK,WE以及EN控制。


(3)进行波形仿真:


这里不好处理数据输入,故没有对数据的写入进行仿真验证,对于数据的读出结果,结合波形图中当前输入的地址及当前输出,对比mif对应储存单元中数据可以判断自己的设计是否正确,这个十分关键。


最后说明一下,数据的写入不会写入到mif文件中,即我们无法通过直接查看mif文件的数据是否改变来判断写入是否成功,应该先将数据写入一个地址单元再将该地址单元的数据读入,看是否为写入的数据,mif文件只对RAM进行初始化。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值