(中國電子科技集團公司 第五十四研究所,石家莊 050000)
隨著微電子技術進入SoC(system on chip,片上系統(tǒng))時代,小型化成為集成電路的發(fā)展方向之一。由于特征尺寸的不斷縮小,NBTI(negative bias temperature instability,負偏壓溫度不穩(wěn)定性)效應、HCI(Hot Carrier Injection,熱載流子注入)效應引發(fā)的器件可靠性問題愈發(fā)凸顯。在航天應用中,受空間輻射影響,星載電子設備中CMOS器件邏輯電平翻轉引發(fā)錯誤的現(xiàn)象時有發(fā)生。當SoC芯片出現(xiàn)功能性故障或可靠性故障時,傳統(tǒng)的糾錯方法主要是通過模塊冗余(如三模冗余)方法實現(xiàn),存在資源開銷大、執(zhí)行效率低等缺陷。
SoC芯片集成度的不斷提高使得第三方IP核復用成為芯片設計的關鍵思路。eFPGA由于面積小、可移植性好,能夠以IP核的形式嵌入SoC芯片中,在改善信號延遲、提升計算性能方面具備優(yōu)勢。eFPGA的可編程性使得通過邏輯重構實現(xiàn)故障電路的自愈功能成為可能。通信基帶加速器作為SoC芯片的關鍵部分,承擔著數字信號處理的功能,通常使用ASIC平臺實現(xiàn)。當通信基帶加速器發(fā)生功能故障時,可以從FLASH中取出預先存儲的比特流信息,通過JTAG掃描鏈導入eFPGA進行配置實現(xiàn)邏輯重構,同時斷開通信基帶加速器的互連總線,并配置eFPGA的互連關系,從而利用eFPGA執(zhí)行通信基帶加速器功能,實現(xiàn)電路故障自愈。對通信基帶加速器的邏輯重構,關鍵在于對其核心算法的實現(xiàn)和執(zhí)行。
FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列)作為ASIC(application specific integrated circuit,專用集成電路)領域中的一種半定制電路出現(xiàn),其優(yōu)點在于其邏輯功能可由用戶通過軟件編程實現(xiàn)在線配置,并且可以反復擦寫。但隨著芯片不斷向小型化發(fā)展,傳統(tǒng) FPGA 使用中存在的缺點逐漸顯現(xiàn):在硬件加速應用中,通常會浪費很多可編程資源和外圍接口資源;標準FPGA與ASIC 之間的接口存在顯著的延遲,難以滿足高速計算的需求;功耗高、面積大、成本浪費嚴重。eFPGA(embedded FPGA,嵌入式FPGA)則很好地克服了上述缺點。eFPGA是指可作為IP(intellectual property,知識產權)模塊集成到SoC中的 FPGA(如圖1所示),可將 ASIC 設計的高性能和 FPGA模塊的靈活性有效結合起來,面積小、功耗低,可顯著降低資源開銷。
圖1 SoC集成eFPGA
eFPGA對比傳統(tǒng)FPGA具有諸多優(yōu)點。從連接方式上看,eFPGA通過內部連線直接集成SoC,不需要大型可編程輸入/輸出緩沖,降低了接口延遲,提高了接口帶寬的性能(可實現(xiàn)10000個以上的I/O連接);從功能定制上看,靈活度更高,可根據應用需求定義LUT(look-up table,查找表)、BRAM(block RAM,塊隨機存儲器)和cDSP(core DSP,數字信號處理器核)的數量,優(yōu)化資源配置。
eFPGA承擔數字信號處理功能,可顯著提升數據吞吐率。eFPGA省去了SERDES(高速串并轉換器)、PLL(鎖相環(huán))、硬核IP總線接口、GPIO(通用輸入/輸出)緩存等結構,通過精細時鐘門控(fine grain clock gating)降低了動態(tài)功耗,通過高密度互連節(jié)省了面積。
圖2為eFPGA的基本結構。eFPGA基本單元為RBB(Reconfigurable Building Block,可重構單元塊)。RBB按照功能可分為Logic RBB、DSP RBB、I/O RBB三類,分別執(zhí)行邏輯運算、數字信號處理、輸入/輸出接口的功能。eFPGA經過平面規(guī)劃后生成陣列結構,包含外圍I/O RBB、Logic核、DSP核、內嵌BRAM。圖示eFPGA為2個Logic核、2個DSP核構成的2x2結構。其中DSP核由Logic RBB、DSP RBB、互連網絡及I/O RBB構成。DSP RBB是由22位預加器、22x22位定點乘法器、48位累加器構成的乘積累加器,可實現(xiàn)乘加運算;Logic核不包含DSP RBB,由Logic RBB構成,Logic RBB包含4個6輸入LUT及8個FF(Flip-Flop,觸發(fā)器),用以實現(xiàn)可編程邏輯;I/O RBB包含4個FF,支持觸發(fā)、直通模式,其中2個連接輸入端,2個連接輸出端。RBB資源與內嵌BRAM、互連網絡、外部I/O接口共同構成了eFPGA的基本結構。
圖2 eFPGA結構
eFPGA邏輯重構流程如圖3所示。在系統(tǒng)設計階段對邏輯重構目標進行系統(tǒng)評估,完成各個功能模塊的設計。使用RTL(Register Transfer Level,寄存器傳輸級)語言編寫HDL文件輸入綜合工具,綜合后生成門級網表,映射到eFPGA邏輯器件。編譯器分析映射后網表文件生成資源利用評估報告。平面規(guī)劃實現(xiàn)對基本邏輯單元、數字處理單元的資源選擇及分配,生成Logic核與DSP核的陣列結構,并在DSP外圍插入內嵌BRAM。經過布局布線完成內部資源的連接,并生成時序報告。最后將布局布線后的網表文件編程配置,生成二進制比特流,預先存儲到外部FLASH中。邏輯重構時,比特流通過JTAG加載至eFPGA,完成配置后執(zhí)行目標功能。
圖3 eFPGA邏輯重構流程
隨著SoC芯片集成度的提高,為改善傳統(tǒng)電路可靠性測試方法的不足,業(yè)界提出了電路可測試性設計(design for testability,DFT)。其中的JTAG(joint testaction group,聯(lián)合測試工作組協(xié)議)技術利用邊界掃描(Boundary scan)實現(xiàn)電路內部的測試,并應用于在系統(tǒng)內可編程(In-System Programmable,ISP)技術中。
JTAG邊界掃描寄存器鏈由TAP(test access port)控制器控制。TAP是一個標準端口,有5個信號接口,分別為輸入接口:TCK(test clock,測試時鐘)、TRST(test reset,測試重置復位)、TMS(test mode select,測試模式選擇)、TDI(test data input,測試數據輸入)和輸出接口:TDO(test data output,測試數據輸出)。TCK驅動TAP 狀態(tài)機的運行,TRST對TAP控制器進行復位,TMS控制TAP狀態(tài)機的狀態(tài)轉換,TDI與TDO串行輸入和輸出測試數據。在正常工作模式下,邊界掃描寄存器鏈處于旁路狀態(tài),數據由Input輸入,從Output輸出;在測試模式下,邊界掃描寄存器鏈啟用,實現(xiàn)對eFPGA輸入輸出引腳及內部邏輯信號的觀測,也可以加載比特流到eFPGA內部電路,從而進行邏輯功能重構。通過TDI和TDO端口串行輸入和輸出測試數據,可實現(xiàn)對eFPGA的調試(如圖4所示)。
圖4 帶有JTAG邊界掃描寄存器鏈的eFPGA
通信基帶加速器正常工作時,信號由外部存儲器經DMA(direct memory access,直接存取)讀取送入總線,在總線上傳輸至通信基帶加速器,經過處理后將計算結果返回總線,進入下一級。數據通路為:外部存儲器—DMA—總線—通信基帶加速器—總線。當系統(tǒng)檢測到通信基帶加速器某模塊發(fā)生功能故障時,信號傳輸至故障模塊前經JTAG掃描鏈導入eFPGA,eFPGA實現(xiàn)故障模塊功能,在eFPGA中處理后,再返回通信基帶加速器進行故障模塊之后的處理。此時的數據通路為:外部存儲器—DMA—總線—通信基帶加速器—JTAG掃描鏈—eFPGA—JTAG掃描鏈—通信基帶加速器—總線。具體實現(xiàn)方法如圖5所示。
圖5 eFPGA互連關系重構
在通信基帶加速器外圍JTAG掃描鏈中接入故障監(jiān)測傳感器,當故障發(fā)生時,傳感器將故障信息發(fā)送至CPU,由CPU向eFPGA發(fā)送信息,eFPGA在內置FCU(FPGA configuration unit,F(xiàn)PGA配置單元)控制下進入配置模式(configuration mode)。FCU選擇Flash模式直接從Flash中讀取預先存儲的比特流信息,導入eFPGA中,編程配置內部邏輯。配置完成后,F(xiàn)CU將eFPGA轉換為用戶模式(user mode),執(zhí)行故障模塊的邏輯功能。信號在輸入通信基帶加速器故障模塊(如FFT算法模塊、FIR濾波模塊)前,在故障模塊的輸入端口被JTAG控制器讀取,越過故障模塊,經由JTAG掃描鏈接入eFPGA輸入端口。數據在eFPGA中處理后由輸出端口輸出,經JTAG掃描鏈傳輸回通信基帶加速器的下一功能模塊執(zhí)行后續(xù)的處理。借助JTAG掃描鏈屏蔽掉故障模塊重構了互連關系,從而形成了新的完整數據通路。
在通信基帶加速器中,OFDM(Orthogonal Frequency Division Multiplexing,正交頻分復用)技術由于能夠有效改善頻率選擇性衰落、提高頻譜利用率而得到了廣泛應用。選取OFDM典型算法:FFT(Fast Fourier Transform,快速傅里葉變換)算法、FIR(Finite Impulse Response,有限脈沖響應)濾波算法進行設計,用于eFPGA對通信基帶加速器邏輯重構的仿真及驗證。
OFDM基帶信號處理流程如圖6所示。比特流輸入后進行前向糾錯編碼及交織以提升糾錯能力,在串并變換模塊中,串行高速數據轉換為低速并行數據以減小傳輸中出錯概率。每一路并行數據分配到各個子信道上(即映射到相互正交的窄帶子載波上),經過IFFT(Inverse FFT,快速傅里葉逆變換)變換為時域的疊加信號,插入循環(huán)前綴后構成實際發(fā)送信號。經過處理的各路并行信號變換為串行信號,經過數/模變換、低通濾波,上變頻后進入信道中傳輸。在接收端執(zhí)行相反的流程。下變頻后進行低通濾波、模/數變換、串/并變換,各路并行信號分別去除循環(huán)前綴后通過FFT模塊,實現(xiàn)各個子載波上的數據提取,進而還原出每一路并行數據。經過并/串變換、解交織、前向糾錯譯碼,最終輸出原始比特流。OFDM實現(xiàn)了多載波調制,將信道劃分為若干相互正交的窄帶子載波,將串行高速數據轉化為并行低速數據調制到子信道上傳輸,從而有效抑制符號間干擾(inter-symbol interference, ISI),提升抗多徑和抗衰落能力。
圖6 OFDM基帶信號處理流程
由信號處理流程分析可見,OFDM系統(tǒng)調制、解調并行數據的核心算法是IFFT與FFT:在發(fā)送端通過IFFT模塊用多路基帶數字信號調制子載波并疊加;在接收端通過FFT模塊實現(xiàn)子載波分離并解調。
DFT(discrete fourier transform,離散傅里葉變換)實現(xiàn)了數字信號由時域到頻域的變換,是基帶數字信號處理的常用方法。DFT將時域的周期離散信號變換為頻域的離散傅里葉級數,將待分析的信號分解為相互正交的正弦波,以便提取信號的頻率及相位特征。DFT快速算法統(tǒng)稱FFT,顯著改善了DFT計算效率低的問題。對于N點序列的計算,傳統(tǒng)DFT算法需要N2次復乘、N(N-1)次復加,而FFT算法可將復乘及復加次數降低至約(N/2),有效提升了計算速度。
N點DFT定義為式(1):
m=0,1,…,N-1
(1)
基帶信號經調制進入信道傳輸的過程中,信道時變現(xiàn)象調制子載波,會削弱子載波間的正交性,引入子載波間干擾(inter-carrier interference, ICI)。在基帶信號進入信道之前使用低通濾波器濾除高頻分量,以抑制干擾。FIR濾波器的設計關鍵在于單位脈沖響應h[k]的設計,使增益響應滿足濾波指標要求。FIR低通濾波器將輸入信號x[n]與h[k]卷積運算得到輸出信號,高于截止頻率的高頻分量在卷積過程中被濾除,從而實現(xiàn)低通濾波。式(2)給出了FIR濾波算法的卷積公式,其中N為濾波器階數。
y[k]=x[k]*h[k]=h[k]*x[k]=
(2)
FIR低通濾波器在數字電路中由延遲線、加法器、乘法器組成的復合結構實現(xiàn),每個乘法器對應一個FIR系數h[k],即Tap(抽頭)權重。h[k]的個數k與濾波器階數N相等。圖7所示為40階FIR濾波器結構。
圖7 40階FIR濾波器結構
本文選取40Tap的FIR低通濾波算法進行eFPGA仿真。設計偶對稱的系數序列作為單位脈沖響應h[k],以實現(xiàn)低通濾波功能。使用Matlab繪圖,如圖8所示。
圖8 抽頭系數設計
使用28 nm工藝制程eFPGA評估板驗證FFT算法與FIR算法。使用綜合工具將HDL文件綜合后生成EDIF文件,和IO定義文件、RAM定義文件、Floorplan文件輸入eFPGA編譯器進行編譯,經過網表映射得到資源利用報告。報告顯示了實現(xiàn)設計所需要的三類RBB基本單元(Logic、DSP、I/O)及查找表、觸發(fā)器的數量。根據資源需求計算邏輯核、DSP核的數量,進而預測最小面積。
映射后網表經平面規(guī)劃、布局布線后進行靜態(tài)時序分析(Static Timing Analysis,STA)得出各時鐘域的時鐘扇出以及可實現(xiàn)的最高頻率、平均功耗。
根據布局布線后網表生成Bitstream(比特流),下載到eFPGA中完成配置。輸入激勵信號執(zhí)行邏輯功能。eLA(embedded Logic Analyzer,嵌入式邏輯分析儀)設計在eFPGA上運行,實現(xiàn)對內部信號的觀測及功能的調試。利用eLA讀取測試結果,生成波形文件。使用Gtkwave工具觀測波形。
對不同頻率的連續(xù)正弦波疊加后采樣,得到離散數據,作為激勵輸入。設定加權系數為0.25、0.25、0.75,對頻率為1.5625 MHz、6.25 MHz、25 MHz的cos函數、sin函數分別疊加得到兩路連續(xù)信號,再以200 MHz的采樣頻率分別采樣得到兩路離散信號,作為實部、虛部兩路正交信號激勵。使用Matlab仿真256點FFT,得到頻譜圖,如圖9所示。
圖9 FFT算法Matlab仿真結果
圖中縱坐標與信號幅值成正比例關系,橫坐標為點數,每一個點對應一個頻率。由于采用256點FFT算法,采樣頻率設定為200 MHz,故第256點對應200 MHz頻率。以此類推,第k個點對應頻率為(k-1)*(200/256)MHz。由FFT理論可知,復信號實部FFT實部圖像偶對稱,復信號虛部FFT實部圖像奇對稱,復信號FFT實部圖像是兩個圖像的疊加結果,負頻率抵消,正頻率加倍。由復信號FFT實部頻譜圖可知,在第2點、第8點、第32點處出現(xiàn)明顯峰值,且比例為1:1:3,對應頻率1.562 5 MHz、6.25 MHz、25 MHz。
Bitstream下載至eFPGA評估板完成配置,輸入激勵后生成波形文件。在Gtkwave中觀測驗證結果。從圖10中可以看出,指定RDY為eLA_TRIGGER,在20 ns處RDY拉低后開始執(zhí)行FFT算法。截取20 ns后1024 ns波形為一個周期,觀測到FFT實部輸出信號DOR在第8 ns、第32 ns、第128 ns處出現(xiàn)明顯峰值,幅度比為1:1:3,分別對應1.562 5 MHz、6.25 MHz、25 MHz頻率。驗證結果與Matlab仿真結果對比,頻譜基本一致。
圖10 FFT算法eFPGA評估板驗證結果
使用eFPGA編譯器進行資源利用評估,評估結果如表1所示。
表1 FFT算法eFPGA資源利用與性能評估
由表1可見,此FFT算法仿真可實現(xiàn)177.78 MHz的工作頻率。eFPGA功耗為82.67 mW,面積為6.4 mm2,面積及功耗較為理想,可以滿足SoC集成的要求。
設定采樣頻率為200 MHz,截止頻率為20 Mhz。設計Tap個數為40的低通濾波器。使用Matlab計算得到圖11中的增益響應。
圖11 FIR濾波器增益響應MATLAB仿真結果
圖中橫坐標為歸一化頻率,數值1處與200 MHz頻率對應。在0~0.1之間(對應0~20 MHz頻段)增益響應為0 dB,0.1(20 MHz頻率)后快速衰減,在0.2(40 MHz)后降至-40 dB。此FIR濾波器模型可濾除高于20 MHz頻率的信號分量。
將編譯后得到的Bitstream加載到eFPGA評估板完成配置,將頻率為31.25 MHz、7.8125 MHz的兩路正弦波疊加后采樣,得到輸入信號DI,作為激勵輸入eFPGA。計算后輸出波形文件,顯示輸出信號DO近似為7.8125 MHz正弦波。
圖12 FIR算法eFPGA評估板驗證結果
使用eFPGA編譯器進行資源利用評估,評估結果如表2所示。
表2 FIR濾波器eFPGA資源利用與性能評估
由表2可見,此FIR濾波器仿真可實現(xiàn)211.73 MHz的工作頻率。eFPGA功耗為115.17 mW,面積為4.8 mm2,面積及功耗較為理想,可以滿足SoC集成的要求。
本文提出了一種基于eFPGA的邏輯重構方案,用于通信基帶加速器發(fā)生故障時實現(xiàn)功能自愈。通過JTAG掃描鏈重構互連關系,將eFPGA接入數據通路,利用eFPGA重構故障模塊的邏輯,進而代替通信基帶加速器執(zhí)行特定功能實現(xiàn)自愈。使用eFPGA編譯器進行典型算法仿真,并在eFPGA評估板上完成驗證,結果顯示eFPGA有比較理想的面積與功耗,預期的設計功能可以實現(xiàn)。此方案克服了傳統(tǒng)自愈方案資源開銷大、執(zhí)行效率低的缺陷,可有效提高系統(tǒng)可靠性與靈活性,為電路自愈技術提供了參考思路。