專利名稱:一種fpga單長線及其直連開關(guān)的測試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于Virtex架構(gòu)的FPGA測試方法,具體是一種FPGA單長線及其直連開關(guān)的測試方法。
背景技術(shù):
基于Virtex架構(gòu)的FPGA是一種布線資源數(shù)量龐大種類繁多的可重復(fù)編程的超大規(guī)模集成電路芯片。因此,在FPGA的實(shí)際應(yīng)用中,故障發(fā)生于互連資源的概率遠(yuǎn)大于發(fā)生于其它邏輯功能的概率。目前,國內(nèi)外公知的FPGA布線開關(guān)測試技術(shù)一般都著眼于3x3、4x4等小規(guī)模的布線開關(guān);而目前商用FPGA多采用Mx24的布線開關(guān),此外由于FPGA產(chǎn)品的測試工作中, 配置碼的數(shù)量是影響測試周期的關(guān)鍵參數(shù),所以如何使用盡可能少的配置碼完成上述FPGA 產(chǎn)品的單長線布線及其開關(guān)的測試,對于FPGA產(chǎn)品的應(yīng)用與測試意義重大。國內(nèi)外雖然有所謂四次、六次配置完成FPGA互連資源測試的方法,但一方面上述方法均基于結(jié)構(gòu)簡單的互聯(lián)資源模型實(shí)現(xiàn)的;另一方面由于測試過程中沒有引入觸發(fā)器信號,導(dǎo)致布線資源互連級數(shù)過長,并且不利于故障定位;而對于布線通路之間可能發(fā)生的橋接類故障模型也沒有提出明確可用的檢測手段。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,開發(fā)一種配置次數(shù)盡可能少的基于 Virtex架構(gòu)的M X 24規(guī)模FPGA單長線及其直連開關(guān)的測試方法,僅用四次配置就完成,故障覆蓋率達(dá)100%且可精確定位故障位置及類型。按照本發(fā)明提供的技術(shù)方案,所述FPGA單長線及其直連開關(guān)的測試方法通過四次配置完成基于Virtex架構(gòu)的FPGA單長線及其直連開關(guān)的測試;第一次配置包括如下步驟
11)由左側(cè)頂部的兩個(gè)Blockram以只讀模式,依地址計(jì)數(shù)器的結(jié)果輸出對根00信號, 連入第一組CLB中;所述第一組CLB是指FPGA第一行前四列的4個(gè)CLB ;
12)步驟11)所述第一組CLB中,序號為奇數(shù)的DO信號連入觸發(fā)器,序號為偶數(shù)的DO 信號連入組合邏輯,最終M根信號分別經(jīng)由第一組的4個(gè)CLB對應(yīng)的OMUX輸出,每個(gè)OMUX 輸出6根信號;
13)將步驟11)所述第一組CLB輸出的M根水平單長線與第二組CLB之間的水平直連開關(guān)選通;所述第二組CLB是指步驟11)所述第一組CLB右邊的4個(gè)CLB ;
14)在M根信號進(jìn)入步驟13)所述第二組CLB對應(yīng)的IMUX時(shí),將奇數(shù)位的信號與偶數(shù)位互換;
15)按照步驟12)、13)、14)循環(huán)進(jìn)行直至第一行結(jié)束,然后轉(zhuǎn)入下一行,行與行之間采用蛇形通路進(jìn)行;
16)將Blockram的初始值需要按如下要求進(jìn)行設(shè)定,確保在地址連續(xù)遞增的情況下,M根傳輸信號波形一致,但相鄰信號之間間隔一個(gè)時(shí)鐘周期,且這M根信號之中任何兩根之間均依次出現(xiàn){00、01、11、10}四種關(guān)系;
所述步驟13)中水平直連開關(guān)是指水平由左至右的直連開關(guān); 所述步驟15)中行與行之間的級連方式為首尾相接,其蛇形測試通路按順序覆蓋所有除用作單長線驅(qū)動的CLB外的所有水平單長線及其直連開關(guān); 第二次配置包括如下步驟
21)由左側(cè)頂部的兩個(gè)Blockram以只讀模式,依地址計(jì)數(shù)器的結(jié)果輸出對根00信號, 連入第一組CLB中;此次所述第一組CLB為FPGA第一列前四行的4個(gè)CLB ;
22)步驟21)所述第一組CLB中,序號為奇數(shù)的DO信號連入觸發(fā)器,序號為偶數(shù)的DO 信號連入組合邏輯,最終M根信號分別經(jīng)由第一組的4個(gè)CLB對應(yīng)的OMUX輸出,每個(gè)OMUX 輸出6根信號;
23)將步驟21)所述第一組CLB輸出的M根垂直單長線與第二組CLB之間的垂直直連開關(guān)選通;此次所述第二組CLB是指步驟21)所述第一組CLB下方的4個(gè)CLB ;
24)在M根信號進(jìn)入步驟23)所述第二組CLB對應(yīng)的IMUX時(shí),將奇數(shù)位的信號與偶數(shù)位互換;
25)按照步驟22)、23)、24)循環(huán)進(jìn)行直至第一列結(jié)束,然后轉(zhuǎn)入下一列,列與列之間采用蛇形通路進(jìn)行;
26)將Blockram的初始值需要按如下要求進(jìn)行設(shè)定,確保在地址連續(xù)遞增的情況下, 24根傳輸信號波形一致,但相鄰信號之間間隔一個(gè)時(shí)鐘周期;且這M根信號之中任何兩根之間均依次出現(xiàn){00、01、11、10}四種關(guān)系;
第三次配置,將第一次配置中的CLB位置依次向右移4列,其余步驟不變; 第四次配置,將第二次配置中的CLB位置依次向下移4行,其余步驟不變。所述第一次配置的步驟11)和第二次配置的步驟21)中的Blockram以只讀模式, 依地址計(jì)數(shù)器的結(jié)果輸出M根DO信號,連入第一組CLB中。所述第一次配置的步驟12)、14)和第二次配置的步驟22)、24)中的DO信號依序號的奇偶特性,分為兩組,分別連入各自第一組CLB內(nèi)部的觸發(fā)器與第二組內(nèi)部的觸發(fā)器, 并將這種輪轉(zhuǎn)進(jìn)入觸發(fā)器的形式延續(xù)直至最后一組CLB。本發(fā)明的優(yōu)點(diǎn)是
1)以移位寄存器鏈模式測試FPGA電路的M根單長線,可以測試M根為一組的單長線的任意2根信號之間的橋接故障;
2)僅用四段配置碼即可測試所有CLB的單長線及其直連開關(guān);
3)通過Blockram的初始配置,簡化了測試流程,便于用戶操作;
4)故障定位準(zhǔn)確,事實(shí)上采用四次配置,后兩次配置CLB位置偏離量為4的情況下,故障定位可精確到四個(gè)CLB的直連開關(guān)或單長線;在故障定位要求極端精確的情況下(譬如需要對某批次的故障芯片進(jìn)行故障分析),可將CLB位置偏離量定義為1,總計(jì)采用十次配置,故障定位即可精確到具體的唯一確定的CLB對應(yīng)的直連開關(guān)或單長線。
圖1是水平單長線測試整體結(jié)構(gòu)示意圖。
圖2是水平單長線自左至右測試具體結(jié)構(gòu)示意圖。圖3是CLB內(nèi)部電路原理圖。圖4是測試電路門級仿真波形圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步說明。本測試方法的實(shí)施對象基于 Xilinx公司Virtex 系統(tǒng)架構(gòu)的任何FPGA?;谠摷軜?gòu)的FPGA通常包括嵌入式塊存儲器(Blockram)、可編程輸入輸出單元anput/Output Block, IOB)、大量可編程邏輯單元(Configurable Logic Block, CI^)和可編程互連資源,經(jīng)典對稱式的FPGA互連資源包括互聯(lián)開關(guān)盒(Switch Box, SB)、輸入開關(guān)盒(Input Mux, IMUX)、輸出開關(guān)盒(Output Mux, 0MUX),IOB模塊開關(guān)盒、以及互連線段(具體包括單長線、六長線、長線、三態(tài)總線等資源)。圖1,2所示為基于Xilinx公司Virtex 系統(tǒng)架構(gòu)的FPGA邏輯結(jié)構(gòu)示意圖,圖中包括Ι0Β 1,IOB的輸入開關(guān)盒2,IOB的互聯(lián)開關(guān)盒3,CLB 4,CLB的輸入開關(guān)盒(IMUX) 5,CLB的輸出開關(guān)盒(OMUX) 6,CLB的SliceO 7,CLB的Slicel 8,CLB的互連開關(guān)盒(SB) 9?;谏鲜黾軜?gòu)的FPGA,I0B的物理位置依據(jù)頂層、底層、右側(cè)、左側(cè)分別命名為TCi、BCi、 RRi、LRi,i=l,2,3,…。其中C表示列,R表示行。頂層、底層的每個(gè)開關(guān)盒對應(yīng)2個(gè)Ι0Β, 右側(cè)、左側(cè)的每個(gè)開關(guān)盒對應(yīng)3個(gè)Ι0Β。圖中各CLB模塊對應(yīng)的布線開關(guān)按χ行y列標(biāo)記為 CLB_RxCy。本發(fā)明通過四次配置完成基于Virtex架構(gòu)的FPGA單長線及其直連開關(guān)的測試。 水平單長線測試行與行之間采用蛇行結(jié)構(gòu)布局,即奇數(shù)行測試自左至右的布線偶數(shù)行測試自右至左的單長線布線。每行內(nèi)部以4個(gè)布線開關(guān)為一組,每個(gè)布線開關(guān)輸出6根單長線, 共計(jì)輸出M根單長線。實(shí)現(xiàn)對應(yīng)行布線開關(guān)的所有水平單長線(M根)的單向測試。考慮到布線開關(guān)內(nèi)部水平可編程點(diǎn)的測試在輸出單長線的4個(gè)CLB中無法測試,固需要額外加一段碼使得該組布線開關(guān)的布局約束后移4列,從而確保水平方向的單長線及其對應(yīng)水平開關(guān)的測試100%覆蓋。具體步驟如下。第一次配置包括如下步驟
11)由左側(cè)頂部的兩個(gè)Blockram以只讀模式,依地址計(jì)數(shù)器的結(jié)果輸出對根00信號, 連入第一組CLB中;所述第一組CLB是指FPGA第一行前四列的4個(gè)CLB,即CLB_R1C1、CLB_ R1C2、CLB_R1C3、CLB_R1C4 ;
12)步驟11)所述第一組CLB中,序號為奇數(shù)的DO信號連入觸發(fā)器,序號為偶數(shù)的DO 信號連入組合邏輯,最終M根信號分別經(jīng)由第一組的4個(gè)CLB對應(yīng)的OMUX輸出,每個(gè)OMUX 輸出6根信號;
13)將步驟11)所述第一組CLB輸出的M根水平單長線與第二組CLB之間的水平直連開關(guān)選通;所述第二組CLB是指步驟11)所述第一組CLB右邊的4個(gè)CLB ;
14)在M根信號進(jìn)入步驟13)所述第二組CLB對應(yīng)的IMUX時(shí),將奇數(shù)位的信號與偶數(shù)位互換,即 CLB_R1C5、CLB_R1C6、CLB_R1C7、CLB_R1C8 ;
15)按照步驟12)、13)、14)循環(huán)進(jìn)行直至第一行結(jié)束,然后轉(zhuǎn)入下一行,行與行之間采用蛇形通路進(jìn)行;
16)將Blockram的初始值需要按如下要求進(jìn)行設(shè)定,確保在地址連續(xù)遞增的情況下, 24根傳輸信號波形一致,但相鄰信號之間間隔一個(gè)時(shí)鐘周期,且這M根信號之中任何兩根之間均依次出現(xiàn){00、01、11、10}四種關(guān)系;
所述步驟13)中水平直連開關(guān)是指水平由左至右的直連開關(guān); 所述步驟15)中行與行之間的級連方式為首尾相接,其蛇形測試通路按順序覆蓋所有除用作單長線驅(qū)動的CLB外的所有水平單長線及其直連開關(guān); 第二次配置包括如下步驟
21)由左側(cè)頂部的兩個(gè)Blockram以只讀模式,依地址計(jì)數(shù)器的結(jié)果輸出對根00信號, 連入第一組CLB中;此次所述第一組CLB為FPGA第一列前四行的4個(gè)CLB,即CLB_R1C1、 CLB_R2C1、CLB_R3C1、CLB_R4C1 ;
22)步驟21)所述第一組CLB中,序號為奇數(shù)的DO信號連入觸發(fā)器,序號為偶數(shù)的DO 信號連入組合邏輯,最終M根信號分別經(jīng)由第一組的4個(gè)CLB對應(yīng)的OMUX輸出,每個(gè)OMUX 輸出6根信號;
23)將步驟21)所述第一組CLB輸出的M根垂直單長線與第二組CLB之間的垂直直連開關(guān)選通;此次所述第二組CLB是指步驟21)所述第一組CLB下方的4個(gè)CLB,即CLB_ R5C1、CLB_R6C1、CLB_R7C1、CLB_R8C1 ;
24)在M根信號進(jìn)入步驟23)所述第二組CLB對應(yīng)的IMUX時(shí),將奇數(shù)位的信號與偶數(shù)位互換;
25)按照步驟22)、23)、24)循環(huán)進(jìn)行直至第一列結(jié)束,然后轉(zhuǎn)入下一列,列與列之間采用蛇形通路進(jìn)行;
26)將Blockram的初始值需要按如下要求進(jìn)行設(shè)定,確保在地址連續(xù)遞增的情況下, M根傳輸信號波形一致,但相鄰信號之間間隔一個(gè)時(shí)鐘周期;且這M根信號之中任何兩根之間均依次出現(xiàn){00、01、11、10}四種關(guān)系;
第三次配置,將第一次配置中的CLB位置依次向右移4列,其余步驟不變; 第四次配置,將第二次配置中的CLB位置依次向下移4行,其余步驟不變。圖2所示為水平單長線自左至右測試具體結(jié)構(gòu)示意圖,直連開關(guān)10 (Programmable Interconnect Points,PIP)即直連用的可編程互連點(diǎn),單長線之間的直連開關(guān)10 (具體而言就是指由左至右的M個(gè)直連開關(guān)中的WO至EO)由2bits的SRAM構(gòu)成, 從而可以提供更好的驅(qū)動能力。圖2中,Slicel輸出4根信號,自左至右分別為{S1_Y/S1_ YQ/S1_X/S1_XQ} ;SliceO輸出2根信號,自左至右分別為{S0_X/S0_XG!};上述總計(jì)6根信號輸出至CLB的0MUX,然后轉(zhuǎn)入CLB對應(yīng)的互聯(lián)開關(guān)盒,經(jīng)單長線傳至同行的下一列CLB。輸入信號自左至右為{S1_G_B1/S1_BY/S1_F_B1/S1_BX/S0_F_B1/S0_BX }。在圖3中,每個(gè)CLB輸出的6根信號分為三組(S1_Y/S1_YQ,S0_Y/S0_YQ,S0_X/ S0_XQ),圖中顯示的為SliceO的兩組(S0_Y/S0_YQ,S0_X/S0_XQ)信號,其中左側(cè)CLB的 S0_X與S0_XQ,在輸入右側(cè)CLB的過程中采用X與XQ串聯(lián)而不是X與X串聯(lián)的模式,從而導(dǎo)致輸出信號每經(jīng)過2個(gè)CLB則接受觸發(fā)器驅(qū)動一次,整體而言從宏觀上看,輸出信號為BRAM 輸出測試碼經(jīng)η/2級移位寄存器后輸出的結(jié)果。圖4所示為以XCV1000為例的測試電路門級仿真波形圖,圖中11、15分別為Blockram輸出信號DO與測試電路輸出信號dout的第一段區(qū)間,該區(qū)間內(nèi)任意兩根信號之間至少存在一個(gè)周期二者值為01 ;圖中12、16為信號高周期,該時(shí)鐘周期內(nèi)的所有M根信號值均為高;圖中13、17為信號低周期,該時(shí)鐘周期內(nèi)的所有對根信號值均為低;圖中14、 18分別為DO與dout的第二段區(qū)間,該區(qū)間內(nèi)任意兩根信號之間至少存在一個(gè)周期二者值為10 ;圖中19為傳輸延遲區(qū)間,該區(qū)間大小為96X5/2個(gè)時(shí)鐘周期。其中BRAM輸出數(shù)據(jù)DO 經(jīng)96 X 5/2級寄存器鏈后傳入dout。如前文所述,因傳輸鏈級數(shù)為偶數(shù),且采用X與XQ (或 Y與YQ)串聯(lián)的模式,固輸出dout的值與DATA相比dout
與D0[1]為一一對應(yīng)關(guān)系,而 dout[l]與D0
為一一對應(yīng)關(guān)系,其余對應(yīng)關(guān)系對照圖4均可依上述規(guī)律推出。
該算法測試資源可控性強(qiáng)(確保每根單長線的連線與直連開關(guān)均被測試到),可復(fù)用性強(qiáng)(適用于所有基于Virtex架構(gòu)的FPGA),發(fā)生故障時(shí)定位準(zhǔn)確,且可以覆蓋同一 CLB內(nèi)部M根為一組的單長線所有的故障類型(固定型故障的開路與短路、以及橋接類故障)。
權(quán)利要求
1.一種FPGA單長線及其直連開關(guān)的測試方法,其特征是通過四次配置完成基于 Virtex架構(gòu)的FPGA單長線及其直連開關(guān)的測試;第一次配置包括如下步驟11)由左側(cè)頂部的兩個(gè)Blockram以只讀模式,依地址計(jì)數(shù)器的結(jié)果輸出M根DO信號, 連入第一組CLB中;所述第一組CLB是指FPGA第一行前四列的4個(gè)CLB ;12)步驟11)所述第一組CLB中,序號為奇數(shù)的DO信號連入觸發(fā)器,序號為偶數(shù)的DO 信號連入組合邏輯,最終M根信號分別經(jīng)由第一組的4個(gè)CLB對應(yīng)的OMUX輸出,每個(gè)OMUX 輸出6根信號;13)將步驟11)所述第一組CLB輸出的M根水平單長線與第二組CLB之間的水平直連開關(guān)選通;所述第二組CLB是指步驟11)所述第一組CLB右邊的4個(gè)CLB ;14)在M根信號進(jìn)入步驟13)所述第二組CLB對應(yīng)的IMUX時(shí),將奇數(shù)位的信號與偶數(shù)位互換;15)按照步驟12)、13)、14)循環(huán)進(jìn)行直至第一行結(jié)束,然后轉(zhuǎn)入下一行,行與行之間采用蛇形通路進(jìn)行;16)將Blockram的初始值需要按如下要求進(jìn)行設(shè)定,確保在地址連續(xù)遞增的情況下, 24根傳輸信號波形一致,但相鄰信號之間間隔一個(gè)時(shí)鐘周期,且這M根信號之中任何兩根之間均依次出現(xiàn){00、01、11、10}四種關(guān)系;所述步驟13)中水平直連開關(guān)是指水平由左至右的直連開關(guān);所述步驟15)中行與行之間的級連方式為首尾相接,其蛇形測試通路按順序覆蓋所有除用作單長線驅(qū)動的CLB外的所有水平單長線及其直連開關(guān);第二次配置包括如下步驟21)由左側(cè)頂部的兩個(gè)Blockram以只讀模式,依地址計(jì)數(shù)器的結(jié)果輸出對根00信號, 連入第一組CLB中;此次所述第一組CLB為FPGA第一列前四行的4個(gè)CLB ;22)步驟21)所述第一組CLB中,序號為奇數(shù)的DO信號連入觸發(fā)器,序號為偶數(shù)的DO 信號連入組合邏輯,最終M根信號分別經(jīng)由第一組的4個(gè)CLB對應(yīng)的OMUX輸出,每個(gè)OMUX 輸出6根信號;23)將步驟21)所述第一組CLB輸出的M根垂直單長線與第二組CLB之間的垂直直連開關(guān)選通;此次所述第二組CLB是指步驟21)所述第一組CLB下方的4個(gè)CLB ;24)在M根信號進(jìn)入步驟23)所述第二組CLB對應(yīng)的IMUX時(shí),將奇數(shù)位的信號與偶數(shù)位互換;25)按照步驟22)、23)、24)循環(huán)進(jìn)行直至第一列結(jié)束,然后轉(zhuǎn)入下一列,列與列之間采用蛇形通路進(jìn)行;26)將Blockram的初始值需要按如下要求進(jìn)行設(shè)定,確保在地址連續(xù)遞增的情況下, M根傳輸信號波形一致,但相鄰信號之間間隔一個(gè)時(shí)鐘周期;且這M根信號之中任何兩根之間均依次出現(xiàn){00、01、11、10}四種關(guān)系;第三次配置,將第一次配置中的CLB位置依次向右移4列,其余步驟不變;第四次配置,將第二次配置中的CLB位置依次向下移4行,其余步驟不變。
2.如權(quán)利要求1所述FPGA單長線及其直連開關(guān)的測試方法,其特征是所述第一次配置的步驟11)和第二次配置的步驟21)中的Blockram以只讀模式,依地址計(jì)數(shù)器的結(jié)果輸出 24根DO信號,連入第一組CLB中。
3.如權(quán)利要求1所述FPGA單長線及其直連開關(guān)的測試方法,其特征是所述第一次配置的步驟12)、14)和第二次配置的步驟22)、M)中的DO信號依序號的奇偶特性,分為兩組, 分別連入各自第一組CLB內(nèi)部的觸發(fā)器與第二組內(nèi)部的觸發(fā)器,并將這種輪轉(zhuǎn)進(jìn)入觸發(fā)器的形式延續(xù)直至最后一組CLB。
全文摘要
本發(fā)明涉及一種基于Virtex架構(gòu)的FPGA單長線及其直連開關(guān)的測試方法,僅用四次配置就完成。本發(fā)明的優(yōu)點(diǎn)是以移位寄存器鏈模式測試FPGA電路的24根單長線,可以測試24根為一組的單長線的任意2根信號之間的橋接故障;僅用四段配置碼即可測試所有CLB的單長線及其直連開關(guān);通過Blockram的初始配置,簡化了測試流程,便于用戶操作;故障定位準(zhǔn)確,采用四次配置,后兩次配置CLB位置偏離量為4的情況下,故障定位可精確到四個(gè)CLB的直連開關(guān)或單長線;在故障定位要求極端精確的情況下,可將CLB位置偏離量定義為1,總計(jì)采用十次配置,故障定位即可精確到具體的唯一確定的CLB對應(yīng)的直連開關(guān)或單長線。
文檔編號G01R31/02GK102288870SQ20111012575
公開日2011年12月21日 申請日期2011年5月16日 優(yōu)先權(quán)日2011年5月16日
發(fā)明者于大鑫, 季正凱, 徐彥峰, 李曉磊, 陸峰, 陳誠 申請人:中國電子科技集團(tuán)公司第五十八研究所