杭电计组实验8

上传人:ba****u 文档编号:189016820 上传时间:2023-02-21 格式:DOCX 页数:10 大小:127.67KB
收藏 版权申诉 举报 下载
杭电计组实验8_第1页
第1页 / 共10页
杭电计组实验8_第2页
第2页 / 共10页
杭电计组实验8_第3页
第3页 / 共10页
资源描述:

《杭电计组实验8》由会员分享,可在线阅读,更多相关《杭电计组实验8(10页珍藏版)》请在装配图网上搜索。

1、杭州电子科技大学计算机学院实验报告实验项目:课程名称:计算机组成原理与系统结构设计姓名:学号:同组姓名:学号:实验位置(机号):自己的笔记本实验日期:指导教师:实验 内容 (算 法、程 序、 步骤 和方 法)一、实验目的(1)掌握灵活应用Verilog HDL进行各种描述与建模的技巧和方法。(2)学习在ISE中设计生成M恶魔人员IP核的方法。(3)学习存储器的结构及读写原理,掌握存储器的设计方法。二、实验仪器ISE工具软件三、步骤、方法在实验三六的基础上,编写CPU模块,实现8条指定的R型指令。(1)启动ISE工具软件,选择File-New Project,输入工程名shiyan8,默认选择后

2、,点击 Next按钮,确认工程信息后点击Finish按钮,创建一个完整的工程(2)新建一个工程,将实验二实现的ALU模块,实验四实现的寄存器模块,实验七实现 的指令存储器和取指令模块的七文件复制到工程目录下,并添加到工程中。(3)修改寄存器模块,以使r0内容恒置全零且只读。(4)复制实验七的指令存储器模块的ipcore_dir目录至新工程,并添加ROM_B.xco文件; 再修改ROM_B的初始化关联文件为新工程下的*.coe文件。(7)同样类似创建shiyan8的CPU模块,完成创建后。编辑程序源代码,引用ALU模块、 寄存器堆模块,取指令模块实例。并定义一组信号将各模块有序连接。然后编译。并

3、进行 运行,观察是否正确。(9)在工程官理区将View类型设置成Simulation,在任意位置右击,选择New Source命 令,选择Verilog Test Fixture选项。点击Next,点击Finish,完成。编写实shiyan8的仿真 代码,观察仿真波形,如果验证逻辑有误,则修改代码,重新编译,仿真,直至正确。(10)由于实验八并未链接实验板,所以后面的链接实验板的步骤此处没有。一,操作过程实验过程和描述:1、PC模块module pc(inst_code,clk,reset,PC,PC_new);input clk;output wire 31:0inst_code;input

4、 reset;output reg31:0PC;output 31:0PC_new;assign PC_new=PC+4;rom FA0(clk,PC7:2,inst_code);always(posedge clk or posedge reset)beginif(reset) begin PC=32H00000000;endelse begin PC=PC_new;endend2、ROM模块module rom(clk,addr,douta);input clk;操作过程及结果input 7:2addr;output 31:0douta;rom_a your_instance_name (

5、.clka(clk), / input clka.addra(addr7:2), / input 5 : 0 addra.douta(douta) / output 31 : 0 douta);Endmodule3译码器模块module yimaqi(OP,func,write_reg,ALU_OP);input 5:0OP;input 5:0func;output reg write_reg;output reg 2:0ALU_OP;always(*)beginif(OP=6b000000)begincase(func)6b100000:ALU_OP=3B100;6b100010:ALU_O

6、P=3B101;6b100100:ALU_OP=3B000;6b100101:ALU_OP=3B001;6b100110:ALU OP=3B010;6b100111:ALU_OP=3B011;6b101011:ALU_OP=3B110;6b000100:ALU_OP=3B111;endcasewrite_reg=(func=0)?1b0:1b1;endendendmodule4、寄存器模块modulejicunqidui(R_Addr_A,R_Addr_B,Clk,W_Addr,W_Data,R_Data_A,R_Data_B,Reset,Write_reg); input Clk,Reset

