寄存器堆的设计.doc_第1页
寄存器堆的设计.doc_第2页
寄存器堆的设计.doc_第3页
寄存器堆的设计.doc_第4页
寄存器堆的设计.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

寄存器堆设计1、 功能概述:MIPS指令格式中的寄存器号是5bits,指令可以访问25=32个32位的寄存器。这样的一堆寄存器“堆在一起”构成一个寄存器堆(Register File)。2、 接口说明:寄存器堆模块接口信号说明表脉冲regfile_clk,复位端regfiles_rst,写使能端regfiles_Wen,写地址regfile_Waddr,写数据regfiles_Wdata,读地址一regfiles_Raddr_1,读地址二regfiles_Raddr_2,读数据一regfiles_Rdata_1,读数据二regfiles_Rdata_2;设计思路:1、复位处理是利用标志位flag实现的,当复位时,flag=0;利用i来计数,当i31时,flag都等于0;直到i=32,复位完成,flag=1,这时,才可以进行写操作。2、当复位时,需要32个脉冲才能将寄存器全部复位。复位未完成,flag一直等于0。若复位未完成时,进行写操作,这时,并不能写进去,便出错了。所以,进行32分频,当寄存器可以写入时,复位已完成。3、 设计电路源代码/-32个32位寄存器堆module regfile( input regfile_clk, /脉冲 input regfile_rst, /复位端 input regfile_Wen, /写使能端 input 4:0 regfile_Raddr_1,/读地址一 input 4:0 regfile_Raddr_2,/读地址二 input 4:0 regfile_Waddr, /写地址 input 31:0 regfile_Wdata, /写数据 output 31:0 regfile_Rdata_1,/读数据一 output 31:0 regfile_Rdata_2/读数据二 ); /-reg 31:0regfiles0:31; /实现寄存功能reg 4:0 i; /实现flag的变换reg flag; /实现复位的标志reg regfile_clk_1; /实现写数据的脉冲reg 4:0count; /-32分频处理always(posedge regfile_clk or posedge regfile_rst)begin if(regfile_rst)begin count=5d0;regfile_clk_1=1b0; endelse if(count5d16)begin count=count+1b1; endelsebegin count=5d0;regfile_clk_1=regfile_clk_1;endend/-复位处理always(posedge regfile_clk or posedge regfile_rst)begin if(regfile_rst)begin i=5d0;flag=1b0; end else if(i5b11111)begin i=i+1b1; flag=1b0; endelse flag=1b1;end/-写操作always(posedge regfile_clk_1)begin if(flag) regfilesi=32d0;else begin if(regfile_Wen&(regfile_Waddr!=5d0) /写使能端为一,写地址不为零 begin regfilesregfile_Waddr=regfile_Wdata; /写入endendend/-读操作assign regfile_Rdata_1=(regfile_Raddr_1=5d0)?32d0:regfilesregfile_Raddr_1;assign regfile_Rdata_2=(regfile_Raddr_2=5d0)?32d0:regfilesregfile_Raddr_2;/-endmodule4、 设计电路仿真所设计的指令存储器模块电路,采用ISE仿真器工具进行了设计仿真验证,验证结果表明存储器功能以及接口时序完全正确,如下是仿真验证的波形图。附件1是仿真激励源代码。图5 寄存器堆电路读写仿真波形图附件1:module regfile_test;/ Inputsreg clk;reg rst; reg Wen;reg 4:0 Raddr_1;reg 4:0 Raddr_2;reg 4:0 Waddr;reg 31:0Wdata;/ Outputswire 31:0 Rdata_1;wire 31:0 Rdata_2;/ Instantiate the Unit Under Test (UUT)regfile U1 (.regfile_clk(clk), .regfile_rst(rst), .regfile_Wen(Wen), .regfile_Raddr_1(Raddr_1), .regfile_Raddr_2(Raddr_2), .regfile_Waddr(Waddr), .regfile_Wdata(Wdata), .regfile_Rdata_1(Rdata_1), .regfile_Rdata_2(Rdata_2);always #0.25 clk=clk; reg 5:0j,k;initial beginclk = 1b0;rst = 1b1;Wen = 1b0;Raddr_1 = 5d0;Raddr_2 = 5d0;Waddr = 5d0;Wdata = 32d0;endinitial begin #16 rst = 1b0; /复位#32 Wen = 1b1; Waddr = 5d5; Wdata = $random; /写操作 #16 Waddr = 5d30; Wdata = $random; #16 Waddr = 5d0; Wdata = 32hffff; #16 Wen= 1b0; Raddr_1 = 5d5; Raddr_2 = 5d30; /无法写入无法写入 #16 Raddr_1 = 5d0;Raddr_2 = 5d0;/-#16 Wen = 1b1; /写操作for(j=0;j6d32;j=j+1)begin(posedge clk) #16 Waddr = j;Wdata = 31-j;end /- #48 Wen = 1b0; /读操作for(k=0;k6d32;k=k+1)begin(posedge clk) #16 Raddr_1 = k;Raddr_2 = 31-k;endend endmodulemodule regfile_test;/ Inputsreg clk;reg rst; reg Wen;reg 4:0 Raddr_1;reg 4:0 Raddr_2;reg 4:0 Waddr;reg 31:0Wdata;/ Outputswire 31:0 Rdata_1;wire 31:0 Rdata_2;/ Instantiate the Unit Under Test (UUT)regfile U1 (.regfile_clk(clk), .regfile_rst(rst), .regfile_Wen(Wen), .regfile_Raddr_1(Raddr_1), .regfile_Raddr_2(Raddr_2), .regfile_Waddr(Waddr), .regfile_Wdata(Wdata), .regfile_Rdata_1(Rdata_1), .regfile_Rdata_2(Rdata_2);always #0.25 clk=clk; reg 5:0j,k;initial beginclk = 1b0;rst = 1b1;Wen = 1b0;Raddr_1 = 5d0;Raddr_2 = 5d0;Waddr = 5d0;Wdata = 32d0;endinitial begin #16 rst = 1b0; /复位#32 Wen = 1b1; Waddr = 5d5; Wdata = $random; /写操作 #16 Waddr = 5d30; Wdata = $random; #16 Waddr = 5d0; Wdata = 32hffff; #16 Wen= 1b0; Raddr_1 = 5d5; Raddr_2 = 5d30; /无法写入无法写入 #16 Raddr_1 = 5d0;Raddr_2 = 5d0;/-#16 Wen = 1b1

温馨提示

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

评论

0/150

提交评论