1 引言
隨著現(xiàn)場(chǎng)可編程門陣列( FPGA) 芯片在商業(yè)、軍事、航空航天等領(lǐng)域越來越廣泛的應(yīng)用, 其可靠性和可測(cè)試性也顯得尤為重要。對(duì)設(shè)計(jì)人員來說,FPGA 的使用相當(dāng)靈活。然而, 正是這種應(yīng)用的不確定性和重復(fù)可編程性, 增加了芯片測(cè)試的難度。目前, 已有較多工作集中于基于SRAM 結(jié)構(gòu)的FPGA 測(cè)試方法研究[ 1-7] 。其核心問題是建立什么樣的測(cè)試模型, 以及施加什么樣的測(cè)試激勵(lì), 使故障激活, 同時(shí), 還能在可及端測(cè)量出來。因此, 還要確定在什么地方施加激勵(lì), 在什么地方進(jìn)行測(cè)量。
根據(jù)需求, FPGA 的測(cè)試大體可分為面向制造的測(cè)試過程( MT P) 和面向應(yīng)用的測(cè)試過程( AT P)兩類。MT P 主要是從制造商的角度來測(cè)試, 測(cè)試成本主要體現(xiàn)在測(cè)試向量集長(zhǎng)度所決定的測(cè)試時(shí)間的費(fèi)用上。MTP 主要針對(duì)可編程邏輯塊( CLB) 、輸入輸出單元( IOB ) 、可編程連線( PI ) 及編程用的SRAM 等進(jìn)行測(cè)試。AT P 是在應(yīng)用級(jí)上的測(cè)試,也就是把FPGA 配置為特定的功能進(jìn)行測(cè)試, 具有很強(qiáng)的針對(duì)性, 測(cè)試過程相對(duì)簡(jiǎn)單。但是, 不管是MTP 還是AT P, 都至少有一個(gè){ 測(cè)試配置( TC) , 向量實(shí)施( TS) } 的過程[ 6] 。完整的測(cè)試通常需要反復(fù)進(jìn)行配置和測(cè)試。一般來說, 編程比較費(fèi)時(shí)且編程后的配置速度較低。因此, FPGA 測(cè)試的關(guān)鍵在于如何在保證故障覆蓋率的前提下, 用最少的編程次數(shù), 將FPGA 低速在線配置和高速測(cè)試有機(jī)地結(jié)合起來, 從而實(shí)現(xiàn)完整的測(cè)試。
本文介紹一種基于SRAM 結(jié)構(gòu)FPGA 邏輯資源的測(cè)試編程方法, 并以Xilinx 公司的XC4000 系列[ 8] 為例, 在BC3192V50 數(shù)模混合集成電路測(cè)試系統(tǒng)上, 通過從串模式, 實(shí)現(xiàn)數(shù)據(jù)的配置和測(cè)試。
2 基于SRAM 結(jié)構(gòu)的FPGA
從編程原理來說, FPGA 主要有基于反熔絲( arrtifuse) 結(jié)構(gòu)和基于SRAM 結(jié)構(gòu)兩大類。XC4000 系列是基于SRAM 結(jié)構(gòu)的, 其邏輯功能的配置基于內(nèi)部陣列分布的SRAM 結(jié)構(gòu), 即通過對(duì)這些SRAM 進(jìn)行不同的加電配置, 確定各個(gè)部分的邏輯功能; 也可通過加載不同的配置數(shù)據(jù), 實(shí)現(xiàn)邏輯功能的不斷更新和反復(fù)改寫。實(shí)際上, 就是由加載于SRAM 上的配置數(shù)據(jù)決定和控制各個(gè)CLB、IOB 和PI 等的邏輯功能和相互之間的連接關(guān)系?;赟RAM 結(jié)構(gòu)FPGA 的另一個(gè)重要特征, 在所謂的邏輯單元陣列( LCA) 結(jié)構(gòu)。正是這個(gè)LCA 分布結(jié)構(gòu), 使之具備門陣列和可編程器件的雙重特征。LCA 像一個(gè)門陣列, 通過內(nèi)部可編程連線, 把可編程邏輯塊按設(shè)計(jì)的要求連接起來, 實(shí)現(xiàn)陣列中的邏輯功能。
另外, 由于采用了先進(jìn)的半導(dǎo)體工藝和改進(jìn)的結(jié)構(gòu), XC4000E 系列能夠支持高達(dá)80 MHz 的系統(tǒng)時(shí)鐘頻率和超過150MHz 的內(nèi)部性能。
3 測(cè)試編程
通過編程, 將每一行的CLB 連接起來, 形成一個(gè)一維陣列[ 1-2] ; 再將每個(gè)陣列作為整體進(jìn)行測(cè)試,如圖1 所示。
?
故障模型采用多CLB 混合故障模型, 即一個(gè)FPGA 中可有多個(gè)邏輯單元發(fā)生故障, 而邏輯單元內(nèi)的故障對(duì)不同的電路采用不同的故障模型。對(duì)于查找表結(jié)構(gòu), 假定其可有固定為"0"或"1"的固定故障; 而對(duì)于多路選擇器和觸發(fā)器, 則假定可發(fā)生各種功能故障[ 4-5] 。
每個(gè)陣列中的CLB 都按圖1 所示的連接方式進(jìn)行編程, 前一個(gè)CLB 的輸出信號(hào)作為后一個(gè)CLB 的輸入信號(hào), 只有左右兩端的CLB 與IOB 相連。所有CLB 都設(shè)計(jì)編程為相同的電路結(jié)構(gòu), 既是被測(cè)電路( CUT) , 也是故障傳遞電路( CFT) 。CLB 中的兩個(gè)查找表G 和F, 均設(shè)計(jì)為具有一個(gè)故障激活端( T) 、兩個(gè)故障傳遞端( Yn 和Xn) 和一個(gè)故障傳遞方式選擇端
( SEL) 的四輸入邏輯結(jié)構(gòu), 且使用相同的T 輸入和SEL 輸入。查找表F 的兩個(gè)輸入端( Yn 和Xn) 與此CLB 內(nèi)兩個(gè)觸發(fā)器的輸出端( QYn 和QXn) 相連, 用于檢測(cè)和傳遞觸發(fā)器的故障信號(hào)。查找表G 和F 的兩個(gè)輸出信號(hào)( Yn 和Xn) 作為下一個(gè)CLB 中查找表G 的輸入信號(hào)( Yn+ 1 和Xn+ 1) 。
故障傳遞電路采用基于與門和或門的電路形式[ 4 ] 。用SEL 輸入控制是或門傳輸還是與門傳輸。此時(shí), 如果有一個(gè)或多個(gè)CLB 的輸入輸出端有正常為1( 0) 、錯(cuò)誤為0( 1) 的故障信息, 其輸出端總能觀察到故障信息0( 1) 。
對(duì)所有陣列并行地進(jìn)行測(cè)試, 可以減少測(cè)試時(shí)間和所需要的IOB。同時(shí), 因?yàn)樗蠧LB 都是同樣的編程結(jié)構(gòu), 因此, 可共用時(shí)鐘和垂直輸入, 不同陣列的輸入也可共用, 從而進(jìn)一步減少了所需的IOB[ 1-2] 。
但是, 由于編程后的陣列是一個(gè)時(shí)序陣列, 故一定程度上增加了測(cè)試此陣列所需要的時(shí)間。另一方面, 由于每個(gè)CLB 在被測(cè)試的同時(shí), 還要用來傳遞故障信息, 因此, 測(cè)試精度相對(duì)單獨(dú)用一行CLB 來傳遞故障信息的方法[ 3-5] 有所降低。
4 FPGA 的配置
通常, 將配置數(shù)據(jù)存放于FPGA 外附的PROM或EPROM 中, 在系統(tǒng)加電或需要時(shí), 自動(dòng)載入SRAM 中; 亦可直接由微處理器控制, 載入數(shù)據(jù), 且只要一直保持在加電狀態(tài), 配置數(shù)據(jù)就不會(huì)丟失。FPGA 的在線配置, 就是把測(cè)試系統(tǒng)用作一個(gè)處理器, 再通過數(shù)字通道, 將配置數(shù)據(jù)裝載到LCA 器件, 從而確定其內(nèi)部各部分功能和連線方式的過程。
4. 1 配置模式
XC4000 系列FPGA 根據(jù)配置模式管腳( M0、M1、M2) 的不同輸入, 產(chǎn)生三種是自裝載的主模式:主串模式( 000) 、主并向上模式( 100) 和主并向下模式( 110) ; 兩種外設(shè)模式: 同步外設(shè)模式( 011) 和異步外設(shè)模式( 101) ; 一種采用菊花鏈器件的串行從模式: 從串模式( 111) ; 以及一種附加的允許高速并行配置高容量XC4000EX 器件的從模式: 特快模式( 010) 。
本文采用從串模式, 通過( 111) 模式管腳或缺省模式來選擇。此模式為系統(tǒng)加載FPGA 配置程序提供了最簡(jiǎn)單的接口。串行數(shù)據(jù)DIN 和時(shí)鐘CCLK 可同時(shí)由一個(gè)微處理器的I/ O 口從外部提供。
4. 2 配置數(shù)據(jù)的格式
從串模式的配置數(shù)據(jù)以一個(gè)40 位的頭文件開始, 接著是一些實(shí)際的配置數(shù)據(jù)信息段, 每個(gè)信息段以一個(gè)0 起始、4 個(gè)錯(cuò)誤校驗(yàn)位結(jié)束, 長(zhǎng)度和數(shù)目取決于器件的類型。在配置結(jié)束時(shí), 提供啟動(dòng)序列的4 個(gè)時(shí)鐘, 要求附加啟動(dòng)的字節(jié)數(shù)據(jù)。具體來說,XC4006E 的配置文件長(zhǎng)度為119, 840 位, 實(shí)際寫入119, 792 位。
4. 3 配置管腳和時(shí)序分析
?
?
?
?
5 系統(tǒng)的資源分配和測(cè)試實(shí)現(xiàn)
下面介紹如何用BC3192V50 測(cè)試系統(tǒng)實(shí)現(xiàn)FPGA 配置數(shù)據(jù)的加載和測(cè)試。該系統(tǒng)是由北京自動(dòng)測(cè)試技術(shù)研究所開發(fā)研制的VXI 總線型數(shù)?;旌霞呻娐窚y(cè)試系統(tǒng)。
5. 1 配置和測(cè)試資源
FPGA 的每個(gè)配置和測(cè)試過程, 需要兩個(gè)不同的測(cè)試程序{ TC, T S} 分別來完成。它們并存于系統(tǒng)內(nèi)存里, 可隨時(shí)激活, 但所需要的時(shí)鐘頻率和存儲(chǔ)空間不同。
首先, 通過TC程序加載配置數(shù)據(jù), 其速度比較低。配置后, 在持續(xù)供電的條件下, 通過TS 程序進(jìn)行高速的功能測(cè)試和參數(shù)測(cè)試。
其次, 配置和測(cè)試過程使用的數(shù)字通道資源不同, 同一管腳在兩個(gè)過程的通道定義也有所不同。配置程序只用與配置相關(guān)的管腳; 測(cè)試程序要根據(jù)設(shè)計(jì)的邏輯功能確定管腳, 且不可以超過芯片的全部用戶可編程IOB 數(shù)。例如, 對(duì)于具體的芯片
XC4006E-4PC84C 來說, 其最大用戶可編程IOB 為61 個(gè), 文中的編程方法使用了8 個(gè)輸入激勵(lì)數(shù)字通道和32 個(gè)輸出響應(yīng)通道。
BC3192V50 測(cè)試系統(tǒng)最多可配置為8 塊通道板256 路高速數(shù)字測(cè)試通道, 最大測(cè)試速率為50MHz( 非復(fù)用) , 可選定配置后芯片電源控制方式( 掉電/ 不掉電) 。通過這種模塊化結(jié)構(gòu)的系統(tǒng)設(shè)計(jì),就可以實(shí)現(xiàn)配置和測(cè)試過程的多速率、多通道和持續(xù)上電等要求。
5. 2 配置程序自動(dòng)生成
根據(jù)設(shè)計(jì)的邏輯電路結(jié)構(gòu)、CLB 之間連線方式和測(cè)試向量等, 用Xilinx 公司ISE 集成綜合環(huán)境,對(duì)FPGA 進(jìn)行Verilog 設(shè)計(jì)輸入和編譯, 生成所需要的位流文件。但由于該文件比較長(zhǎng), 按字節(jié)配置需要幾十萬甚至幾百萬條向量, 且內(nèi)容隨編程信息的變化而變化。因此, 手工編制向量就顯得很不切實(shí)際。必須采用自動(dòng)生成的方法, 實(shí)現(xiàn)配置數(shù)據(jù)的加載。為此, 專門開發(fā)了一個(gè)測(cè)試程序生成軟件, 用于將生成的位流文件轉(zhuǎn)化成系統(tǒng)可以識(shí)別的文本文件, 通過調(diào)用該文件, 實(shí)現(xiàn)數(shù)據(jù)的加載。
5. 3 配置數(shù)據(jù)加載
BC3192V50 測(cè)試系統(tǒng)采用了循環(huán)、跳轉(zhuǎn)、子程序調(diào)用和嵌套等指令, 數(shù)字通道具有歸零、歸一等激勵(lì)格式, 且分別有激勵(lì)、響應(yīng)和記錄存儲(chǔ)區(qū), 便于跟蹤、調(diào)試測(cè)試程序, 測(cè)試向量深度為256 k( 標(biāo)準(zhǔn)) / 1M( 擴(kuò)展) / 4 M( 最大) , 內(nèi)存中最多可以加載256 個(gè)測(cè)試程序, 等等。通過這些功能, 可以有效控制配置數(shù)據(jù)順利快速的加載。
5. 4 功能和參數(shù)測(cè)試
完成配置后的FPGA 就變成一個(gè)具有某種特定功能的器件, 可作為普通邏輯器件進(jìn)行測(cè)試。所不同的是, FPGA 的I/ O 管腳非常多, 且可分別配置為TT L 或CMOS 兼容兩種類型。它們的直流參數(shù)能直接反映出FPGA 的性能。在功能測(cè)試通過后, 必須用精密測(cè)量單元( PMU ) , 對(duì)所有I/ O 管腳進(jìn)行參數(shù)測(cè)試, 才比較完整。但參數(shù)測(cè)試往往比較費(fèi)時(shí)。
BC3192V50 提供每16 管腳一個(gè)PMU 的并行進(jìn)行參數(shù)測(cè)試能力, 通過采用這種多PMU 并行測(cè)試子系統(tǒng), 非常有效地節(jié)省了測(cè)試時(shí)間。
綜上所述, 在測(cè)試系統(tǒng)BC3192V50 上測(cè)試FPGA, 實(shí)質(zhì)上就是通過測(cè)試系統(tǒng), 將FPGA 配置成所設(shè)計(jì)的邏輯結(jié)構(gòu), 然后施加測(cè)試向量, 完成配置后的功能和參數(shù)測(cè)試, 且根據(jù)需要, 可多次重復(fù)這種{ T C, T S} 的過程。
6 結(jié)束語
本文在國產(chǎn)數(shù)?;旌霞呻娐窚y(cè)試系統(tǒng)BC3192V50 上, 實(shí)現(xiàn)了以XC4000 系列為例的基于SRAM 結(jié)構(gòu)FPGA 可編程邏輯資源的測(cè)試。所闡述的測(cè)試系統(tǒng)的配置方法和實(shí)現(xiàn)過程具有很強(qiáng)的通用性。適用于支持串行配置, 并可通過{ T C, T S} 程序集, 完成測(cè)試過程的FPGA。但是, 當(dāng)測(cè)試方法改變后, 所需要的測(cè)試程序集{ T C, T S} 的數(shù)量和內(nèi)容也會(huì)改變。
評(píng)論