寄存器堆的設(shè)計(jì)_第1頁(yè)
寄存器堆的設(shè)計(jì)_第2頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、-存放器堆設(shè)計(jì)1、 功能概述:MIPS指令格式中的存放器號(hào)是5bits,指令可以25=32個(gè)32位的存放器。這樣的一堆存放器“堆在一起構(gòu)成一個(gè)存放器堆Register File。2、 接口說(shuō)明:存放器堆模塊接口信號(hào)說(shuō)明表脈沖regfile_clk,復(fù)位端regfiles_rst,寫(xiě)使能端regfiles_Wen,寫(xiě)地址regfile_Waddr,寫(xiě)數(shù)據(jù)regfiles_Wdata,讀地址一regfiles_Raddr_1,讀地址二regfiles_Raddr_2,讀數(shù)據(jù)一regfiles_Rdata_1,讀數(shù)據(jù)二regfiles_Rdata_2;設(shè)計(jì)思路:1、復(fù)位處理是利用標(biāo)志位flag實(shí)現(xiàn)的

2、,當(dāng)復(fù)位時(shí),flag=0;利用i來(lái)計(jì)數(shù),當(dāng)i31時(shí),flag都等于0;直到i=32,復(fù)位完成,flag=1,這時(shí),才可以進(jìn)展寫(xiě)操作。2、當(dāng)復(fù)位時(shí),需要32個(gè)脈沖才能將存放器全部復(fù)位。復(fù)位未完成,flag一直等于0。假設(shè)復(fù)位未完成時(shí),進(jìn)展寫(xiě)操作,這時(shí),并不能寫(xiě)進(jìn)去,便出錯(cuò)了。所以,進(jìn)展32分頻,當(dāng)存放器可以寫(xiě)入時(shí),復(fù)位已完成。3、 設(shè)計(jì)電路源代碼/-32個(gè)32位存放器堆module regfile( input regfile_clk, /脈沖 input regfile_rst, /復(fù)位端 input regfile_Wen, /寫(xiě)使能端 input 4:0 regfile_Raddr_1,/

3、讀地址一 input 4:0 regfile_Raddr_2,/讀地址二 input 4:0 regfile_Waddr, /寫(xiě)地址 input 31:0 regfile_Wdata, /寫(xiě)數(shù)據(jù) output 31:0 regfile_Rdata_1,/讀數(shù)據(jù)一 output 31:0 regfile_Rdata_2/讀數(shù)據(jù)二 );/-reg 31:0regfiles0:31; /實(shí)現(xiàn)存放功能reg 4:0 i; /實(shí)現(xiàn)flag的變換reg flag; /實(shí)現(xiàn)復(fù)位的標(biāo)志reg regfile_clk_1; /實(shí)現(xiàn)寫(xiě)數(shù)據(jù)的脈沖reg 4:0count; /-32分頻處理always(posedg

4、e 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/-復(fù)位處理always(posedge regfile_clk or posedge regfile_rst)begin if(regfile_rst)begin i=5d0;flag=1b0;end else

5、 if(i5b11111)begin i=i+1b1; flag=1b0; endelse flag=1b1;end/-寫(xiě)操作always(posedge regfile_clk_1)begin if(flag) regfilesi=32d0;else begin if(regfile_Wen&(regfile_Waddr!=5d0) /寫(xiě)使能端為一,寫(xiě)地址不為零 begin regfilesregfile_Waddr=regfile_Wdata; /寫(xiě)入endendend/-讀操作assign regfile_Rdata_1=(regfile_Raddr_1=5d0)?32d0:regfil

6、esregfile_Raddr_1;assign regfile_Rdata_2=(regfile_Raddr_2=5d0)?32d0:regfilesregfile_Raddr_2;/-endmodule4、 設(shè)計(jì)電路仿真所設(shè)計(jì)的指令存儲(chǔ)器模塊電路,采用ISE仿真器工具進(jìn)展了設(shè)計(jì)仿真驗(yàn)證,驗(yàn)證結(jié)果說(shuō)明存儲(chǔ)器功能以及接口時(shí)序完全正確,如下是仿真驗(yàn)證的波形圖。1是仿真鼓勵(lì)源代碼。圖5 存放器堆電路讀寫(xiě)仿真波形圖1:module regfile_test;/ Inputsreg clk;reg rst; reg Wen;reg 4:0 Raddr_1;reg 4:0 Raddr_2;reg 4:0

7、 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),

8、 .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; /復(fù)位*32 Wen = 1b1; Waddr = 5d5; Wdata = $random; /寫(xiě)操作 *16 Waddr = 5d30; Wdata = $random; *16 Waddr = 5d0; Wdata =

9、 32hffff; *16 Wen= 1b0; Raddr_1 = 5d5; Raddr_2 = 5d30; /無(wú)法寫(xiě)入無(wú)法寫(xiě)入 *16 Raddr_1 = 5d0;Raddr_2 = 5d0;/-*16 Wen = 1b1; /寫(xiě)操作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;endendendmodulemodul

10、e 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_Rad

11、dr_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; /復(fù)位*32 Wen = 1b1; Waddr = 5d5; Wdata = $random; /寫(xiě)操作 *16 Waddr = 5d30; Wdata = $random; *16 Waddr = 5d0; Wdata = 32hffff; *16 Wen= 1b0; Raddr_1 = 5d5; Raddr_2 = 5d30; /無(wú)法寫(xiě)入無(wú)法寫(xiě)入 *16 Raddr_1 = 5d0;Raddr_2 = 5d0;/-*16 Wen = 1b1;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論