存储器功能部件的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

存储器功能部件的设计与实现
一、实验目的
1、学习QuartusII软件的基本操作
2、理解存储器的基本原理和过程
3、设计出存储器功能部件并对设计的正确性进行验证
二、实验内容
1、设计出功能完善的存储器功能部件,并对设计的正确性进行验证。

具体要求如下:(1)用图形方式设计出存储器功能部件的电路原理图
(2)测试波形要用时序仿真实现,验证存储器的读、写操作
(3)写、读操作至少要访问到4个不连续的存储单元,即先向4个以上不连续的存储单元中写入不同的数据,再依次读出
(4)将设计文件封装成器件符号
(5)存储器的数据宽度最好为16位
2、存储器扩展实验,具体如下:
(1)用图形方式设计出存储器功能部件的电路原理图
(2)用数据宽度为4或8,地址宽度为6的存储器,扩展成数据宽度为16,地址宽度为8的存储器
(3)测试波形要用时序仿真实现,验证存储器的写、读操作,要访问到所有的存储器器件,即如果存储器的扩展设计用了8个存储器器件,就要用至少8个不同的数据,访问8个不同地址的存储单元,而这8个不同地址的存储单元,分别位于8个存储器器件中
(4)将设计文件封装成器件符号
三、实验装置
安装有QuartusII软件的PC机1台。

四、实验原理
(1)存储器功能部件设计
利用参数化宏功能模块LPM_RAM_DQ设计16位存储器相对简单,只需要在存储模块定义LPM_RAM_DQ的参数数据位数LMP_WIDTH为16位、地址位数LMP_WIDTHAD为8即可定义成相应容量的存储器。

在该设计中需要说明的是,为了方便将设计的存储器模块用到总线系统中,所设计的模块要具有数据暂存和三态输出的功能,因此在存储器数据输入端需要添加数据暂存功能,在存储器数据输出端需要添加三态输出功能,即还要用到74213、74244芯片作为存储器的输入和输出。

(2)存储器扩展实验
存储器扩展实验要求在利用参数化宏功能模块LPM_RAM_DQ设计存储器时数据位数LMP_WIDTH设置为4或8、地址位数LMP_WIDTHAD为6,再利用这样设计的存储器模块进行字扩展(地址宽度扩展)和位扩展(数据宽度扩展),最终实现数据宽度为16、地址宽度为8的存储器。

五、设计
六、实验结果
(1)原理图
数据暂存功能:
用1个74273作为8位地址的数据暂存器,用2个74273作为16位数据的数据暂存器。

从总线上输入的数据首先存入这3个暂存器中,再通过写功能将数据写入存储器中相应地址。

三态输出功能:
用2个74244作为16位数据的三态输出.打开三态门,给出读信号和地址,从存储器中的相应地址里的数据读出打入总线。

存储器:
用一个LPM_RAM_DQ 芯片。

LPM_WIDTH 设置为16,表示数据位数为16位,LPM_WIDTHAD 设置为8,表示地址位数为8位。

data []端接2个74272组成的数据暂存器,address []端接1个74274组成的地址暂存器,q[]端接2个74244组成的三态输出。

(2)波形仿真
写功能:
将clka 打开,在a[]
中输入8位地址,0012、0044、0013、00AA 。

将clkd 打开,在in []中输入16位数据,对应上面的4个地址,1234、AB2C 、3F4A 、23DA 。

将清零端设置为无效
将存储器的写使能WRE 打开,写控制WR 打开,读控制RD 关闭,数据写入相应的地址。

读功能:
将clka打开,在a[]中输入8位地址,0012、0044、0013、00AA。

将存储器的写使能WRE关闭,写控制WR打开,读控制RD打开,且WR在RD之前,输出端out[]读出相应地址的数据。

(3)器件封装
七、实验总结
通过这次实验,我们更加了解了存储器的工作原理,以及存储器在写存储和读存储的过程.在连线过程中我也能够更加熟练地连接线,有了很大的收获.同时加强了对课本教材的理解,增加了动手实践能力,通过与队友的合作,更深刻的体会到了团队力量的重要性。

另外在本次实验中,我们也学会了如何将复杂问题分解成多个简单模块,这样可以很大程度上简化整个设计以及实现上的难度。

相关文档
最新文档