2023年存储器设计-存储器设计课程设计.docx

上传人:ylj18****70940 文档编号:66202197 上传时间:2022-12-14 格式:DOCX 页数:12 大小:14.74KB
返回 下载 相关 举报
2023年存储器设计-存储器设计课程设计.docx_第1页
第1页 / 共12页
2023年存储器设计-存储器设计课程设计.docx_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2023年存储器设计-存储器设计课程设计.docx》由会员分享,可在线阅读,更多相关《2023年存储器设计-存储器设计课程设计.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2023年存储器设计:存储器设计课程设计 计算机组成原理试验 试验五 存储器设计 专业班级:计算机科学与技术 学号: 0936008 姓名:冯帆 学号: 0936036 姓名:张琪 试验地点: 理工楼901 试验五 存储器设计 一、试验目的 1、 驾驭RAM 和ROM 的Verilog 语言描述方法; 2、 学习用宏模块的方法定制RAM 和ROM 。 二、试验内容 1、设计并实现一个8*8 的单端口的RAM ; 2、设计并实现一个128*16的ROM ; 3、设计并实现一个双端口的128*16的RAM 。 4、设计并实现正弦信号发生器,参考“正弦信号发生器试验指南”。 三、试验仪器及设备: P

2、C 机+ Quartus 9.0 + DE2-70 四、试验步骤 1. 打开Quartus 软件,新建工程。 2分析单端口,双端口,ROM,RAM 的含义。 3Verilog 程序如下,并简洁注释。 /*单端口的RAM*/ 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; /写数据地

3、址的输入 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; /设置存储器存储单元 /* Block for memory read */ always (read_address or mem0 or mem1 or mem2 or mem3 or mem4 or mem5 or mem6 or mem7) /若

4、上述信号有一个发生改变,则启动该模块 begin case(read_address) /读地址确定唯一的存储单元并将数据存储到readdata 中 3b 000: read_data = mem0; 3b 001: read_data = mem1; 3b 010: read_data = mem2; 3b 011: read_data = mem3; 3b 100: read_data = mem4; 3b 101: read_data = mem5; 3b 110: read_data = mem6; 3b 111: read_data = mem7; /* Unimplemented

5、memory */ default: read_data = 8h FF; endcase end /* Block for memory write */ always (posedge clock or posedge reset) /在时钟或者复位信号的限制下 begin if (reset) /假如复位,则全部存储单元都设置为初始化值 begin /* Initial values for memory (optional) */ mem0 = 8h 55; mem1 = 8h 55; mem2 = 8h 55; mem3 = 8h 55; mem4 = 8h 55; mem5 = 8

6、h 55; mem6 = 8h 55; mem7 = 8h 55; end else if (memwrite) /若不复位,且写信号有效,则将writedata 的值写到mem 存储单元里 /* write new value to memory */ case (write_address) 3b 000 : mem0 = write_data; 3b 001 : mem1 = write_data; 3b 010 : mem2 = write_data; 3b 011 : mem3 = write_data; 3b 100 : mem4 = write_data; 3b 101 : me

7、m5 = write_data; 3b 110 : mem6 = write_data; 3b 111 : mem7 = write_data; endcase end endmodule 设计并实现一个128*16的ROM 。 程序及注释如下: module RomTest #(parameter DATA_WIDTH=16, parameter ADDR_WIDTH=7) ( input (ADDR_WIDTH-1):0 addr, /地址宽度为16位的addr input clk, output reg (DATA_WIDTH-1):0 q /数据宽度为16位的q ); / Declar

8、e the ROM variable reg DATA_WIDTH-1:0 rom2*ADDR_WIDTH-1:0; / Initialize the ROM with $readmemb. Put the memory contents / in the file single_port_rom_init.txt. Without this file, / this design will not compile. / See Verilog LRM 1364-2023 Section 17.2.8 for details on the / format of this file. Init

9、ial /读文件中对rom 的初始化值 begin $readmemb(single_port_rom_init.txt, rom); end always (posedge clk) /q输出在addr 地址存储的值 begin q end endmodule 设计并实现一个双端口的128*16的RAM 利用宏模块对RAM 进行自定义,得到如下程序。 / megafunction wizard: %ALTSYNCRAM% / GENERATION: STANDARD / VERSION: WM1.0 / MODULE: altsyncram / = / File Name: altsyncr

