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