專利名稱:一種基于最大流方法的fpga測試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及現(xiàn)場可編程門陣列FPGA的應(yīng)用測試技術(shù),具體的說是一種基于最大 流方法的FPGA測試方法。
背景技術(shù):
FPGA(現(xiàn)場可編程門陣列)器件憑借其內(nèi)部資源豐富、結(jié)構(gòu)配置靈活等特性,而越 來越廣泛的應(yīng)用在了各種電子產(chǎn)品之中。由于FPGA的特殊結(jié)構(gòu),傳統(tǒng)的芯片測試技術(shù)已經(jīng) 不再適用,進而產(chǎn)生了很多針對FPGA芯片應(yīng)用測試的方法。FPGA可以被描述為一個二維網(wǎng)格結(jié)構(gòu),主要由可配置的邏輯單元、輸入輸出單元 和連接這些單元的互連結(jié)構(gòu)。在實際應(yīng)用中,就是通過配置這些資源來組成實現(xiàn)不同功能 的電路結(jié)構(gòu),即測試配置。進行FPGA應(yīng)用測試的核心思想是利用器件的可配置性,通過將 器件配置成不同的特定結(jié)構(gòu),充分使用內(nèi)部資源,通過分析其對各種測試向量的響應(yīng),進而 實現(xiàn)對資源故障測試。評價測試方法優(yōu)劣的主要指標(biāo)是能否實現(xiàn)測試配置的最小集,以及 覆蓋資源故障的最大集。目前,對FPGA測試的研究主要存在以下兩個局限一是測試對象的確定性,即特 定的方法只針對特定結(jié)構(gòu)的器件,且多半都是手動確定配置的結(jié)構(gòu)和方法;二是區(qū)分了邏 輯單元和互聯(lián)結(jié)構(gòu),在FPGA 二維結(jié)構(gòu)的規(guī)律和重復(fù)性的基礎(chǔ)上對器件進行配置,由于其配 置本身的可預(yù)見性而使故障集存在一定的局限性。
發(fā)明內(nèi)容
本發(fā)明根據(jù)現(xiàn)有技術(shù)中存在的問題,提出一種基于最大流方法的FPGA測試方法。本發(fā)明為實現(xiàn)上述目的采用的技術(shù)方案是一種基于最大流方法的FPGA測試方 法,該測試方法包括如下步驟步驟1)根據(jù)FPGA結(jié)構(gòu)建立有向圖模型;將FPGA化分為配置單元結(jié)構(gòu)和互連線結(jié) 構(gòu);所述配置單元結(jié)構(gòu)包括邏輯單元、輸入輸出單元及互聯(lián)單元中的配置開關(guān)形成的互聯(lián) 開關(guān)矩陣;所述互連線結(jié)構(gòu)為各配置單元結(jié)構(gòu)間的引線;步驟2)將FPGA建立有向圖模型時,所述邏輯單元的基本組成結(jié)構(gòu)對應(yīng)有向圖模 型中的一個頂點,所述互聯(lián)開關(guān)矩陣的每個端口對應(yīng)有向圖模型一個頂點;所述互連線對 應(yīng)有向圖模型的一個邊;步驟3)在步驟1中有向圖模型的基礎(chǔ)上增加“源S”頂點和“匯T”頂點;所述“源 S”與輸入輸出單元的輸入端口頂點相連,“匯T”與輸出單元輸出端口的頂點相連;通過所 述“源S”頂點及“匯T”頂點將數(shù)據(jù)路徑轉(zhuǎn)化為從起點“源S”到終點“匯T”路徑的集合。步驟4)FPGA測試配置自動生成采用求最大流方法,該方法第一、定義每個邊容 量;第二、增流過程中采用路徑搜索算法;第三、在流生成過程中對有向圖的實時檢測動態(tài) 調(diào)整;步驟5)當(dāng)步驟4)中達到某一最大流時,將最大流中所有路徑的集合映射到FPGA中構(gòu)成一個測試配置,記錄測試配置后,模型重新初始化;步驟6)重復(fù)步驟準(zhǔn)4)中最大流測試,當(dāng)連續(xù)兩次求最大流操作的結(jié)果相同時,將 統(tǒng)計所有的頂點和邊在已有測試配置中的使用情況;將始終沒有出現(xiàn)在測試配置中的頂點 和邊(不包括雙向連線抽象出的兩條邊有一條未出現(xiàn)的情況)為起點分別向“源S”和“匯 T”路徑搜索,最終將所有的頂點和邊都被包含在測試配置中,輸出自動匹配結(jié)果。所述邏輯單元基本組包括多路選擇器、查找表、觸發(fā)器。所述互連線,容量設(shè)置為1 ;配置開關(guān),其容量設(shè)置為1 ;所述多路選擇器的輸出容 量設(shè)置為1 ;觸發(fā)器的輸出容量設(shè)置為1 ;查找表LUT的輸出容量設(shè)置為LUT的輸入數(shù)。所有在測試配置中出現(xiàn)過的頂點和邊,將在模型中被特殊標(biāo)注,在下一次操作中 優(yōu)先使用沒有特殊標(biāo)注的頂點和邊。所述路徑搜索算法中增加預(yù)測機制的深度優(yōu)先算法,該預(yù)測機制算法在某一數(shù)據(jù) 路徑搜索到某一頂點VI,并從頂點Vi向其第二級頂點搜索前,先對第二級頂點進行預(yù)測優(yōu) 先排序;所述預(yù)測優(yōu)先排序的原則是第二級頂點所連接的第三級頂點中未被遍歷到的頂點 越多,則這個第二級頂點的優(yōu)先級越高,在進行排序后,選取優(yōu)先級最高的第二級頂點作為 Vl的下一級連接。所述依據(jù)FPGA模型的約束,對模型的結(jié)構(gòu)進行的動態(tài)調(diào)整,調(diào)整包括輸入端口 被選中的輸入輸出單元,其輸出端口的頂點將在模型中被屏蔽掉;對于在建模時被抽象為 兩條邊雙線數(shù)據(jù)連線,在其中某一條邊被使用后,另外一條邊也將在模型中被屏蔽掉。本發(fā)明的優(yōu)點1、本方法能夠自動生成測試配置,且不依賴具體某一 FPGA器件的結(jié)構(gòu),具有普適 性,能夠被廣泛的推廣。2、本方法不刻意區(qū)分配置中涉及的資源類型,做到了資源全覆蓋的一次性測試配 置自動生成。3、本發(fā)明針對FPGA的特點采取了帶有預(yù)測機制和結(jié)構(gòu)約束判定的深度優(yōu)先搜索 算法,有效的提高了搜索的效率和測試配置的完備性。
圖1為測試配置自動生成基本流程。
具體實施例方式如圖1所示一種基于最大流方法的FPGA測試方法,該測試方法包括如下步驟 步驟1)根據(jù)FPGA結(jié)構(gòu)建立有向圖模型;將FPGA化分為配置單元結(jié)構(gòu)和互連線結(jié)構(gòu);所 述配置單元結(jié)構(gòu)包括邏輯單元、輸入輸出單元及互聯(lián)單元中的配置開關(guān)形成的互聯(lián)開關(guān)矩 陣;所述互連線結(jié)構(gòu)為各配置單元結(jié)構(gòu)間的引線;步驟2)將FPGA建立有向圖模型時,所述 邏輯單元的基本組成結(jié)構(gòu)對應(yīng)有向圖模型中的一個頂點,所述互聯(lián)開關(guān)矩陣的每個端口對 應(yīng)有向圖模型一個頂點;所述互連線對應(yīng)有向圖模型的一個邊;步驟幻在步驟1中有向圖 模型的基礎(chǔ)上增加“源S”頂點和“匯T”頂點;所述“源S”與輸入輸出單元的輸入端口頂點 相連,“匯T”與輸出單元輸出端口的頂點相連;通過所述“源S”頂點及“匯T”頂點將數(shù)據(jù) 路徑轉(zhuǎn)化為從起點“源S”到終點“匯T”路徑的集合。步驟4)FPGA測試配置自動生成采用最大流方法,該方法第一、定義每個邊容量;第二、增流過程中采用路徑搜索算法;第三、在 流生成過程中對有向圖的實時檢測動態(tài)調(diào)整;步驟5)當(dāng)步驟4)中達到某一最大流時,將最 大流中所有路徑的集合映射到FPGA中構(gòu)成一個測試配置,記錄測試配置后,模型重新初始 化;步驟6)重復(fù)步驟準(zhǔn)4)中最大流測試,當(dāng)連續(xù)兩次求最大流操作的結(jié)果相同時,將統(tǒng)計 所有的頂點和邊在已有測試配置中的使用情況;將始終沒有出現(xiàn)在測試配置中的頂點和邊 (不包括雙向連線抽象出的兩條邊有一條未出現(xiàn)的情況)為起點分別向“源S”和“匯T”路 徑搜索,最終將所有的頂點和邊都被包含在測試配置中。所述邏輯單元基本組包括多路選擇器、查找表、觸發(fā)器。所述互連線,容量設(shè)置為 1 ;配置開關(guān),其容量設(shè)置為1 ;所述多路選擇器的輸出容量設(shè)置為1 ;觸發(fā)器的輸出容量設(shè) 置為1 ;查找表LUT的輸出容量設(shè)置為LUT的輸入數(shù)。所有在測試配置中出現(xiàn)過的頂點和 邊,將在模型中被特殊標(biāo)注,在下一次操作中優(yōu)先使用沒有特殊標(biāo)注的頂點和邊。所述路徑搜索算法中增加預(yù)測機制的深度優(yōu)先算法,該預(yù)測機制算法在某一數(shù)據(jù) 路徑搜索到某一頂點VI,并從頂點Vi向其第二級頂點搜索前,先對第二級頂點進行預(yù)測優(yōu) 先排序;所述預(yù)測優(yōu)先排序的原則是第二級頂點所連接的第三級頂點中未被遍歷到的頂點 越多,則這個第二級頂點的優(yōu)先級越高,在進行排序后,選取優(yōu)先級最高的第二級頂點作為 Vl的下一級連接。所述依據(jù)FPGA模型的約束,對模型的結(jié)構(gòu)進行的動態(tài)調(diào)整,調(diào)整包括輸入端口 被選中的輸入輸出單元,其輸出端口的頂點將在模型中被屏蔽掉;對于在建模時被抽象為 兩條邊雙線數(shù)據(jù)連線,在其中某一條邊被使用后,另外一條邊也將在模型中被屏蔽掉。本發(fā)明以FPGA結(jié)構(gòu)建立有向圖模型實現(xiàn)功能為基礎(chǔ),這一建模過程存在一定的 目標(biāo)依賴性,F(xiàn)PGA的構(gòu)成可以簡單的分為配置單元結(jié)構(gòu)和互連線。配置的單元結(jié)構(gòu)包括了 邏輯單元、輸入輸出單元及互聯(lián)結(jié)構(gòu)中的可配置開關(guān)形成互聯(lián)開關(guān)矩陣;互連線結(jié)構(gòu)指各 配置單元結(jié)構(gòu)之間的連線。在建模時,邏輯單元每個基本組成結(jié)構(gòu)(包括多路選擇器、查找 表、觸發(fā)器)都對應(yīng)有向圖中的一個頂點,而互聯(lián)開關(guān)矩陣則是每個端口對應(yīng)一個頂點,所 述兩頂點共同組成有向圖G= (V,E)中的頂點集V,根據(jù)頂點所代表的資源不同,V中的每 個元素都被賦予了相應(yīng)的屬性信息;互聯(lián)開關(guān)矩陣內(nèi)部通過配置實現(xiàn)的端口之間的連線, 互聯(lián)開關(guān)對應(yīng)有向圖中G= (V,E)中的邊集E的一個子邊集El,針對某些連接在實際器件 中沒有規(guī)定數(shù)據(jù)流的方向,在有向圖中,這些連接都被表示為兩條方向相反的邊;互連線對 應(yīng)有向圖G= (V,E)中邊集E的另外一個子邊集E2,E2是El對于E的補集,互連線本身不 存在額外屬性,但同樣要考慮數(shù)據(jù)流方向的問題,對于雙向的互連線,在有向圖中同樣被表 示為兩根方向相反的邊。在進行配置自動生成之前,先在FPGA模型的基礎(chǔ)上增加兩個頂點,“源S”和“匯 T”,“源S”與代表輸入輸出單元外部輸入端口的頂點相連,“匯T”與代表輸入外部輸出單元 輸出端口的頂點相連。通過這兩個附加的頂點,所有的數(shù)據(jù)路徑都被轉(zhuǎn)化為從唯一起點“源 S”到唯一終點“匯T”路徑的集合。測試配置自動生成采用求最大流方法,該試方法基本流程如附圖1所示。該方法 包括如下三點第一對每個邊容量的定義,第二增流過程中采取的路徑搜索算法,第三由于 FPGA結(jié)構(gòu)約束在流生成過程中對有向圖實時檢測動態(tài)調(diào)整。對于邊的容量,本發(fā)明是這樣 定義的對所有的互連線,容量設(shè)置為1 ;對配置開關(guān),其容量設(shè)置為1 ;對具有邏輯功能單元,其容量根據(jù)其功能進行設(shè)置,如多路選擇器的輸出,容量設(shè)置為1,觸發(fā)器的輸出,容量 設(shè)置為1,查找表LUT的輸出,容量設(shè)置為LUT的輸入數(shù)。對于路徑搜索算法,本發(fā)明采取 的增加了預(yù)測機制的深度優(yōu)先算法,與傳統(tǒng)深度優(yōu)先算法相比,預(yù)測機制該算法在某一數(shù) 據(jù)路徑搜索到某一頂點VI,并從Vl向其第二級頂點搜索前,先對第二級頂點進行預(yù)測優(yōu)先 排序,排序的原則是第二級頂點所連接的第三級頂點中未被遍歷到的頂點越多,則這個第 二級頂點的優(yōu)先級越高,在進行排序后,選取優(yōu)先級最高的第二級頂點作為Vl的下一級連 接。根據(jù)FPGA結(jié)構(gòu)約束,還需要對模型的結(jié)構(gòu)進行的動態(tài)調(diào)整,調(diào)整的主要內(nèi)容包括對于 輸入端口被選中的輸入輸出單元,代表其輸出端口的頂點將在模型中被屏蔽掉;對于在建 模時被抽象為兩條邊雙線數(shù)據(jù)連線,在其中某一條邊被使用后,另外一條邊也將在模型中 被屏蔽。 當(dāng)模型達到某一最大流時,最大流中所有路徑的集合映射到FPGA中,就構(gòu)成了一 個測試配置。在記錄下這組配置后,模型將被重新初始化,準(zhǔn)備進行下一次最大流操作。所 有已經(jīng)在配置中出現(xiàn)過的頂點和邊,將在模型中被特殊標(biāo)注,以保證在下一次操作中能夠 盡量多的使用沒有在配置中出現(xiàn)過的頂點和邊。當(dāng)連續(xù)兩次求最大流操作的結(jié)果相同的時 候,將統(tǒng)計所有的頂點和邊在已有配置中的使用情況,對于那些始終沒有出現(xiàn)在配置中的 頂點和邊(不包括雙向連線抽象出的兩條邊有一條未出現(xiàn)的情況),本發(fā)明將以它們?yōu)槠?點分別向源S和匯T搜索路徑,直至所有的頂點和邊都被包含在測試配置中停止,輸出自動 匹配結(jié)果。
權(quán)利要求
1.一種基于最大流方法的FPGA測試方法,其特征在于該測試方法包括如下步驟步驟1)根據(jù)FPGA結(jié)構(gòu)建立有向圖模型;將FPGA化分為配置單元結(jié)構(gòu)和互連線結(jié)構(gòu);所述配置單元結(jié)構(gòu)包括邏輯單元、輸入輸出單元及互聯(lián)單元中的配置開關(guān)形成的互聯(lián)開關(guān) 矩陣;所述互連線結(jié)構(gòu)為各配置單元結(jié)構(gòu)間的引線;步驟2、將FPGA建立有向圖模型時,所述邏輯單元的基本組成結(jié)構(gòu)對應(yīng)有向圖模型中 的一個頂點,所述互聯(lián)開關(guān)矩陣的每個端口對應(yīng)有向圖模型一個頂點;所述互連線對應(yīng)有 向圖模型的一個邊;步驟3)在步驟1中有向圖模型的基礎(chǔ)上增加“源S”頂點和“匯T”頂點;所述“源S” 與輸入輸出單元的輸入端口頂點相連,“匯T”與輸出單元輸出端口的頂點相連;通過所述 “源S”頂點及“匯T”頂點將數(shù)據(jù)路徑轉(zhuǎn)化為從起點“源S”到終點“匯T”路徑的集合。步驟4) FPGA測試配置自動生成采用求最大流方法,該方法第一、定義每個邊容量;第 二、增流過程中采用路徑搜索算法;第三、在流生成過程中對有向圖的實時檢測動態(tài)調(diào)整;步驟5)當(dāng)步驟4)中達到某一最大流時,將最大流中所有路徑的集合映射到FPGA中構(gòu) 成一個測試配置,記錄測試配置后,模型重新初始化;步驟6)重復(fù)步驟準(zhǔn)4)中最大流測試,當(dāng)連續(xù)兩次求最大流操作的結(jié)果相同時,將統(tǒng)計 所有的頂點和邊在已有測試配置中的使用情況;將始終沒有出現(xiàn)在測試配置中的頂點和邊 (不包括雙向連線抽象出的兩條邊有一條未出現(xiàn)的情況)為起點分別向“源S”和“匯T”路 徑搜索,最終將所有的頂點和邊都被包含在測試配置中,輸出自動匹配結(jié)果。
2.根據(jù)權(quán)利要求1所述的一種基于最大流方法的FPGA測試方法,其特征在于所述邏 輯單元基本組包括多路選擇器、查找表、觸發(fā)器。
3.根據(jù)權(quán)利要求1所述的一種基于最大流方法的FPGA測試方法,其特征在于所述互 連線,容量設(shè)置為1 ;配置開關(guān),其容量設(shè)置為1 ;所述多路選擇器的輸出容量設(shè)置為1 ;觸 發(fā)器的輸出容量設(shè)置為1 ;查找表LUT的輸出容量設(shè)置為LUT的輸入數(shù)。
4.根據(jù)權(quán)利要求1所述的一種基于最大流方法的FPGA測試方法,其特征在于所有在 測試配置中出現(xiàn)過的頂點和邊,將在模型中被特殊標(biāo)注,在下一次操作中優(yōu)先使用沒有特 殊標(biāo)注的頂點和邊。
5.根據(jù)權(quán)利要求1所述的一種基于最大流方法的FPGA測試方法,其特征在于所述路 徑搜索算法中增加預(yù)測機制的深度優(yōu)先算法,該預(yù)測機制算法在某一數(shù)據(jù)路徑搜索到某一 頂點VI,并從頂點Vi向其第二級頂點搜索前,先對第二級頂點進行預(yù)測優(yōu)先排序;所述預(yù) 測優(yōu)先排序的原則是第二級頂點所連接的第三級頂點中未被遍歷到的頂點越多,則這個第 二級頂點的優(yōu)先級越高,在進行排序后,選取優(yōu)先級最高的第二級頂點作為Vi的下一級連 接。
6.根據(jù)權(quán)利要求1所述的一種基于最大流方法的FPGA測試方法,其特征在于所述依 據(jù)FPGA模型的約束,對模型的結(jié)構(gòu)進行的動態(tài)調(diào)整,調(diào)整包括輸入端口被選中的輸入輸 出單元,其輸出端口的頂點將在模型中被屏蔽掉;對于在建模時被抽象為兩條邊雙線數(shù)據(jù) 連線,在其中某一條邊被使用后,另外一條邊也將在模型中被屏蔽掉。
全文摘要
本發(fā)明涉及FPGA的應(yīng)用測試技術(shù),具體公開一種基于最大流方法的FPGA測試方法;它包括適用于方法的基本FPGA建模方法,基于帶有預(yù)測機制的深度優(yōu)先搜索算法的最大流方法,并針對FPGA結(jié)構(gòu)特點的約束檢查;本方法能夠自動生成測試配置,且不依賴具體某一FPGA器件的結(jié)構(gòu),具有普適性,能夠被廣泛的推廣;本方法不刻意區(qū)分配置中涉及的資源類型,做到了資源全覆蓋的一次性測試配置自動生成。
文檔編號G01R31/3185GK102116839SQ20091024893
公開日2011年7月6日 申請日期2009年12月30日 優(yōu)先權(quán)日2009年12月30日
發(fā)明者呂巖, 張超, 楊志家, 謝闖, 趙雪峰, 馬繼開 申請人:中國科學(xué)院沈陽自動化研究所