劉鑫
(中國電子科技集團公司第五十八研究所,江蘇無錫 214072)
在國產(chǎn)化芯片的生產(chǎn)實踐中,動態(tài)老煉試驗是篩選評估芯片性能的重要環(huán)節(jié)[1]。老煉試驗高溫箱外的測試控制基板以FPGA 為控制核心,需要向高溫箱內(nèi)的老煉試驗板上的所有待測芯片提供激勵信號,同時接收來自待測芯片的反饋信號。
在批產(chǎn)考核試驗時,為節(jié)約設備資源、提高測試效率,需要同時對多顆芯片進行動態(tài)老煉試驗,而大量外接的信號線會產(chǎn)生復雜的干擾現(xiàn)象,導致動態(tài)老煉中試驗芯片的工作狀態(tài)異常,進而影響芯片的老煉效果和對芯片性能的評估意義[2-3]。數(shù)字濾波技術的引入,能夠有效降低數(shù)字通信接口的誤碼率,提高老煉試驗的穩(wěn)定性和可靠性,對國產(chǎn)芯片的批產(chǎn)篩選考核有著重要的意義。
在嵌入式及其他的數(shù)字系統(tǒng)中,信號的傳輸過程往往會受到來自空間環(huán)境的干擾影響,導致信號失真、抖動、突變等異常情況出現(xiàn),嚴重時會直接導致電路工作異常[4]。干擾可能來源于電磁輻射、磁場耦合、靜電等情況,具有隨機性、非固定等特點。
在國產(chǎn)化芯片的老煉環(huán)境下,承載試驗芯片的老煉板卡置于高溫箱中,并通過等長排線引出所有I/O 信號,接入外部的FPGA 控制板上。信號傳輸距離的延長以及生產(chǎn)現(xiàn)場復雜的電磁環(huán)境,導致出現(xiàn)隨機的擾動信號,干擾了正常信號的完整傳輸,嚴重時會影響待測芯片的正常功能。芯片動態(tài)老煉試驗系統(tǒng)組成示意圖如圖1 所示。
圖1 動態(tài)老煉試驗系統(tǒng)示意圖
為了降低干擾和噪音帶來的影響,通常采用硬件和軟件相結合的辦法,對測試系統(tǒng)進行優(yōu)化。但是對于具體的老煉測試環(huán)境和已有設備來說,硬件優(yōu)化的提升空間非常有限,只能通過軟件優(yōu)化的方式提升傳輸信號的質(zhì)量,提高容錯閾值。FPGA 軟件在采集信號時可以采用數(shù)字濾波的方法來抑制或消除干擾信號,通過一定的計算程序,對采集的數(shù)據(jù)進行某種處理,從而消除或減弱干擾噪聲的影響,進而提高動態(tài)老煉設備的穩(wěn)定性和可靠性。
數(shù)字濾波因可編程、可移植等特點,被廣泛應用于各種數(shù)字控制系統(tǒng)中,常用到的數(shù)字濾波方法有程序判斷法、中值濾波法、算術平均濾波法、滑動平均濾波法、一階滯后濾波法等[5-6]。
老煉待測芯片的控制及通信信號經(jīng)由多組排線接入到FPGA 控制板的IO 引腳上,由此帶來的串擾、毛刺、噪聲等干擾同樣進入到FPGA,這就需要FPGA程序在正常執(zhí)行待測芯片控制邏輯前,需要先對接收到的信號進行數(shù)字濾波處理。
當FPGA 接收器接收到的數(shù)據(jù)具有一定的規(guī)律性及預判性時,可以采用程序判斷的方法進行數(shù)字濾波。程序判斷法的基本原理是在臨近采樣的N組數(shù)據(jù)中,相近的兩組數(shù)據(jù)差異不會超過特定閾值ΔE,即:
在設計FPGA 軟件時,程序判斷法的實現(xiàn)相對簡單,能夠有效應對系統(tǒng)出現(xiàn)的偶發(fā)性脈沖干擾,如帶電操作老煉設備時,接口松動產(chǎn)生的脈沖信號,能夠被有效濾除。但該方法中閾值ΔE的選取往往通過經(jīng)驗預判得到,無法根據(jù)現(xiàn)場情況靈活切換新值。同時為防止濾除有效信號,閾值ΔE的選取不能過于嚴苛,使得閾值ΔE的選取一般只能依靠經(jīng)驗或者大量試驗的方式得到,程序缺乏適應性。
中值濾波算法是采用連續(xù)采樣N次數(shù)據(jù)(N取奇數(shù))后進行排序,然后提取中間值為此次或此段時間的有效數(shù)值的方法。該算法實際上是對采集數(shù)據(jù)的排列取值運算過程,能夠有效應對數(shù)字采集系統(tǒng)中緩慢變化或者控制系統(tǒng)反饋波動不大的應用場景。但因為用于濾波提取的樣本空間包含N個采樣數(shù)據(jù),當N值過小時,濾波效率低下;當N值過大時,會造成較大的反應遲滯,因此對于FPGA 數(shù)字控制系統(tǒng)中的毛刺或脈沖干擾無法有效應用。
算術平均濾波法與前述中值濾波算法相同的是均需連續(xù)采樣N次數(shù)據(jù)作為樣本空間,不同在于其后的處理不再進行排序,而是采用逐個疊加樣本數(shù)據(jù)后再取平均值的方式獲取有效采樣數(shù)值,即:
基于累加均值的采樣計算方式適用范圍較廣,能夠有效抑制數(shù)字接收系統(tǒng)出現(xiàn)的突發(fā)性干擾,但相應地會隨著干擾數(shù)量的增多,導致有效采樣數(shù)值產(chǎn)生一定程度的偏離,對干擾的抑制作用隨著N值的減小而降低,而過大的N值又會導致降低控制系統(tǒng)反饋響應的效率。
為了提高系統(tǒng)動態(tài)響應的能力,對上述算術平均算法進行改進,得到滑動平均濾波算法,即采用隨時間變化的動態(tài)樣本空間方式,提取有效采樣數(shù)值。該算法能夠有效提高樣本數(shù)據(jù)的利用效率,不用丟棄前一次的所有樣本數(shù)據(jù),而是隨著控制系統(tǒng)反饋數(shù)據(jù)的不斷更新,以向前滑動的方式剔除上一周期的M個樣本數(shù)據(jù),再添加新采集的M個樣本數(shù)據(jù),然后重新計算新的有效采樣數(shù)值,即:
由上式可以看出,當N=M時,即總采樣空間數(shù)等于滑動樣本空間數(shù)時,算法還原為算術平均濾波算法,系統(tǒng)動態(tài)響應能力較低;隨著滑動空間樣本數(shù)M值的減小,系統(tǒng)的動態(tài)響應能力得到提高,并在M=1 時達到最大值,但與此同時,軟件濾波介入的計算量大幅增加,尤其對于FPGA 這種資源敏感型的器件而言,需要權衡數(shù)字控制系統(tǒng)對動態(tài)能力的實際需求以及FPGA的片上資源,選取合適的N值與M值。
還有其他一些常見的數(shù)字濾波算法,如一階滯后濾波法、加權平均濾波法等,在實際的數(shù)字接口電路中也可酌情應用。
國產(chǎn)芯片的動態(tài)老煉設備中,F(xiàn)PGA 控制板作為測試芯片的遠程管理設備,需要實時發(fā)送控制指令并反饋芯片的運行狀態(tài)[7]。為滿足多工位同時老煉的需要,F(xiàn)PGA 控制板需盡可能引出更多的I/O 引腳。綜合考慮成本、周期以及批測芯片的實際工況需求,選擇XILINX 公司ARTIX-7 系列的XC7A100T 芯片作為主控芯片,構建老煉控制板平臺。該芯片以28 nm高性能低功耗工藝為基礎,具備101k 個邏輯單元以及最大285 個I/O 引腳,能夠提供同類最佳的單位功耗性能。
由于FPGA 控制板到老煉試驗板之間需要通過長距離排線進行連接,因此在FPGA 的外接引腳處串接了I/O 驅(qū)動器,能夠起到隔離信號、提高信噪比的作用,并增強FPGA 控制板的外設驅(qū)動能力[8-10]。老煉控制板原理設計框圖如圖2 所示。
圖2 老煉控制板原理框圖
在設計控制板的硬件PCB時,需注意板級干擾問題,尤其對于有大量并行I/O引腳的老煉控制板,相鄰的引線之間容易發(fā)生串擾現(xiàn)象。布線時可以采用錯位、錯層、鋪地等方式,避免板級干擾的引入[11-12]。
由于國產(chǎn)化芯片的種類繁多,因此老煉控制板需要針對不同的待測產(chǎn)品進行適配性設計,但作為底層通信模塊來說,仍以異步串行通信、ASIC 自定義總線通信、網(wǎng)絡通信、離散開關信號通信等為主要形式。在典型的底層通信模塊中嵌入FPGA 濾波程序模塊,實現(xiàn)數(shù)字濾波功能。
ASIC 電路接口中常用到總線通信方式,由地址總線、數(shù)據(jù)總線、讀寫使能信號以及片選信號等組成邏輯時序完成數(shù)據(jù)交互,在短距離通信中應用廣泛,具有效率高、容易實現(xiàn)等優(yōu)點。但由于老煉芯片的并行總線需要通過外置的延長排線接入FPGA 老煉控制板,因此實際的信號質(zhì)量會隨著通信距離的延長產(chǎn)生惡化效應,帶來串擾、毛刺、波形不完整等干擾問題,影響FPGA 對老煉芯片的實際控制能力,甚至會導致芯片工作異常[13]。因此在總線收發(fā)模塊中,需要通過有效的數(shù)字濾波方式抑制干擾,凈化FPGA 軟件控制環(huán)境。某型國產(chǎn)ASIC 芯片的自定義總線通信時序圖如圖3 所示。
圖3 并行總線時序圖
從圖3 可以看到該時序是典型的并行總線通信時序,隨著片選信號CS 以及讀寫WR/RD 信號的使能,對總線地址ADDR 對應的數(shù)據(jù)DATA 進行操作。但毛刺、串擾等信號對總線接收時序產(chǎn)生影響,需要通過數(shù)字濾波模塊進行濾除。在編寫Verilog 代碼時,首先對單個離散信號進行同步處理,濾除毛刺信號,然后對所有并行信號的時序進行同步整形,最后得到待處理的總線通信信號,送入下一級協(xié)議處理模塊中進行處理,并在此進行數(shù)字濾波。總線協(xié)議處理邏輯狀態(tài)流程圖如圖4 所示。
圖4 總線協(xié)議處理狀態(tài)流程圖
總線協(xié)議解析狀態(tài)機采用基于FPGA 內(nèi)部DRAM 緩存空間的滑動均值濾波方式進行數(shù)據(jù)采樣。程序在IDLE 時為空閑狀態(tài),以CS 下降沿為操作指令,WR 和RD 進入相應的處理流程。以接收為例,DATA 總線數(shù)據(jù)的接收不再采用單次中值采樣的方式獲得,而是通過累加器計數(shù)重復采樣ByteNum次,將總線數(shù)據(jù)緩沖到8 bit×256 的DRAM 空間后,再進行均值運算,從而得到該次并口總線接收端的采樣數(shù)值。對應于總線操作器件的總樣本空間,以ByteNum 為滑動樣本采樣數(shù)量,向前滾動接收數(shù)據(jù),并在CS 拉高后完成全部采樣過程。
對上述總線協(xié)議解析模塊進行仿真驗證,使用Verilog HDL語言編寫Testbench仿真激勵文件,并采用ModelSim SE 軟件對上述文件代碼進行邏輯仿真[14],部分仿真波形如圖5 所示。
圖5 并口總線仿真時序圖
在激勵文件的總線信號中隨機加入毛刺、脈沖等信號,并對輸入的時序適當偏移,模擬干擾引入后的實際波形,重新進行仿真,觀察總線協(xié)議解析模塊輸出的數(shù)據(jù),顯示與理想狀態(tài)下的結果基本保持一致;當屏蔽狀態(tài)機中數(shù)字濾波算法模塊后,重新仿真發(fā)現(xiàn)解析模塊輸出的數(shù)據(jù)出現(xiàn)錯誤、不穩(wěn)定等現(xiàn)象,甚至狀態(tài)機流程無法正常進行。
串行通信是最常見的通信形式,具有容錯性強、布線簡單、距離長等優(yōu)點,在數(shù)字通信領域應用廣泛[15-16]。國產(chǎn)化芯片的外設接口通常包括UART 異步串行接口、SPI 同步串行接口、I2C 接口等。從實際使用情況看,UART、I2C 等低速通信接口的速率較低,老煉工況下的干擾對其通信的影響很小。但對于同步時鐘在10 MHz 以上的SPI 通信,在芯片老煉時,經(jīng)常出現(xiàn)控制板FPGA 對芯片接口訪問失敗的現(xiàn)象。因此需要在SPI 通信解析模塊中加入數(shù)字濾波算法,增強可靠性。以某型國產(chǎn)芯片的三線制SPI 接口通信為例,該接口的讀取時序圖如圖6 所示。
圖6 三線制SPI讀取時序圖
SPI 通信的常規(guī)采集方式是以SCLK 的上升沿為采樣觸發(fā)信號獲取對應的SDIO 數(shù)據(jù),但當SCLK 信號出現(xiàn)干擾時,可能導致通信接收狀態(tài)機工作異常,同時SDIO 信號的干擾也會導致采樣數(shù)值不準確,因此改為以系統(tǒng)高速時鐘采樣并緩沖的SCLK 和SDIO數(shù)值為總樣本空間,通過滑動均值的方式計算獲取有效采樣數(shù)值的辦法。部分數(shù)字濾波算法狀態(tài)流程圖如圖7 所示。
圖7 SPI采樣數(shù)字濾波狀態(tài)流程圖
上述SPI 數(shù)字濾波算法經(jīng)過改進可以應用于其他形式的串行通信接口,如UART、I2C等,能夠有效提高老煉測試時FPGA 對國產(chǎn)待測芯片的控制效率。
在對某型國產(chǎn)化芯片的老煉測試前,需要使用優(yōu)化設計的FPGA 老煉控制板重新進行調(diào)試。采用示波器、邏輯分析儀等設備直接觀測控制板接收到的信號,可以明顯發(fā)現(xiàn)信號中夾雜著大量不規(guī)則的毛刺以及串擾信號。分別采用無數(shù)字濾波算法模塊的原版FPGA 程序和有嵌入數(shù)字濾波算法模塊的新版FPGA 程序進行調(diào)測,通過大量多次發(fā)送數(shù)據(jù)包,統(tǒng)計接收端完整接收數(shù)據(jù)的次數(shù),計算實際丟失率,測試情況如表1 所示。
表1 FPGA控制程序測試結果對比
從表1 可以看出,加入數(shù)字濾波算法模塊的FPGA 通信穩(wěn)定性得到大幅提升,確保常溫下待測芯片的工作狀態(tài)穩(wěn)定可靠。高溫老煉時,需要同時將多個老煉試驗板放入溫度試驗箱中,然后再將所有排線從專用測試窗口中引出,再分別接入老煉試驗箱外對應的FPGA 老煉控制板,同時將溫箱的溫度升至125 ℃。嚴苛的測試環(huán)境會進一步惡化芯片與FPGA 之間的通信效率。經(jīng)實際測試,采用數(shù)字濾波技術的FPGA 控制程序仍能穩(wěn)定接收待測芯片的通信信號,且芯片工作狀態(tài)穩(wěn)定,無異常狀態(tài)。
該文首先分析了國產(chǎn)芯片動態(tài)老煉環(huán)境的復雜性,并給出適用于該環(huán)境下的幾種數(shù)字濾波算法,其次在經(jīng)過優(yōu)化的FPGA 老煉控制板平臺上設計實現(xiàn)了兩種典型的通信接口程序,最后在老煉設備中完成調(diào)試并測試了實際的通信情況,可以看到數(shù)字濾波模塊的應用能夠有效應對惡劣的動態(tài)老煉試驗環(huán)境,提高了數(shù)字接口通信效率,增強了老煉測試的穩(wěn)定性和可靠性,對國產(chǎn)化芯片的批量生產(chǎn)測試具有重要意義。