10、am0.v / Megafunction Name(s): / altsyncram / / Simulation Lipary Files(s): / altera_mf / = / * / THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! / / 9.0 Build 132 02/25/2023 SJ Full Version / * / synopsys translate_off timescale 1 ps / 1 ps / synopsys translate_on module altsyncram0 ( byteen

11、a_a, data, inclock, inclocken, out_aclr, outclock, outclocken, rdaddress, wraddress, wren, q); input 1:0 byteena_a; input 15:0 data; input inclock; input inclocken; input out_aclr; input outclock; input outclocken; input 6:0 rdaddress; input 6:0 wraddress; input wren; output 15:0 q; ifndef ALTERA_RE

12、SERVED_QIS / synopsys translate_off endif tri1 1:0 byteena_a; tri1 inclocken; tri0 out_aclr; tri1 outclocken; tri1 wren; ifndef ALTERA_RESERVED_QIS / synopsys translate_on endif wire 15:0 sub_wire0; wire 15:0 q = sub_wire015:0; altsyncram altsyncram_component ( .clocken1 (outclocken), .wren_a (wren)

13、, .clock0 (inclock), .aclr1 (out_aclr), .clock1 (outclock), .byteena_a (byteena_a), .address_a (wraddress), .address_b (rdaddress), .data_a (data), .q_b (sub_wire0), .aclr0 (1b0), .addressstall_a (1b0), .addressstall_b (1b0), .byteena_b (1b1), .clocken2 (1b1), .clocken3 (1b1), .data_b (161b1), .eccs

14、tatus (), .q_a (), .rden_a (1b1), .rden_b (1b1), .wren_b (1b0); defparam altsyncram_component.address_reg_b = CLOCK0, altsyncram_component.byte_size = 8, altsyncram_component.clock_enable_input_a = NORMAL, altsyncram_component.clock_enable_input_b = NORMAL, altsyncram_component.clock_enable_output_a

15、 = BYPASS, altsyncram_component.clock_enable_output_b = NORMAL, altsyncram_component.init_file = test, altsyncram_component.intended_device_family = Cyclone II, altsyncram_component.lpm_type = altsyncram, altsyncram_component.numwords_a = 128, altsyncram_component.numwords_b = 128, altsyncram_compon

16、ent.operation_mode = DUAL_PORT, altsyncram_component.outdata_aclr_b = CLEAR1, altsyncram_component.outdata_reg_b = CLOCK1, altsyncram_component.power_up_uninitialized = FALSE, altsyncram_component.read_during_write_mode_mixed_ports = DONT_CARE, altsyncram_component.widthad_a = 7, altsyncram_componen

17、t.widthad_b = 7, altsyncram_component.width_a = 16, altsyncram_component.width_b = 16, altsyncram_component.width_byteena_a = 2; endmodule 设计并实现正弦信号发生器,参考“正弦信号发生器试验指南” module sinwaveV #(parameter DATA_WIDTH=8, parameter ADDR_WIDTH=6) ( input clk, output reg (DATA_WIDTH-1):0 q ); reg (ADDR_WIDTH-1):0

18、 Q1; wire newclk; reg 4:0 clk_cnt; assign newclk = clk_cnt4; always (posedge clk) begin clk_cnt end always (posedge newclk) begin Q1 end lpm_rom0 lpm_rom0_inst ( .address ( Q1), .clock ( clk ), .q ( DOUT ) ); endmodule 函数图形如下: 六、试验思索题 1、分析存储器采纳三态输出的缘由是什么? 在第一个试验好中,读出数据的变更是在数据地址readaddress 或者存储器中存储数据

19、发生改变时。这是数据变更的条件,设置成三态门更高效,更合理。 3、 单端口和双端口的区分是什么? 单端口存储器就是:存储器接受数据和输出数据,只能在同一时刻只能执行一项操作,这样 一来数据的写和传输就无法同时进行。双端口存储器是指同一个存储器具有两组相互独立的读写限制线路, 由于进行并行的独立操作,是一种高速工作的存储器。简洁说来,就是增加了一个端口,可以同时读数据和写数据,提高了机器运行速度和带宽,可以实现无冲突的读写限制。 4、 什么状况下考虑采纳双端口存储器? 主存的存取速度是影响计算机速度的关键,才用双端口存储器可是明显提高机器的利用率和效率。假如在对速度要求特殊高的状况下,可以考虑采纳双端口存储器。e o d u l

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