杭电计组实验5-存储器设计实验.

上传人:今*** 文档编号:105884987 上传时间:2019-10-13 格式:DOC 页数:9 大小:122.50KB
返回 下载 相关 举报
杭电计组实验5-存储器设计实验._第1页
第1页 / 共9页
杭电计组实验5-存储器设计实验._第2页
第2页 / 共9页
杭电计组实验5-存储器设计实验._第3页
第3页 / 共9页
杭电计组实验5-存储器设计实验._第4页
第4页 / 共9页
杭电计组实验5-存储器设计实验._第5页
第5页 / 共9页
点击查看更多>>
资源描述

《杭电计组实验5-存储器设计实验.》由会员分享,可在线阅读,更多相关《杭电计组实验5-存储器设计实验.(9页珍藏版)》请在金锄头文库上搜索。

1、杭州电子科技大学计算机学院实验报告实验项目: 课程名称:计算机组成原理与系统结构设计姓名: 学号: 同组姓名: 学号: 实验位置(机号): 实验日期: 指导教师: 实验内容(算法、程序、步骤和方法)1、 实验目的(1) 掌握灵活应用Verilog HDL进行各种描述与建模的技巧和方法。(2) 学习在ISE中设计生成M恶魔人员IP核的方法。(3)学习存储器的结构及读写原理,掌握存储器的设计方法。2、 实验仪器 ISE工具软件三、步骤、方法(1)在ISE的工程目录里生成一个扩展名为Test_Mem.coe。该文件是用于Memory IP核的初始化文件。文件包括两行,memory_initializ

2、ation_radix=16;memory_initialization_vector=00000820,00632020,00010fff,20006789,FFFF0000,0000FFFF,88888888,99999999,aaaaaaaa,bbbbbbbb;(2) 启动ISE工具软件,选择File-New Project,输入工程名shiyan5,默认选择后,点击Next按钮,确认工程信息后点击Finish按钮,创建一个完整的工程(3) 在工程管理区的任意位置右击,选择New Source命令。弹出New Source Wizard对话框,选择IP(CORE Generator&Ar

3、chitecture Wizard),并输入存储器IP核的名称RAM_B,点击Next按钮进入下一步,在IP核选择界面,选择Memories&Storage Elements下的Block Memory Generator选项,单击next按钮,点击Finish进入参数设置。(4) Memory IP参数设置。在第1页选择默认接口:Native.第2页选择Memory Type为Single Port RAM.第三页修改Write Width为32,Write Depth为64.选择Always Enabled。第4页选中Load Init File,选择第一步生成的COE文档。第5页和第6页

4、默认无需修改。单击Generate按钮,系统将在工程管理区生成一个RAM_B存储器模块:RAM_B(RAM_B.xco)。之后在过程管理区会出现核生成器菜单。(5) 调用RAM_B模块:双击过程管理区的View HDL Instruction Template,右侧代码区出现RAM_B的调用模板。(6) 在工程管理区的任意位置右击,选择New Source命令。弹出New Source Wizard对话框,选择Verilog Module,并输入Verilog文件名ram,点击Next按钮进入下一步,点击Finish完成创建。将RAM_B的调用模板粘贴过来。并对ram进行仿真。(7) 在工程管

5、理区的任意位置右击,选择New Source命令。弹出New Source Wizard对话框,选择Verilog Module,并输入Verilog文件名jicunqidui,点击Next按钮进入下一步,点击Finish完成创建。利用实验四对这个进行编码。(8)在工程管理区的任意位置右击,选择New Source命令。弹出New Source Wizard对话框,选择Verilog Module,并输入Verilog文件名jicunchu,点击Next按钮进入下一步,点击Finish完成创建。编辑程序源代码,对jicunqidui和ram进行调用,然后编译。并进行运行,观察是否正确。(9)在

