實現(xiàn)拆分大組合邏輯的方法_第1頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、實現(xiàn)拆分大組合邏輯的方法圖1是無數(shù)為了提高系統(tǒng)時鐘采納的拆分大組合規(guī)律的辦法,但是沒有提供詳細如何拆分的實例。我覺得實例才是重要的。但我不明了在寫代碼時,如何知道這樣寫會被綜合成一個很大的規(guī)律,一些容易的可以想到(比如大的計數(shù)器應(yīng)當分成多個來做),但是更復(fù)雜的實在是不好理解??梢酝ㄟ^流水線的方式分拆組合規(guī)律,這也是一種提高芯片速度的一種方式。 在組合規(guī)律中間插入寄存器,設(shè)計成流水。 很典型的例子就是調(diào)度器,假如做64調(diào)度器,可能中間的延時太長,不能滿足系統(tǒng)速度要求,這時候就可以做成一級16調(diào)度,一級4調(diào)度,來完成64調(diào)度的功能。用加法器做例子,設(shè)輸入abcd輸出out 上半部分就是: ut =

2、 a+b+c+d;下半部分就是:always (posedge clk)beginsumreg1 = sum1;sumreg2 = sum2;sumreg3 = sum3; endassign sum1 = a+b;assign sum2 = c+d;assign sum3 = sumrge1+sumreg2;assign ut = sumreg3;通常建議用法下半部分的算法,假如可以用法流水線。通常是這樣的,沒有例子看起來是不好理解,但是一有詳細的例子就十分清晰了。我也來學(xué)著給個計數(shù)器的例子計數(shù)255,假如用一個寄存器來計那么需要開的深度為8的,假如拆分為兩個那么只需容量為4的兩個寄存器,所

3、需的規(guī)律較小,不知道對不對。reg3:0ad1;reg3:0ad2;always (posedge clk)if(!rest)beginout=0;ad1=0;ad2=0;endelseif(ad1=15)beginad2=ad2+1;ad1=0;endelseif (ad2=15)begin out=1;endelsead1=ad1+1;ad1加滿后去觸發(fā)ad2加。always (posedge clk)if (reset)counter0 = 0;elsecounter0 = counter0 + 1;always (posedge clk)begincounterreg0 = count

4、er0;if (counterreg0 = 4'b1111)outreg0 = 1;elseoutreg0 = 0;endassign counter1 = counterreg1 + outreg0;always (posedge clk)begincounterreg1 = counter1;if (counterreg1 = 4'b1111)out = 1;elseout = 0;endlflhust 寫的程序沒有達到規(guī)律拆分的目的, 緣由很容易, 那個程序綜合后生成的的流水線深度還是1。 zf0579那個程序的流水線深度才是2,達到了拆分的目的。 作規(guī)律的動身點不是寫hdl代碼,而是在寫代碼前腦子里面要有 你需要實現(xiàn)

溫馨提示

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

評論

0/150

提交評論