模型机CPU设计——RAM和稳定器(13)

与世无争的帅哥 提交于 2019-12-23 06:08:48

RAM和稳定器
1 RAM可以根据quartus直接生成LPM_RAM_IO,实现读外接文件mif的读写

RAM接口和功能由quartus提供:
在这里插入图片描述在这里插入图片描述
但是RAM存在着不稳定的问题,会出现读取操作不是由下降沿控制而只受到控制信号控制的问题,所以这个时候我们用VHDL设计一个稳定器来稳定RAM的读取操作:
Stabilizer稳定器设计:
(1) 部件功能:
稳定器用来配合RAM使用,处理因为RAM输出的数据不稳定问题。
(2) 接口设计:
在这里插入图片描述
输入:
EN:使能信号,1有效
Clk:时钟信号
I[7…0]:数据输入,由RAM提供数据的输入
输出:
Bus[7…0]数据输出,连接到总线Bus
RTL视图
在这里插入图片描述
(3) 功能实现:
当EN有效为1时:
如果clk=1,那么将输入加载到输出,否则输出保存值
如果使能为0:
输出高阻态,来隔绝总线,防止总线冲突
VHDL设计:
在这里插入图片描述
(4)功能仿真验证:
在这里插入图片描述
仿真结果:
时钟为2.5ns: 使能EN=1,clk=1,输入X=00000001,将输入加载到输出,BU=00000001;
时钟为3.5ns: 使能EN=1,clk=1,输入X=00000001,将输入加载到输出,BU=00000001;
时钟为1.0ns: 使能EN=1,clk=0,输入X=00000001,将寄存器保存的值输出,BU=00000000;
时钟为5.0ns: 使能EN=0,clk=0,输入X=00000001,输出高阻,BU=ZZZZZZZZ;
时钟为5.5ns: 使能EN=0,clk=1,输入X=00000000,输出高阻,BU=ZZZZZZZZ;

结论:仿真结果符合功能要求,设计成功

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!