6、工程管理区将View类型设置成Simulation,在任意位置右击,选择New Source命令,选择Verilog Test Fixture选项。点击Next,点击Finish,完成。编写仿真代码,观察仿真波形,如果验证逻辑有误,则修改代码,重新编译,仿真,直至正确。(10)由于实验五并未链接实验板,所以后面的链接实验板的步骤此处没有。操作过程及结果一,操作过程实验过程和描述:Module jicunchu(R_Addr_A,R_Addr_B,Clk,W_Addr,W_Data,R_Data_A,R_Data_B,Reset,Write_reg ,wea,addr,douta );input

7、 Clk;input Reset;input 4:0R_Addr_A; input 4:0R_Addr_B;input 4:0W_Addr;output 31:0R_Data_A;output 31:0R_Data_B;input 31:0W_Data;input wire Write_reg;input wire wea;input 7:2addr;output 31:0douta;jicunqidui FA0( .R_Addr_A(R_Addr_A), .R_Addr_B(R_Addr_B), .Clk(Clk), .W_Addr(W_Addr), .W_Data(W_Data), .Re

8、set(Reset), .R_Data_A(R_Data_A), .R_Data_B(R_Data_B), .Write_reg(Write_reg);ram FA1( .wea(wea), .addr(addr7:2), .dina(R_Data_A), .douta(douta), .clk(Clk);endmodulemodule jicunqidui(R_Addr_A,R_Addr_B,Clk,W_Addr,W_Data,R_Data_A,R_Data_B,Reset,Write_reg);input Clk,Reset;input wire Write_reg;input wire4

9、:0R_Addr_A;input wire4:0W_Addr;input wire4:0R_Addr_B;input wire32:0W_Data;reg 31:0REG_Files31:0;output wire0:31R_Data_A;output wire0:31R_Data_B;integer i=0;always(posedge Clk or posedge Reset)begin if(Reset) begin for(i=0;i=31;i=i+1) REG_Filesi=32b0; endelse begin if(Write_reg) REG_FilesW_Addr=W_Dat

10、a; endend assign R_Data_A=REG_FilesR_Addr_A; assign R_Data_B=REG_FilesR_Addr_B;endmodulemodule ram(clk,wea,addr,dina,douta);input clk;input 0:0wea;input 7:2addr;input 31:0dina;output 31:0douta;RAM_B your_instance_name ( .clka(clk), / input clka .wea(wea), / input 0 : 0 wea .addra(addr7:2), / input 5

11、 : 0 addra .dina(dina), / input 31 : 0 dina .douta(douta) / output 31 : 0 douta);endmodule仿真代码Jicunchu的仿真module text2;/ Inputsreg 4:0 R_Addr_A;reg 4:0 R_Addr_B;reg Clk;reg 4:0 W_Addr;reg 31:0 W_Data;reg Reset;reg Write_reg;reg wea;reg 7:2 addr;/ Outputswire 31:0 R_Data_A;wire 31:0 R_Data_B;wire 31:0

12、 douta;/ Instantiate the Unit Under Test (UUT)jicunchu uut (.R_Addr_A(R_Addr_A), .R_Addr_B(R_Addr_B), .Clk(Clk), .W_Addr(W_Addr), .W_Data(W_Data), .R_Data_A(R_Data_A), .R_Data_B(R_Data_B), .Reset(Reset), .Write_reg(Write_reg), .wea(wea), .addr(addr7:2), .douta(douta);initial begin/ Initialize Inputs

13、R_Addr_A = 0;R_Addr_B = 0;Clk = 0;W_Addr = 0;W_Data = 0;Reset = 1;Write_reg = 0;wea = 0;addr = 0;/ Wait 100 ns for global reset to finish / Add stimulus here #100;Reset = 0;Clk = 0;#100;W_Addr =5b11011;W_Data = 32b 11111111110001111111111101101111;Write_reg = 1;Clk=0;#50;Clk=1;#100;R_Addr_A = 5b11011;R_Addr_B = 0;Clk = 0;Write_reg = 0;#100;R_Addr_A = 5b11011;Write_reg=0;Clk = 0;W_Addr = 0;W_Data = 0;#10; Clk=0;wea = 1;addr =8b00110100;#10;Clk=1;#100;wea = 0;addr =8b00110100;#100;Clk=0;#10;Clk=1;end EndmoduleRAM的仿真module text3;/ Inp

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号