存储器设计:存储器设计课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理实验
实验五存储器设计
专业班级计算机科学与技术
学号0936008 姓名冯帆
学号0936036 姓名张琪
实验地点理工楼901
实验五存储器设计
一、实验目的
1、掌握RAM 和ROM 的Verilog 语言描述方法;
2、学习用宏模块的方法定制RAM 和ROM 。
二、实验内容
1、设计并实现一个8*8 的单端口的RAM ;
2、设计并实现一个128*16的ROM ;
3、设计并实现一个双端口的128*16的RAM 。
4、设计并实现正弦信号发生器,参考“正弦信号发生器实验指南”。
三、实验仪器及设备
PC 机+ Quartus Ⅱ0 + DE2-70
四、实验步骤
打开Quartus 软件,新建工程。
2.分析单端口,双端口,ROM,RAM 的含义。
3.Verilog 程序如下,并简单注释。
①
module SingleRamTest(read_data, read_address, write_data,
write_address, memwrite, clock, reset);
output [7:0] read_data; //数据的输出
input [2:0] read_address; //读数据地址的输入
input [7:0] write_data; //写数据地址的输入
input [2:0] write_address; //写数据地址的输入
input memwrite; //若该信号为1,进行写操作,反之,写操作input clock;
input reset; //复位和时钟信号
reg [7:0] read_data, mem0,
mem1,mem2,mem3,mem4,mem5,mem6,mem7; //设置存储器存储单元
always @(read_address or mem0 or mem1 or mem2 or mem3 or mem4 or mem5 or mem6 or mem7) //若上述信号有一个发生变化,则启动该模块begin
case(read_address) //读地址确定唯一的存储单元并将数据存储到readdata 中
3"b 000: read_data=mem0;
3"b 001: read_data=mem1;
3"b 010: read_data=mem2;
3"b 011: read_data=mem3;
3"b 100: read_data=mem4;
3"b 101: read_data=mem5;
3"b 110: read_data=mem6;
3"b 111: read_data=mem7;
default: read_data=8"h FF;
endcase
end
always @(posedge clock or posedge reset) //在时钟或者复位信号的控制下begin
if (reset) //如果复位,则所有存储单元都设置为初始化值begin
mem0=8"h 55;
mem1=8"h 55;
mem2=8"h 55;
mem3=8"h 55;
mem4=8"h 55;
mem5=8"h 55;
mem6=8"h 55;