7、;input wire Write_reg;input wire4:0R_Addr_A;input wire4:0W_Addr;input wire4:0R_Addr_B;input wire31: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)beginif(Reset)beginfor(i=0;i=31;i=i+1)REG_Filesi=32b0;endelsebeginif(Write_

8、reg) REG_FilesW_Addr=W_Data;endendassign R_Data_A=REG_FilesR_Addr_A;assign R_Data_B=REG_FilesR_Addr_B;Endmodule5、ALUmodule ALU(A,B,ALU_OP,F,ZF,OF);input 31:0A;input 31:0B;input 2:0ALU OP;output reg ZF,OF;reg OF1,OF2;output reg31:0F;always(*)begincase(ALU_OP)3b000:begin F=A&B;ZF=(F=32b0)?1:0;end3b001

9、:begin F=AIB;ZF=(F=32b0)?1:0;end3b010:begin F=AAB;ZF=(F=32b0)?1:0;end3b011:begin F=(AIB);ZF=(F=32b0)?1:0;end3b100:begin OF1,F=A+B+0;ZF=(F=32b0)?1:0;OF=OF1AF31;end3b101:begin OF2,F=A+(B)+1;ZF=(F=32b0)?1:0;OF=OF2AF31;end3b110:begin F=AB?1:0;ZF=(F=32b0)?1:0;end3b111:begin F=(BvvA);ZF=(F=32b0)?1:0;enden

10、dcaseendendmodule仿真代码实验8的仿真forever #50 clk=clk;寄存器堆的仿真#100;Clk = 1;Reset = 0;R_Addr_A = 0;R_Addr_B = 0;W_Addr = 5b00001;Write_reg = 1;W_Data = 32h1111_1111;#100;Clk = 0;Reset = 0;R_Addr_A = 0;R_Addr_B = 0;W_Addr = 5b00001;Write_reg = 1;W_Data = 32h1111_1111;#100;Clk = 1;Reset = 0;R Addr A = 0;R_Addr

11、_B = 0;W_Addr = 5b00010;Write_reg = 1;W_Data = 32h2222_2222;#100;Clk = 0;Reset = 0;R_Addr_A = 5b00001;R_Addr_B = 5b00010;W_Addr = 0;Write_reg = 0;W_Data = 0;#100;Clk = 0;Reset = 1;R_Addr_A = 5b00001;R_Addr_B = 5b00010;W_Addr = 0;Write_reg = 0;W_Data = 0;RTL图shiyan8elklnsL_ode(31:0)华 1:0)PC31:0)PC ne

12、w31:0Jw data31:0)OFZFshiyan8二、结果L G39 hevslwDDDOOOOC H XKKXXXZXDDDOOOOODDDOOOOO KX DDDOOOOO DDD00004D1:4 B. S3E ns思考题:序号指令执行结果标志结论100000827FFFFFFFF00正确20001102b0000000100正确3004218200000000200正确4006220200000000300正确5008328200000000500正确600a330200000000700正确7004638040000000E00正确800a648200000700000正确90

13、1264004FFFF8FFF00正确1000284826FFFF8FFE00正确110121502000006FF200正确1201075822FFFF900E00正确1300e86022FFFF800E00正确14012c6824FFFF9FFF00正确15012c70250000000F00正确1600c77825FFFFFFF000正确其实在做这个实验八一一实现R型指令的CPU设计实验时,我们可以看到其实实验八实验体会就是前面这些实验的集合和总结,在实验八的CPU模块中,调用了实验三的ALU模块, 实验四的寄存器堆模块,实验七的取指令模块。它将这些模块进行了互联,并添加了指令 译码与控制部件。其实编写实验八的过程也就是将前面所有的实验进行一次应用和巩固的过程。当然了,在 这个实验中同样涉及到了 IP核的应用。在这个实验八编写完成后,我收获了很多。实验步骤写的时候,最好自己按照所做步骤写,二人不要一模一样。成绩:指导教师签名:指导教师评议

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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