下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、最新资料推荐实验报告2018 年 6 J! J 日成绩:姓名阳光男学号16041321班级16052317专业计算机科学与技术课程名称计算机组成原理与系统结构 试验任课老 师张翔老师指导老 师张翔老师机位号无实验序 号9实验名 称实验九 实现R-I型指令的CPU设计实验实验时 问2018/6/2实验地 点1 教 221实验设 备号个人电脑一、实验程序源代码顶层RI型指令CPU模块测试文件: module test;/ Inputsreg rst; reg clk;/ Outputswire ZF;wire OF;wire 31:0 F;wire 31:0 M_R_Data;/Instantia
2、te the Unit Under Test (UUT) TOP_RI_CPU uut (.rst(rst), .clk(clk), .ZF(ZF), .OF(OF), .F(F),.M_R_Data(M_R_Data);initial begin/Initialize Inputsrst = 0;clk = 0;/ Wait 100 ns for global reset to finish#100;clk=1;/ Add stimulus hereforeverbegin#50;clk=clk;endendendmodule顶层LED验证模块:module TOP_LED(clk_100M
3、Hz,oclk,rst,SW,LED);input clk_100MHz;input oclk,rst;input 3:0SW;output reg7:0LED;wire rclk;wire ZF,OF;wire 31:0F;wire 31:0M_R_Data;xiaodou doudong(clk_100MHz,oclk,rclk);TOP RI CPU(clk 100MHz,rst,rclk,ZF,OF,F,M R Data);always(*)begincase(SW)3'b0000:LED=F7:0;3'b0001:LED=F15:8;3'b0010:LED=F
4、23:16;3'b0011:LED=F31:24;3'b0100:LED=M_R_Data7:0;3'b0101:LED=M_R_Data15:8;3'b0110:LED=M_R_Data23:16;3'b0111:LED=M_R_Data31:24;3'b1111:begin LED7:2=0;LED1=OF;LED0=ZF;enddefault:LED=0;endcaseendendmodule顶层RI型指令CPU模块31:0F,outputmodule TOP_RI_CPU(input rst,input clk,output ZF,out
5、put OF,output 31:0M_R_Data);wire Write_Reg;wire 31:0Inst_code;wire 4:0rs;wire 4:0rt;wire 4:0rd;wire 31:0rs_data;wire 31:0rt_data;wire 31:0rd_data;wire 31:0imm_data;wire 15:0imm;wire rd_rt_s;wire imm_s;wire Mem_Write;wire alu mem s;wire 31:0W_Addr;wire 31:0W_Data;wire 31:0R_Data_A;wire 31:0R_Data_B;w
6、ire 31:0F;wire 31:0ALU_B;wire 2:0ALU_OP;pc pc_connect(clk,rst,Inst_code);OP_YIMAop(Inst_code,ALU_OP,rs,rt,rd,Write_Reg,imm,rd_rt_s,imm_s,rt_imm_s,Mem_Write,alu_mem_s);assign W_Addr=(rd_rt_s)?rt:rd;assign imm_data=(imm_s)?16imm15,imm:161'b0,imm;Register_file R_connect(rs,rt,W_Addr,Write_Reg,W_Dat
7、a,clk,rst,R_Data_A,R_Data_B);assign ALU_B=(rt_imm_s)?imm_data:R_Data_B;ALU ALU_connect(R_Data_A,ALU_B,F,ALU_OP,ZF,OF);wire clk_tmp;wire d_outn;reg d_out=0;assign clk_tmp=c1kAd_out;assign d_outn=d_out;always(posedge clk_tmp)begind_out<=d_outn;endRAM_B Data_Mem (.clka(clk_tmp), / input clka.wea(Mem
8、_Write), / input 0 : 0 wea.addra(F5:0), / input 5 : 0 addra.dina(R_Data_B), / input 31 : 0 dina.douta(M_R_Data) / output 31 : 0 douta);assign W_Data=alu_mem_s?M_R_Data:F;endmodulePC取指令模块:module pc(input clk,input rst,output 31:0Inst_code);reg 31:0PC;wire31:0PC_new;initialPC<=32'h00000000;Inst
9、_ROM Inst_ROM1 (.clka(clk),.addra(PC7:2),.douta(Inst_code);assign PC_new=PC+4;always(negedge clk or posedge rst)beginif(rst)PC=32'h00000000;elsePC=24'h000000,PC_new7:0;endendmoduleOP指令功能译码模块module OP_YIMA(inst,ALU_OP,rs,rt,rd,Write_Reg, imm,rd_rt_s,imm_s,rt_imm_s,Mem_Write,alu_mem_s); input
10、31:0inst;output reg2:0ALU_OP;output reg4:0rs;output reg4:0rt;output reg4:0rd;output reg Write_Reg;output reg15:0imm;output reg rd_rt_s;output reg imm_s;output reg rt imm s;output reg Mem_Write; output reg alu_mem_s;always(*) begin /R型指令 if(inst31:26=6'b000000) beginrd=inst15:11;rt=inst20:16;rs=i
11、nst25:21;alu_mem_s=0;Mem_Write=0;rd_rt_s=0;rt_imm_s=0;Write_Reg=(inst5:0=0)?1'b0:1'b1; case(inst5:0) 6'b100000:ALU_OP=3'b100;6'b100010:ALU_OP=3'b101;6'b100100:ALU_OP=3'b000;6'b100101:ALU_OP=3'b001;6'b100110:ALU_OP=3'b010;6'b100111:ALU_OP=3'b011
12、;6'b101011:ALU_OP=3'b110;6'b000100:ALU_OP=3'b111;endcaseend/I型立即数寻址指令 if(inst31:29=3'b001) beginimm=inst15:0;rt=inst20:16;rs=inst25:21;Mem_Write=0;rd rt s=1;rt_imm_s=1;alu_mem_s=0;Write_Reg=1;case(inst31:26)6'b001000:begin imm_s=1;ALU_OP=3'b100;end6'b001100:begin imm_
13、s=0;ALU_OP=3'b000;end6'b001110:begin imm_s=0;ALU_OP=3'b010;end6'b001011:begin imm_s=0;ALU_OP=3'b110;end endcaseend/I型取数/存数指令if(inst31:30=2'b10)&&(inst28:26=3'b011)beginimm=inst15:0;rt=inst20:16;rs=inst25:21;rd_rt_s=1;rt_imm_s=1;imm_s=1;case(inst31:26)6'b100011
14、:begin alu_mem_s=1;Mem_Write=0;Write_Reg=1;ALU_OP=3'b100;end6'b101011:begin Mem_Write=1; Write_Reg=0;ALU_OP=3'b100;end endcase end endendmodule寄存器堆模块:ModuleRegister_file(R_Addr_A,R_Addr_B,W_Addr,Write_Reg,W_Data,Clk,Reset,R_Data_A,R_Data_B) input 4:0R_Addr_A;input 4:0R_Addr_B;input 4:0W_
15、Addr;input Write Reg;input 31:0W_Data;input Clk;input Reset;output 31:0R_Data_A;output 31:0R_Data_B;reg 31:0REG_Files0:31;reg 5:0i;initial/仿真过程中的初始化beginfor(i=0;i<=31;i=i+1)REG_Filesi=0;endassign R_Data_A=REG_FilesR_Addr_A; assign R_Data_B=REG_FilesR_Addr_B; always(posedge Clk or posedge Reset) b
16、eginif(Reset)for(i=0;i<=31;i=i+1)REG_Filesi=0;elseif(Write_Reg&&W_Addr!=0)REG_FilesW_Addr=W_Data;endendmoduleALU运算模块:module ALU(A,B,F,ALU_OP,ZF,OF);input 31:0A,B;input 2:0ALU_OP;output reg ZF,OF;output reg31:0F;reg C32;always(*)beginOF=1'b0;C32=1'b0;case(ALU_OP)3'b000:F=A&
17、B;3'b001:F=A|B;3'b010:F=AAB;3'b011:F=(AAB);3'b100:begin C32,F=A+B;OF=A31AB31AF31AC32;end3'b101:begin C32,F=A-B;OF=A31AB31AF31AC32;end3'b110:if(A<B)F=1;elseF=0;3'b111:F=B<<A;endcaseif(F=0)ZF=1;elseZF=0;endendmodule时钟按键消抖代码:module xiaodou(input clk_100MHz,input BTN
18、,output reg BTN_Out);reg BTN1,BTN2;wire BTN_Down;reg 21:0 cnt;reg BTN_20ms_1,BTN_20ms_2;wire BTN Up;always (posedge clk_100MHz)beginBTN1 <= BTN;BTN2 <= BTN1;endassign BTN_Down = (BTN2)&& BTN1 - 0 至U 1 的跳变always (posedge clk_100MHz)beginif (BTN_Down)begincnt <= 22'b0;BTN_Out <
19、= 1'b1;endelse cnt <= cnt+1'b1;if (cnt=22'h20000) BTN_20ms_1 <= BTN;BTN_20ms_2 <= BTN_20ms_1;if (BTN_Up) BTN_Out <= 1'b0;endassign BTN_Up = BTN_20ms_2 && (BTN_20ms_1M/1 至U 0 endmodule、仿真波形14三、电路图顶层电路模块TOPPLEDTOP_LEDTOP_LED;1顶层电路内部结构四、引脚配置(约束文件)NET "LED7" LOC = T11;NET "LED6" LOC = R11;NET "LED5" LOC = N11;NET "LED4" LOC = M11;NET "LED3" LOC =V15;NET "LED2" LOC =U15;NET "LED1" LOC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版集装箱拖车运输绿色物流解决方案服务合同2篇
- 二零二五年商业秘密保护法务咨询合同
- 2024年适用:沥青路面铺设合作协议
- 2025版金融机构出纳人员责任保障合同3篇
- 2024版二手房屋买卖合同协议规定
- 承德应用技术职业学院《农产品国际贸易》2023-2024学年第一学期期末试卷
- 承德医学院《社会福利制度》2023-2024学年第一学期期末试卷
- 2024汽车维修配件质量控制协议范本3篇
- 二零二五年度出口信用保险反担保保证合同范本3篇
- 《花的学校》教学设计精要
- 【8地星球期末】安徽省合肥市包河区智育联盟校2023-2024学年八年级上学期期末地理试题(含解析)
- 2024-2025学年冀人版科学四年级上册期末测试卷(含答案)
- 【8物(科)期末】合肥市庐阳区2023-2024学年八年级上学期期末质量检测物理试卷
- 国家安全知识教育
- 2024-2030年中国停车场建设行业发展趋势投资策略研究报告
- 蓝军战略课件
- 物业管理重难点分析及解决措施
- 北京邮电大学《数据库系统》2022-2023学年第一学期期末试卷
- 兰州生物制品研究所笔试
- 【MOOC】信号与系统-北京邮电大学 中国大学慕课MOOC答案
- 湖北省黄冈市2023-2024学年高一上学期期末考试化学试题(含答案)
评论
0/150
提交评论