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