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