分布式運(yùn)算單元的原理及其實(shí)現(xiàn)方法
若將式(4)每個(gè)方括號(hào)之間的加法并行執(zhí)行,即將每個(gè)DA查找表的輸出采用并行的加法,就得到了全并行結(jié)構(gòu)。現(xiàn)將式(4)中的某個(gè)方括號(hào)重寫(xiě)如下,并縮寫(xiě)為sum:本文引用地址:http://m.butianyuan.cn/article/191941.htm
利用式(6),可以得到一種直觀的樹(shù)形陣列,如圖2所示。
圖2中,首先要建立一個(gè)K×B位的寄存器陣列,將其輸出進(jìn)行排列,用所有K個(gè)輸入數(shù)據(jù)的相同位,對(duì) DA查找表尋址,從圖中可以看出,當(dāng)B=16時(shí),輸入到輸出所需的路徑最長(zhǎng),該路徑為關(guān)鍵路徑,影響著電路處理的速度,在進(jìn)行設(shè)計(jì)時(shí)應(yīng)該注意到這點(diǎn),所以應(yīng)該采用流水線設(shè)計(jì)方法[1],并進(jìn)行適當(dāng)?shù)募s束,其數(shù)據(jù)率可以達(dá)到50MHz。圖中的15個(gè)節(jié)點(diǎn)代表著15個(gè)并行的加法器,中間過(guò)程的數(shù)據(jù)寬度既可以保持雙精度(B+C)位數(shù)據(jù)(C是常數(shù)Ak的寬度),也可以采用截尾的辦法得到單精度B位數(shù)據(jù),可根據(jù)系統(tǒng)所要求的精度確定。
2.2 全串行實(shí)現(xiàn)方法
當(dāng)系統(tǒng)對(duì)速度的要求不是很高的時(shí)候,可以用全串行設(shè)計(jì)方法,即一個(gè)DA查找表,一個(gè)并行的加法器以及簡(jiǎn)單少量的寄存器就可達(dá)到目的,這樣能夠節(jié)省大量的FPGA資源。同樣,設(shè)K=16,B=16,將式(4)改寫(xiě)如下形式:
為了實(shí)現(xiàn)式(7),先從最低位開(kāi)始,用所有K個(gè)輸入變量的最底位對(duì)DA查找表進(jìn)行尋址,得到了[sum15],將[sum15]右移一位即將 [sum15]乘2-1后,放到寄存器中,設(shè)為[tem15];同時(shí),K個(gè)輸入變量的次低位已經(jīng)開(kāi)始對(duì)DA查找表尋址得到[sum14],右移一位后,與 [tem15]相加,重復(fù)這樣的過(guò)程,直至得到[sum0],并用前面得到的累加結(jié)果減去[sum0]。要實(shí)現(xiàn)上述過(guò)程,需要K個(gè)長(zhǎng)度為B的串并行轉(zhuǎn)換移位寄存器、一個(gè)容量為2K×C的DA查找表和一個(gè)累加器。該全串行電路的數(shù)據(jù)率為輸入數(shù)據(jù)抽樣頻率的1/B,即完成一次運(yùn)算需要B個(gè)時(shí)鐘周期。由此可以得到全串行DA模式,如圖3所示。
2.3 串并行相結(jié)合實(shí)現(xiàn)方法
以上介紹的全串行方式是每個(gè)時(shí)鐘周期對(duì)所有K個(gè)變量的一位進(jìn)行串行處理,全并行方式是每個(gè)時(shí)鐘周期對(duì)所有K個(gè)變量的所有B位進(jìn)行并行處理;這兩種方法是針對(duì)速度優(yōu)化和資源優(yōu)化設(shè)計(jì)的兩種極限情況。在有些情況下,我們可以對(duì)這兩種情況進(jìn)行折中考慮,獲得最佳資源利用和系統(tǒng)速度。我們可以從每個(gè)時(shí)鐘周期對(duì)K個(gè)變量的兩位進(jìn)行處理開(kāi)始著手,回顧一下式(5),并將該式改寫(xiě)如下:
完成該式功能的功能框圖如圖4a所示。
評(píng)論