新一代5G系統的設計十分復雜,而UltraScale器件內置的相關功能,能讓這項工作變得更加簡單。
即將到來的5G無線通信系統似乎需要支持比目前使用的4G系統更大的帶寬(200 MHz及以上),以及大型的天線陣列,以實現更高的載波頻率,從而有可能構建小得多的天線元。這些所謂的大規模多輸入多輸出(MIMO)應用連同更加迫切的延遲需求可將設計復雜度提高一個數量級。
去年年底,賽靈思宣布推出20nmUltraScaleTM系列,目前第一款器件已在運輸途中[1,2,3]。這項新技術與之前的28nm7 系列相比具有眾多優勢,尤其是在無線通信方面。確實,這款新型芯片與賽靈思Vivado?設計套件[4,5]工具的結合完美適用于新一代無線電應用等高性能信號處理設計。
我們來看看針對這類設計UltraScale器件有哪些優勢,著重觀察架構方面——尤其是當實現一些用于無線數字前端(DFE)應用的最常見功能時,這種增強功能會給DSP48 Slice和Block RAM帶來哪些優勢。與7 系列相比,UltraScale系列可提供更加密集的布線和時鐘資源,能夠實現更高的設備利用率,尤其針對高速設計。但是,這些特性通常不能對設計架構產生直接影響,因此我們在這里不做討論。
UltraScale架構增強功能簡介
UltraScale 20nm架構不僅能隨著幾何節點的遷移提高集成能力,提升架構性能以及降低功率消耗,還包括一些顯著增強的全新功能,可直接支持DFE應用。而這些功能對UltraScale Kintex?器件而言尤其重要,為此賽靈思已根據此類設計的需求進行了重大調整。
首先,這些器件包含多達5,520個DSP48 Slice,這幾乎是7 系列 FPGA的最大數量(1,920)的三倍(Zynq? - 700 All Programmable SoC為2,020),因此,它可以實現高集成度。比如,一個中型UltraScale FPGA的瞬時帶寬就能達到80到100 MHz,您可以利用這一帶寬實現完整的8Tx/8Rx DFE系統,而在7 系列架構中,必須使用雙芯片解決方案才能實現,因為每個芯片只能有效支持一個4x4系統。如欲了解有關這類設計各項功能的詳細信息,敬請參閱賽靈思白皮書WP445“采用賽靈思All Programmable FPGAs以及SoC實現高速無線電設計”[6]。
SerDes 可在最低速度等級器件上支持12.5 Gbps流量,實現最大JESD204B接口連接速度。
受遠輻射被動降溫的散熱限制,將復雜設計集成到單個器件要求大幅降低功耗,以散發熱量。UltraScale系列在提供這項功能時,其靜態功耗比同等規模的7 系列器件低10%-15%,動態功耗比類似設計低20%-25%。此外,賽靈思還大幅降低了UltraScale產品線的SerDes功耗。
此外,它還存在性能優勢。最低速度等級UltraScale器件支持時鐘速率高于500MHz的設計,而7 系列器件則要求達到中速等級。然而,即使這樣,Block RAM從計時角度來看要求仍然嚴苛,并且必須選擇WRITE_FIRST或NO_CHANGE模式以達到這種性能。不能使用READ_FIRST,因為它的限值在470MHz左右,而另外兩種模式可達到530MHz。無論何時NO_CHANGE總是您的最佳選擇,因為它同時還能實現最低功耗。
同樣,SerDes可在最低UltraScale速度等級上支持高達12.5 Gbps流量,從而實現最大JESD204B接口連接速度,其應很快可在大多數DAC和ADC上實現。同樣,最低的UltraScale速度等級還可支持兩個最高CPRI等級(7級和8級,其流量分別為9.8304和10.1376Gbps)以及10GE接口,通常用于DFE系統。
此外,UltraScale Kintex資源組合更適合無線電應用,它能夠實現邏輯資源的最佳用法。該DSP邏輯比尤其符合DFE設計的典型需求。確切地說,UltraScale Kintex器件擁有每千查找表(LUTs)8-8.5個DSP48 Slice,而7 系列器件只有大概6個。
賽靈思還大幅增加了UltraScale架構的時鐘和布線資源。這項增加提高了器件利用率,尤其針對高時鐘速率設計。實際上,這樣做減少了布線擁塞,設計人員可以實現更好的設計封裝和LUT利用率,尤其是使LUT/SRL壓縮變得更為高效。用戶可以利用這項有意思的架構特性更好地打包設計,從而優化資源利用率以及動態功耗,其中相關邏輯的動態功耗下降系數可達1.7。LUT/SRL的壓縮原理包括采用LUT6的兩個輸出在單個LUT內打包兩個不同函數。這樣,如果兩個LUT5共享相同的輸出或內存讀取/寫入地址,您可以將實現邏輯函數或內存的兩個LUT5打包到一個LUT6中。同樣,也可以將兩個SRL16打包到一個LUT6中。
該特性對于數字無線電設計非常實用,該設計通常將共享同一地址的多個小內存(例如儲存濾波系數的ROM)和很多短延遲線(小于16個周期)集成到按時間排列的不同信號路徑中。
數據復用功能,尤其是雙輸入復用器,也將受益于這項特性。但是要想獲得較高的時鐘速率,必須謹慎使用LUT/SRL壓縮。首先,必須用連接到O6/O5 LUT輸出的兩個觸發器以避免發生任何時序問題。基于相同的原因,建議僅對相關邏輯使用這項功能,該策略還能起到限制布線擁塞的作用。
在UltraScale器件中,時鐘架構和可配置邏輯塊(CLB)均有助于更好地利用器件。盡管CLB仍然以7 系列架構為基礎,但現在每個CLB擁有單個Slice(而非兩個),其中集成了8個6輸入LUT和16個觸發器。因此進位鏈有8位長,且提供更寬的輸出復用器。另外,賽靈思還增加了控制類資源(也就是時鐘,時鐘使能和復位信號均共享于CLB中的存儲組件)。
然而,從本質上來講,還是DSP48 Slice和Block RAM的改進對無線電設計架構的影響最大。我們來詳細了解一下。
UltraScale DSP48 Slice架構的優勢
圖1給出了UltraScale DSP48Slice(DSP48E2)的視圖。上面的原理圖(圖表“a”)顯示了詳細架構,下面的原理圖(“b”)強調了與7 系列Slice(DSP48E1)相比增強的功能。
? 賽靈思將乘法器的寬度從25×18增加到27×18,預加法器寬度也相應增加到27 位。
? 您可以選擇預加法器輸入端為A或B,輸出端集成了一些多路復用器邏輯,從而允許在任意乘法器輸入端上(27 位或18 位輸入)饋送D±A 或D±B。
? 預加法器輸出端可饋送兩個乘法器輸入(在18 位輸入端上有適當的MSB 截斷),因此允許計算高達18 位數據的(D±A)2 或(D±B)2。
? 通過額外的W-mux 多路復用器在算術邏輯單元(ALU) 中添加了第四個操作數, 可將其看作輸入端C、P 或一個常量值(在FPGA 配置時定義)。這樣,使用乘法器時便可以執行一個三輸入操作, 如A * B + C + P 或A*B+P+PCIN。值得注意的是,只能在ALU 中添加W-mux 輸出(不允許減少)。
? 賽靈思集成了其它邏輯,從而可在X 、Y 或Z 多路復用器輸出端中的任意兩個之間執行96 位寬異或。實際上此處可提供四個不同模式,1x96位、2x48 位、4x24 位或8x12 位異或操作。
將乘法器尺寸從25×18 擴大到27×18,這對DSP48 Slice 芯片面積的影響極小,但會顯著提高對浮點運算的支持。首先,需要指出的是,DSP48E2 可有效支持高達28×18 位或27×19 位符號乘法運算。這是通過用輸入端C 處理額外的比特位來實現,如圖2,顯示了28 位操作數X 和18 位操作數Y 之間的乘法運算。
46 位輸出端的45 個最高有效位(MSBs)的計算方式為:
Z[45:1] = X[27:1]*Y[17:0] + X[0]*Y[17:1]
X 的27 個最高有效位和Y 的18位可直接饋送到DSP48E2 乘法器輸入端,而X[0]*Y[17:1] 源自外部17 位AND 運算符,并在一個流水線步驟后被發送到輸入端C 以匹配DSP48E2延遲。事實上AND 運算符可通過由X[0] 控制的復位引腳將Y[17:1] 直接饋送到寄存器中。同樣,外部1 位AND 運算符和用于實現延遲平衡的三時鐘周期延遲可用來計算Z,Z[0] 的LSB。
因此您可以執行具有單個DSP48E2 Slice 和18 個LUT/ 觸發器對的28×18 位乘法器。這同樣適用于使用其它27 個LUT/ 觸發器對的27×19 位乘法器。這兩種情況下,均可通過W-mux 支持運算結果的收斂舍入。
雙精度浮點乘法運算涉及兩個運算符的53位非符號尾數的整數乘積。盡管雙精度浮點計數法中儲存有一個52位數值(m),但它代表的是非符號尾數的小數部分,而實際上其是標準化的1+m值,需要將這些值乘在一起;因此乘法運算將要求使用附加位。考慮到兩個53位操作數的MSB都等于1,并適當分解乘法運算從而以最佳方式利用DSP48E2 26×27位非符號乘法器及其改善后的各項功能(例如,由W-mux啟動的真正的三輸入48位加法器),可以看到,只需6個DSP48E2 Slice和極少的外部邏輯就可以構建53×53位非符號乘法運算。本文未涉及這類實現方式的所有細節,但在上一代7 系列器件上,要實現類似的方法則需要10個DSP48E1 Slice;因此UltraScale架構將需要的Slice數量減少了40%。
DSP48E2的27×18乘法器對于以融合數據路徑為基礎的應用非常實用。最近,IEEE浮點標準中加入了融合乘累加運算符概念[8]。一般來說,這包括建立浮點運算A*B+C,且乘法器和加法器之間無需明確舍入、標準化和非規范化的數據。當使用傳統的浮點運算時,這些功能的代價非常高昂,且占用了最多的延遲時間。可推廣這一概念以建立積和運算符,這在線性代數中非常常見(矩陣積,Cholesky分解法)。因此,這種方法在成本或時間緊迫的情況下十分高效,同時要求具備浮點計數法的準確性和動態范圍。在無線電DFE應用中,數字預失真功能通常要求一些硬件加速來支持,以提高非線性濾波器系數的更新速度。然后,您可以在FPGA架構中建立一個或多個浮點MAC引擎,以協助軟件中運行的系數估算算法(例如,在Zynq SoC的一個ARM?CortexTM-A9核上)。
對于這類算術結構,已經證明如果尾數寬度略有上升,從23位上升到26位,則與真正的單精度浮點實現相比,準確度會有所提高,但會減少延遲和空間占用。UltraScale架構非常適合該用途,因為它只需2個DSP48 Slice就可以打造單精度的融合乘法器,而7 系列器件則需使用3個Slice以及其它架構邏輯。
預加法器集成在位于乘法器前面的DSP48 Slice中,可提供一種高效的對稱濾波器實現方式,這在DFE設計中很常見,可以實現數字上變頻器(DUC)和數字下變頻器(DDC)功能。對于N抽頭對稱濾波器來說,其輸出實例的計算方式如下:
其中x(n)代表輸入信號,h(n)代表濾波器脈沖響應,其中h(n)=h(N-1-n)。
因此,成對的輸入實例會被饋送入預加法器中,而輸出則會進一步乘以相應的濾波器系數。在7 系列架構上,預加法器必須使用DSP48E1的30位輸入端(A)以及25位輸入端(D),且其輸出端需連接乘法器的25位輸入端,同時將輸入端B布線至18位乘法器輸入端。
因此,在建立對稱濾波器時,系數數值化后不得超過18位,這樣可將阻帶衰減限制在85到90dB左右。對于新一代5G無線電系統來說,這也許會成為問題,因為該系統很可能在干擾水平較高的環境下運行,因此也許需要更大的衰減。
通過額外的W-mux多路復用器可將第四個輸入操作數添加到ALU中對無線電應用最為有益。
UltraScale架構解決了這個問題,因為可選擇預加法器輸入端作為A或B,并在輸出端集成了一些多路復用邏輯,從而支持將D±A或D±B饋送至任意乘法器輸入端(27位或18位輸入端)。因此,可支持系數達27位的對稱濾波器。賽靈思還為DSP48E2 Slice添加了另一項功能,將預加法器輸出端連接至乘法器的兩個輸入端(在18位輸入端上設有恰當的MSB截斷)。這樣便可以執行多達18位數據的(D±A)2或(D±A)2運算,從而可有效用于評估平方誤差項的總和。此類運算在優化問題中十分常見,比如,在實施最小平方解決方案以獲得調制解調器均衡器系數時,或按時間排列兩個信號時。
毫無爭議,通過額外的W-mux多路復用器將第四個輸入操作數添加到ALU中對無線電應用最為有益。相比7 系列器件上針對此類設計相同的實現方案,這個操作數通常可以將DSP48需求量減少10%-20%。
只能將W-mux輸出加入ALU(不允許減少)中,并可將其動態設置為寄存器C或P內容,或在FPGA配置過程中將其設為常量值(比如用于DSP48輸出端的收斂舍入或對稱舍入的常量),或只需將其歸零。通過這種方式可在使用乘法器時執行真正的三輸入運算,如A*B+C+P,A*B+C+PCIN,A*B+P+PCIN,而這在7 系列架構中是不可能實現的。的確,使用乘法器階段會生成最后兩個部分乘積輸出,然后將其添加到ALU中,以完成運算(見圖1)。因此,啟動乘法器后,乘法器將使用ALU的兩個輸入端并執行一項三輸入運算,而7 系列器件則無法執行。
受益于這一額外ALU輸入端的兩個最主要實例是半并行濾波器和復合乘積累加(MAC)操作數。下面我們將對這兩個實例進行詳細講解。
關于濾波器和MAC
在任何DFE應用中,線性濾波器都是最常用的處理單元。在賽靈思 FPGA上集成此項功能后,建議[6]盡可能實現多通道濾波器,因為它的復合采樣率(定義為通道數量與每條通道一般信號采樣頻率的乘積)與該設計運行所用的時鐘速率相同。在所謂的并行架構中,每個DSP48 Slice根據數據通道支持單一濾波器系數,從而大幅簡化了控制邏輯,并因此最大限度地降低設計資源利用率。
但是由于提高了時鐘速率(例如,在最低速度等級UltraScale器件上時鐘速率超過500 MHz),且濾波器以相對較低的采樣率運行,因此通常會選擇時鐘速率作為復合采樣率的倍數。可盡量提高時鐘速率,以進一步減小設計占用的空間,同時降低功耗。在這種情況下,將需建立一個半并行架構,其中每個DSP48會根據通道處理K系數,而K是時鐘速率與復合采樣率之間的比率。最高效的實現方案包括將濾波器拆分為多個K相位,每個DSP48可處理這些K相位的一個特定系數。
在每個時鐘周期中計算出連續多個濾波器輸出相位,并將其累加形成一個輸出樣本(每個K周期一次)。因此,與并行實現方案相比,濾波器輸出需要增加一個累加器。這種全精度累加器可作用于較大的數據寬度,等于bS+bC+bF,其中bS和bC分別表示數據樣本的位寬度和系數,而bF=Log2N是濾波器的位增長,N是系數總數。因此,常規做法是在DSP48 Slice內實現累加器,以保證支持最高時鐘速率并最大限度地降低占用空間和功率消耗。
需要注意的是,各類濾波器都可以生成半并行架構,例如:單頻率濾波器、整數型濾波器或分數率內插和抽取濾波器。圖3是簡化后的7系列和UltraScale實現方塊圖。圖中清晰地突出了UltraScale解決方案的優勢,由于其具備W-mux功能,相位累加器可被最后一個DSP48 Slice吸收。
下面我們來思考一下如何實現每個時鐘周期產生一個輸出單元的全并行復合MAC運算符。眾所周知,您可以重寫復乘積的等式PI+j.PQ=(AI+j.AQ).(BI+j.BQ),從而根據以下等式僅使用三個真正的乘法運算:
因此,利用內置加法器,您只需三個DSP48(一個用于計算P1,另外兩個用來處理PI和PQ輸出)就能實現復合乘法器。根據延遲需求以及其中表述的速度性能指令,需要增加一些邏輯以在不同數據路徑間平衡延遲。為獲取最大速度支持,必須對DSP48實行完全流水線化,從而讓運算符整個延遲六個周期。隨后在每個輸入端增加一個兩周延遲線,讓實際數據路徑和虛構數據路徑保持一致。在每個輸入位配備四個SRL2,并利用SRL壓縮功能將四個SRL2打包到兩個LUT中。通過在每個PI和PQ輸出端添加累加器來最終完成復合MAC。此外,這個累加器會作用于較大的數據寬度,因此能更好地集成到DSP48 Slice中。圖4顯示7 系列和UltraScale器件相應的實現方案,從而再一次展示了W-mux集成的優勢。PI和PQ DSP48E2 Slice在吸收累加器時可節省40%資源。值得一提的是,該方式還減少了延遲,對一些應用十分有益。
您可以用類似結構構建帶有三個真實濾波器的復合濾波器(其中一個具備復合數據和系數),如圖5所示。輸入信號的真實部分和虛構部分會饋送至兩個真實濾波器中,其系數分別為該濾波器系數虛構部分和真實部分的差值和總和。第三個濾波器用系數的真實部分處理并行的輸入端真實與虛構部分的總和。當需要建立并行濾波器時,最終可將三個濾波器的輸出端結合起來,以生成輸出端的真實與虛構組件,其將再次受益于W-mux,這也是DFE應用中使用均衡器的典型狀況。
UltraScale內存架構的優勢
UltraScale器件集成的Block RAM與7 系列中集成的Block RAM基本相同,但新架構引入了硬件數據級聯方案以及動態電源門控能力。圖6顯示了該級聯,其中展示的是同一列中在每個上下相鄰的Block RAM間嵌入的數據多路復用器。因此,無需使用其它邏輯資源便能以由下至上的方式建立更大內存。
圖6 – UltraScale器件上的BRAM級聯
該級聯覆蓋了器件上的所有整列,但最好將級聯的使用限制在單個時鐘區域(即12個連續BRAM)以避免時鐘偏移并最大限度提升時序性能。此外,它還提供足夠的靈活性,可支持該級聯功能的不同實現。實際上,您既可以將多路復用器應用到位于可選寄存器前后的Block RAM數據輸入端,也可以用于數據輸出端。
該級聯使建立需要多個BRAM的大型內存成為可能,同時占用空間極少,支持最高時鐘速率以及最低功率消耗,而這些在7 系列器件上則無法實現。比如,在7 Se系列器件上,通過配置為16K×2位的八個BRAM(36K)實現存儲16位數據的16K內存,以避免外部數據復用,而這樣則需要增加邏輯資源和延遲,并會影響計時與布線擁塞。從動態功率角度來說,這種方法效率較低,因為在所有讀取或寫入操作中都要啟 動這八個Block RAM。最佳解決方案包括使用2Kx16位配置,由于這樣只需啟動一個BRAM,因此消耗的動態功率只有上述方法的八分之一。級聯功能連同動態功率門控功能正好可以在UltraScale器件上實現這種效果。
Block RAM級聯的另一種直接應用與實現I/Q數據轉換功能有關,通常與DFE系統的基帶CPRI接口集成。圖7展示了通常由一個NxM存儲器陣列組成的高級交換架構。N入口流上的連續數據會根據其輸出目的地寫入到相應的Block RAM中并形成一行,且會從相應的Block RAM以一列的形式讀取M出口流。因此,可以用BRAM級聯有效實現每一列。
圖7 – 數據交換高級架構
如欲了解有關20nmUltraScale系列的更多信息,敬請訪問 。
參考文獻
1. 賽靈思背景資料,2013年7月,“推出UltraScale架構:業界首款ASIC級All Programmable架構”
2. 賽靈思白皮書 WP435,2013年8月, “賽靈思UltraScale:為您未來架構而打造的新一代架構”
3.賽靈思數據手冊DS890,2014年2月6日,“UltraScale 架構和產品簡介”
4. 賽靈思背景資料,2013年7月, “Vivado設計套件加速設計生產力的九大理由”
5.賽靈思用戶指南UG949,“Vivado 設計套件的設計方法指南”
6. 賽靈思白皮書WP445,2014年1月20日,“采用賽靈思All Programmable FPGA和 SoC實現高速無線電設計”
7. 賽靈思用戶指南UG579,“UltraScale 架構——DSP Slice,高級規范用戶指南”8. IEEE計算機社團,2008年8月29日,“針對浮點架構的IEEE 標準”
評論
查看更多