实验五_存储器设计

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

计算机组成原理

实验五《存储器设计》

实验报告

姓名:吴速碘黄紫微

学号:******** ********

班级:计算机二班

日期2015、5、25

实验五存储器设计

一、实验目的

1、掌握RAM和ROM的Verilog语言描述方法;

2、学习用宏模块的方法定制RAM和ROM。

二、实验任务

1、设计并实现一个128*16 的单端口的RAM;

2、设计并实现一个128*16的ROM;

3、设计并实现一个双端口的128*16的RAM

4、设计并实现一个16*32的FIFO。

5、设计并实现正弦信号发生器,见“正弦信号发生器实验指南”。

三、实验步骤

1 编写Verilog代码(见附页)

2功能仿真

进行分析与综合,排除语法上的错误

建立波形仿真文件,输入激励

生成功能仿真网表

进行功能仿真,观察输出结果

3选择器件

DE2_70开发板的使用者请选择EP2C70F896C6

4绑定管脚

5 下载验证

DE2_70开发板的下载:使用USB-Blaster进行下载

四、实验内容

五、实验思考题

1、分析存储器采用三态输出的原因是什么?

存储器的输出端是连接在数据总线上的。数据总线相当于一条车流频繁的大马路,必须在绿灯条件下,车辆才能进入这条大马路,否则要撞车发生交通事故。同

理,存储器中的数据是不能随意传送到数据总线上的。例如,若数据总线上的数

据是“1”(高电平5V),存储器中的数据是“0”(低电平0V),两种数据若碰到一

起就会发生短路而损坏单片机。因此,存储器输出端口不仅能呈现“l”和“0”两

种状态,还应具有第三种状态“高阻"态。呈“高阻"态时,输出端口相当于断开,对数据总线不起作用,此时数据总线可被其他器件占用。当其他器件呈“高阻”态

时,存储器在片选允许和输出允许的条件下,才能将自己的数据输出到数据总线

上。

2、单端口和双端口的区别是什么?

单端口ram是ram的读写只有一个端口,同时只能读或者只能写。

双端口ram是ram读端口和写端口分开,一个端口能读,另一个端口可以同时写。

3、什么情况下考虑采用双端口存储器?

(1)为了使CPU不致因为等待存储器读写操作的完成而无事可做,可以采取一些加速CPU和存储器之间有效传输的特殊措施:

●采用更高速的主存储器,或加长存储器的字长;

●采用并行操作的双端口存储器;

●在CPU和主存储器之间插入一个高速缓冲存储器(Cache),以缩短读出时间;

●在每个存储器周期中存取几个字.(采用交叉存储器)

(2)双端口存储器是指同一个存储器具有两组相互独立的读写控制线路,由于进行

并行的独立操作,是一种高速工作的存储器。

(3)

●当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。当

任一端口被选中驱动时,就可对整个存储器进行存取,每一个端口都有自己的片

选控制和输出驱动控制。

●当两个端口同时存取存储器同一存储单元时,便发生读写冲突。为解决此问题,特

设置了BUSY标志。由片上的判断逻辑决定对哪个端口优先进行读写操作,而暂

时关闭另一个被延迟的端口。

●总之,当两个端口均为开放状态(BUSY为高电平)且存取地址相同时,发生读写

冲突.此时判断逻辑可以使地址匹配或片使能匹配下降至5ns,并决定对哪个端

口进行存取.

4、FIFO的工作特点是什么?为什么常用于实现程序中的子程序调用、递归等?

特点:

FIFO存储器是系统的缓冲环节,如果没有FIFO存储器,整个系统就不可能正常工作,它主要有几方面的功能:

1)对连续的数据流进行缓存,防止在进机和存储操作时丢失数据;

2)数据集中起来进行进机和存储,可避免频繁的总线操作,减轻CPU的负担;

3)允许系统进行DMA操作,提高数据的传输速度。这是至关重要的一点,如果不采用DMA操作,数据传输将达不到传输要求,而且大大增加CPU的负担,无法同时完成数据的存储工作。

因此,选择合适的存储芯片对于提高系统性能很重要,在以往的设计中经常采用的是“乒乓型”存储方式,这种方式就是采用两片存储器,数据首先进入其中一片,当数据满时再让数据进入第二片存储器,同时通过逻辑控制,将第一片存储器中的数据取走,以此类推,两片轮流对数据进行缓存。这种方式有着较明显的缺点,首先是控制复杂,要有专门的逻辑来维护这种轮流机制;其次,数据流的流向要不断变化,限制了数据流的速率,还容易产生干扰。从数据传输上说,缓存芯片容量越大,对后续时序要求就越低,可减少总线操作的频次;但从数据存储上说,就意味着需要开辟更大的内存空间来进行进行缓冲,会增加计算机的内存开销,而且容量越大,成本也越高。因此,在综合考虑系统性能和成本的基础上,选择满足系统需要的芯片即可。

在FIFO存储器而不是地址总线上附加了表示内部缓冲器状态(Buffer Full,缓冲器已满;Buffer Empty,缓冲器为空)的状态引脚,连接于FIFO的双方利用该状态进行操作的控制。另外,还设计了在接通电源及复位(Reset)或由于操作中的某些异常等原因而重新初始化(无数据状态)FIFO的复位引脚,这可以说是FIFO存储器的特点。

Verilog代码

《sinwaveV》

module sinwaveV

#(parameter DATA_WIDTH=8, parameter ADDR_WIDTH=6)

(

input clk,

output reg [(DATA_WIDTH-1):0] q

);

reg [(ADDR_WIDTH-1):0] Q1;

wire newclk;

reg [4:0] clk_cnt;

assign newclk = clk_cnt[4];

always @(posedge CLK)

begin

clk_cnt <= clk_cnt+1;

end

always @(posedge newclk)

begin

Q1<=Q1+1;

end

lpm_rom0 lpm_rom0_inst ( .address ( Q1), .clock ( CLK ), .q ( DOUT ) ); endmodule

相关文档
最新文档