寄存器堆的设计

上传人:仙*** 文档编号:62004188 上传时间:2022-03-13 格式:DOC 页数:8 大小:122KB
收藏 版权申诉 举报 下载
寄存器堆的设计_第1页
第1页 / 共8页
寄存器堆的设计_第2页
第2页 / 共8页
寄存器堆的设计_第3页
第3页 / 共8页
资源描述:

《寄存器堆的设计》由会员分享,可在线阅读,更多相关《寄存器堆的设计(8页珍藏版)》请在装配图网上搜索。

1、reg , reg , reg , reg ;寄存器堆设计1、 功能概述:MIPS指令格式中的寄存器号是5bits,指令可以访问25=32个32 位的寄存器。这样的一堆寄存器“堆在一起”构成一个寄存器堆(Register File )。2、 接口说明:寄存器堆模块接口信号说明表脉冲 reg ,复位端 reg ,写使能端reg,写地址 reg ,写数据 reg ,读地址一读地址二读数据一读数据二设计思路:1、复位处理是利用标志位 flag 实现的, 当复位时, flag=0 ;利用 i 来计数,当 i31 时, flag 都等于 0;直到 i=32 ,复位完成, flag=1 ,这时,才可以进行

2、写操作。2、当复位时,需要32 个脉冲才能将寄存器全部复位。复位未完成,flag0。若复位未完成时,进行写操作,这时,并不能写进去,便出错了。所以,进行32 分频,当寄存器可以写入时,复位已完成。一直等于3、 设计电路源代码/-32 个 32 位寄存器堆module regfile(input reg,/脉冲input reg,/复位端input reg,/写使能端input 4:0 reg读地址一input 4:0 reg读地址二input 4:0 reg,/写地址input 31:0 reg, / 写数据output 31:0 reg 读数据一output 31:0 reg 读数据二);/

3、-reg 31:0regfiles0:31;/ 实现寄存功能reg 4:0 i;/ 实现 flag 的变换reg flag;/ 实现复位的标志reg reg;/ 实现写数据的脉冲reg 4:0count;/-32 分频处理always(posedge reg or posedge reg)beginif(reg)begincount=5d0;reg=1b0;endelse if(count5d16)begincount=count+1b1;endelsebegincount=5d0;reg=reg;endend/- 复位处理always(posedge reg or posedge reg)b

4、eginif(reg)begini=5d0;flag=1b0;endelse if(i5b11111)begini=i+1b1;flag=1b0;endelseflag=1b1;end/- 写操作always(posedge reg)beginif(flag)regfilesi=32d0;elsebeginif(reg(regd0)/写使能端为一, 写地址不为零beginregfilesreg=reg;/ 写入endendend/- 读操作assign reg(regd0)?32d0:regfilesreg;assign reg(regd0)?32d0:regfilesreg;/-endmod

5、ule4、 设计电路仿真所设计的指令存储器模块电路,采用 ISE 仿真器工具进行了设计仿真验证,验证结果表明存储器功能以及接口时序完全正确,如下是仿真验证的波形图。附件 1 是仿真激励源代码。图 5寄存器堆电路读写仿真波形图附件 1:module reg;/ Inputs reg 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 Tes

6、t (UUT) reg (.reg(clk),.reg(rst),.reg(Wen),.reg(Raddr_1),.reg(Raddr_2),.reg(Waddr),.reg(Wdata),.reg(Rdata_1),.reg(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; Wadd

7、r = 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)be

8、gin(posedge clk) #16 Raddr_1 = k;/ 复位/写操作/无法写入无法写入Raddr_2 = 31-k;endendendmodulemodule reg;/ Inputs reg 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) reg (.reg(clk),.reg(rst),.reg(

9、Wen),.reg(Raddr_1),.reg(Raddr_2),.reg(Waddr),.reg(Wdata),.reg(Rdata_1),.reg(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 = 5

10、d30; 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;/ 复位/写操作/无法写入无法写入endendendmodule

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