R型指令的CPU设计.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
R型指令的CPU设计

杭州电子科技大学计算机学院 实验报告 实验目的 掌握MIPS R型指令的设计,掌握指令流和数据流的控制方法。 完整的单周期CPU顶层模块的设计方法 MIPS R型指令的功能ISE Design Suite 14.6 Digilent Adept Nexys3实验板 实验内容(算法、程序、步骤和方法) 本实验实现MIPS核心指令集的一个R型指令集包含八条指令。将实验ALU模块,实验寄存器模块,实验七的储存和取指令模块集成完成本实验 各个模块之间的关系 顶层模块: module Test_CPU(rst,clk,SW,LED); input rst,clk; output reg [7:0]LED; wire ZF,OF; wire [31:0]ALU_F; CPU r_cpu(rst,clk,ZF,OF,ALU_F); always@(*) begin case(SW) 3b000:LED=ALU_F[7:0]; 3b001:LED=ALU_F[15:8]; 3b010:LED=ALU_F[23:16]; 3b011:LED=ALU_F[31:24]; 3b100:begin LED[7:2]=0;LED[1]=OF;LED[0]=ZF;end default:LED=0; endcase end endmodule 综合ALU,取指令,寄存器模块顶层模块 module CPU( input rst, input clk, output ZF, output OF, output [31:0]F ); reg write_reg; wire [31:0]Inst_code; wire [31:0]R_Data_A; wire [31:0]R_Data_B; reg [2:0]ALU_OP; Fetch_Inst fetch(rst,clk,Inst_code); Registerfile register(Inst_code[25:21],Inst_code[20:16],Inst_code[15:11],write_reg, F,~clk,rst,R_Data_A,R_Data_B); ALU alu(R_Data_A,R_Data_B,F,ALU_OP,ZF,OF); always@(*) begin write_reg=0; ALU_OP=0; if(Inst_code[31:26]==0) begin case(Inst_code[5:0]) 6b100000:ALU_OP=3b100; 6b100010:ALU_OP=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; endcase write_reg=1; end end endmodule ALU模块: module ALU(A,B,F,ALU_OP,ZF,OF); input [31:0]A,B; input [2:0]ALU_OP; output reg ZF,OF; output reg [31:0]F; reg C32; always@(*) begin OF=1b0; C32=1b0; case(ALU_OP) 3b000:F=AB; 3b001:F=A|B; 3b010:F=A^B; 3b011:F=~(A|B); 3b100:begin {C32,F}=A+B;OF=A[31]^B[31]^F[31]^C32; end 3b101:begin {C32,F}=A-B;OF=A[31]^B[31]^F[31]^C32; end 3b110: if(AB) F=1; else F=0; 3b111:F=BA; endcase if(F==0) ZF=1; else ZF=0; end endmodule 实验四的寄存器模块: module Registerfile(input [4:0]R_Addr_A, input

文档评论(0)

docman126 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档