计算机组成原理-实验四-寄存器堆设计实验.pdf

计算机组成原理-实验四-寄存器堆设计实验.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机组成原理-实验四-寄存器堆设计实验 实验内容与原理: CPU内部通常包含若⼲个通⽤寄存器,以暂存 加运算的数据和中间结果。寄存器速度快,个数少,但是RISC CPU的设计强调设置⼤ 量的寄存器。例如,Intel 80x86系列CPU中只有8个寄存器,⽽SPA RC RISC CPU中却有120个寄存器。MISP CPU中有32个32位的寄存器 堆。 所谓寄存器堆,就是⼀个寄存器的集合,为⽅便访问其中的寄存器,对寄存器堆中的寄存器进⾏统⼀编码,称为寄存器号或者寄存器地 址,每个寄存器均通过制定寄存器好进⾏访问。 本实验要求设计⼀个32*32位的寄存器堆,即含有32个寄存器,每个寄存器32位。该寄存器堆有2个读端⼝、1个写端⼝,即能够同时读出2 个寄存器的值,写⼊1个寄存器。读操作不需要时钟控制,写操作需要在上跳沿才能写⼊。 其他具体实验内容 考计算机组成原理实验指导书。 程序模块结构图: ALU运运算算器器模模块块代代码码 :: `timescale 1ns / 1ps //A U模块 module A U(OP,A,B,F,Z F,CF,OF,SF,PF) ; parameter SIZ E = 32 ;//运算位数 input [3 :0] OP;//运算操作 input [SIZ E:1] A;//左运算数 input [SIZ E:1] B;//右运算数 output [SIZ E:1] F;//运算结果 output Z F, //0标志位, 运算结果为0(全零)则置1, 否则置0 CF, //进借位标志位, 取最⾼位进位C,加法时C=1则CF=1表⽰有进位,减法时C=0则CF=1表⽰有借位 OF, //溢出标志位,对有符号数运算有意义,溢出则OF=1,否则为0 SF, //符号标志位,与F的最⾼位相同 PF; //奇偶标志位,F有奇数个1,则PF=1,否则为0 reg [SIZ E:1] F; reg C,Z F,CF,OF,SF,PF;//C为最⾼位进位 always@(*) begin C=0; case(OP) 4'b0000:begin F=A&B; end //按位与 4'b0001:begin F=A|B; end //按位或 4'b0010:begin F=A^B; end //按位异或 4'b0011:begin F=~(A|B) ; end //按位或⾮ 4'b0100:begin {C,F}=A+B; end //加法 4'b0101:begin {C,F}=A-B; end //减法 4'b0110:begin F=A<B; end //A<B则F=1,否则F=0 4'b0111:begin F=B<<A; end //将B左移A位 endcase Z F = F==0;// F全为0,则Z F=1 CF = C; //进位借位标志 OF = A[SIZ E]^B[SIZ E]^F[SIZ E]^C;//溢出标志公式 SF = F[SIZ E] ;//符号标志,取F的最⾼位 PF = ~^F;//奇偶标志,F有奇数个1,则F=1;偶数个1,则F=0 end endmodule 寄寄存存器器堆堆模模块块代代码码 :: `timescale 1ns / 1ps //寄存器堆模块 module RegFile(Clk,Clr,Write_ Reg,R_Addr_A,R_Addr_ B,W_Addr,W_ Data,R_ Data_A,R_ Data_ B) ; parameter ADDR = 5 ;//寄存器编码/地址位宽

文档评论(0)

135****0879 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档