计算机组成原理 三存储器设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验目的
– 存储器设计与实现 – 体会信号之间的时序关系 – 学习使用总线
存储器组成框图
总线
CPDR1
D_Buffer1
A_Buffer
CPAR
Bus_buffer1
Ndata_in
Bus_buffer2
Naddr_ in
Mem WE
Data_in
Addr_in
D_Buffer2
CPDR2
Bus_buffer3
实验三、存储器设计
设计任务
设计目标
根据存储器的组成框图,用给定的器材,实现一个容量为 256×8bits的主存。 用Maxplus仿真,要求将90h写入存储器的08h单元;将92h写入 10h单元,然后再读出08h和10h单元的信息。
器材
– 74273:八D触发器 – 74244:八三态门 – LPM_RAM_DQ :参数化的RAM
3. 为什么设置一个数据缓冲寄存器2?
存储器芯片做完读操作之后,数据引脚上输出的数据 只能维持一段时间,所以先由数据寄存器缓存起来, 需要导出时,由这个寄存器向总线提供数据。
器件介绍
74273 – 在MaxPlus的mf库中,由8个D触发器组成 – 两个控制信号:清0信号(低电平有效,将其置为高电平);时钟信号(上升沿触发) 74244 – 在MaxPlus的mf库中,由8个三态门组成 – 有两个控制信号(低电平有效,将它们接在一起) LPM_RAM_DQ – 在MaxPlus的mega_lpm库中,是一个RAM – LPM_RAM_DQ的参数设置 LPM_WIDTH=8:芯片数据引脚的数目 LPM_WIDTHAD=8:芯片地址引脚的数目 LPM_INDATA=“UNREGISTERED”:使输入数据(RAM写)不受INCLOCK控制 LPM_OUTDATA=“UNREGISTERED”:使输出数据(RAM读)不受OUTCLOCK控制 INCLOCK=“UNUSED”:设为“USED”芯片会有INCLOCK引脚 OUTCLOCK=“UNUSED”:设为“USED”芯片会有OUTCLOCK引脚 LPM_ADDRESS_CONTROL=“UNREGISTERED”: LPM_FILE=“d:\mem\ram.mif”:芯片的初始化文件。Ram.mif文件的生成方法:打开 Simulator,然后点菜单Initialize->Initialize memory,设置好存储单元的值之后Baidu Nhomakorabea点Export file, 即可得ram.mif。
使用MaxPlus注意 注意 使用
该设计用了74系列的芯片,因此在编译前,要先指定器件: Assign菜单->Device菜单项,在弹出对话框中选择“Device Family:Flex10K” 在编译前,要将其设为为时序仿真而编译,方法是:如果 Processing菜单已设为“Functional SNF extractor”,只需在 此菜单项上点击一下即可。 在我给的设计图中,数据总线与地址总线用的是双向引脚bidir。 在做波形图时,双向引脚会对应两个node,例如db[7..0](I)和 db[7..0](O),但在同一个波形图中,只能用一个,否则访真会 报错。 在做存储器读写时,如果信号的时序关系不对,就很有可能得 不到正常结果。我给的例子中,每个格子的宽度为10ns,将 数据或地址送入地址或数据缓冲器用30ns;MEM读或写用 20ns。也可设其它的时间,不过要注意:如果仿真结果不对, 有可能是信号宽度太小了。
NMEM-BU
存储器组成讲解
1. 为什么要设地址缓冲寄存器和数据缓冲寄存器1?
为了保证可靠读写,在芯片做读写操作期间,地址信 号要保持不变。设置缓冲寄存器之后,在芯片做读写 操作期间,由它们向芯片提供信号。
2. 为什么设置一个总线缓冲器?
总线是由挂在总线上的诸多器件共享的,所以要设置 一个总线缓冲器,控制存储器向总线发送信息的时间。