一種測(cè)試fpga的裝置與方法
【專利摘要】本發(fā)明提供了一種測(cè)試FPGA的裝置與方法。該測(cè)試FPGA的裝置位于FPGA芯片內(nèi),包括:自測(cè)試控制器,用于按照預(yù)設(shè)時(shí)序生成地址生成信號(hào)和回讀使能信號(hào);地址生成器,用于在地址生成信號(hào)的驅(qū)動(dòng)下,生成遍歷被測(cè)試的FPGA配置陣列的地址,并使該地址對(duì)應(yīng)的FPGA配置陣列處于相應(yīng)的讀寫狀態(tài);數(shù)據(jù)生成器,用于在回讀使能信號(hào)的作用下,對(duì)于由地址生成器提供的每一個(gè)地址,依據(jù)該地址,首先從FPGA配置陣列讀取配置數(shù)據(jù),對(duì)該配置數(shù)據(jù)進(jìn)行變換形成一組新的測(cè)試配置數(shù)據(jù),然后將新產(chǎn)生的測(cè)試配置數(shù)據(jù)重新寫回至FPGA配置陣列的該地址。本發(fā)明減少了從芯片外部串行加載測(cè)試配置的次數(shù),提升了測(cè)試效率,降低了測(cè)試成本。
【專利說(shuō)明】—種測(cè)試FPGA的裝置與方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及現(xiàn)場(chǎng)可編程門陣列(Field programmable Gate Array,簡(jiǎn)稱FPGA)設(shè)計(jì)領(lǐng)域,特別涉及一種測(cè)試FPGA的裝置與方法。
【背景技術(shù)】
[0002]FPGA的生成測(cè)試一般由多個(gè)測(cè)試階段(test session)組成,一個(gè)測(cè)試階段FPGA測(cè)試可大致分為3個(gè)步驟:1、加載測(cè)試配置;2、加載激勵(lì);3、觀測(cè)測(cè)試響應(yīng)。測(cè)試配置加載的目的在于,將其配置成特定的電路結(jié)構(gòu),以方便測(cè)試。測(cè)試配置碼為一串二進(jìn)制編碼,其長(zhǎng)度可達(dá)數(shù)千萬(wàn)至數(shù)億位,通過(guò)串行下載至FPGA的配置位陣列中,從而完成一次測(cè)試配置加載。隨后,施加測(cè)試激勵(lì)以獲得測(cè)試響應(yīng)。通過(guò)將獲得的測(cè)試響應(yīng)與期望的測(cè)試響應(yīng)進(jìn)行比較,判斷FPGA是否存在故障。
[0003]隨著FPGA規(guī)模不斷提升、FPGA的功能日趨復(fù)雜,測(cè)試配置碼的體積不斷增大。從而導(dǎo)致,測(cè)試配置的加載時(shí)間增加,測(cè)試配置次數(shù)增多。在上述過(guò)程中,加載測(cè)試配置所占用的時(shí)間約占整個(gè)測(cè)試時(shí)間的90%?98%,因此,縮短測(cè)試配置加載時(shí)間,對(duì)縮短測(cè)試總時(shí)間具有重要意義。
[0004]由于配置位的數(shù)量迅速增長(zhǎng),單純提高配置速度,難以滿足現(xiàn)代FPGA的測(cè)試要求。特別是,F(xiàn)PGA中IO端口的數(shù)量相對(duì)于FPGA內(nèi)部邏輯規(guī)模不斷減小,F(xiàn)PGA的可觀察性和可控制性呈下降趨勢(shì),導(dǎo)致依靠?jī)?yōu)化測(cè)試配置,壓縮測(cè)試配置次數(shù)的方法,在優(yōu)化空間上受到了越來(lái)越多的局限。為此,在FPGA設(shè)計(jì)過(guò)程中,往往采用可測(cè)試性設(shè)計(jì)手段,以提高測(cè)試效率。
[0005]目前典型的可測(cè)試性設(shè)計(jì)手段有兩類。第一類方法的基本思想是改變FPGA內(nèi)部邏輯和互連結(jié)構(gòu),使其滿足一定的可測(cè)試性規(guī)則,降低FPGA的復(fù)雜度。但是該類方法需要滿足苛刻的設(shè)計(jì)約束,對(duì)FPGA性能產(chǎn)生較大影響。第二類方法是在FPGA設(shè)計(jì)過(guò)程中插入內(nèi)建自測(cè)試電路,該電路主要包括激勵(lì)產(chǎn)生電路和響應(yīng)分析電路,測(cè)試激勵(lì)不必通過(guò)IO從外部施加,測(cè)試響應(yīng)也不必通過(guò)IO引出觀察,從而緩解了 FPGA中IO端口數(shù)量相對(duì)于FPGA內(nèi)部邏輯規(guī)模不斷減小造成的影響。該類方法對(duì)結(jié)構(gòu)較為規(guī)整的FPGA較為有效,但隨著FPGA陣列規(guī)模的日益復(fù)雜,這類方法所帶來(lái)的優(yōu)化效果受到很大影響。
[0006] 申請(qǐng)人:發(fā)現(xiàn)現(xiàn)有技術(shù)存在如下技術(shù)缺陷:加載測(cè)試配置帶來(lái)的開銷非常大,從而影響了測(cè)試效率,提高了測(cè)試成本。
【發(fā)明內(nèi)容】
[0007](一 )要解決的技術(shù)問(wèn)題
[0008]為解決上述的一個(gè)或多個(gè)問(wèn)題,本發(fā)明提供了一種測(cè)試FPGA的裝置與方法,以減小測(cè)試配置加載的開銷。
[0009]( 二 )技術(shù)方案
[0010]根據(jù)本發(fā)明的一個(gè)方面,提供了一種測(cè)試FPGA的裝置,該測(cè)試FPGA的裝置位于FPGA芯片內(nèi),包括:自測(cè)試控制器,用于按照預(yù)設(shè)時(shí)序生成地址生成信號(hào)和回讀使能信號(hào);地址生成器,用于在地址生成信號(hào)的驅(qū)動(dòng)下,生成遍歷被測(cè)試的FPGA配置陣列的地址,并在生成每一個(gè)地址后,使該地址對(duì)應(yīng)的FPGA配置陣列處于相應(yīng)的讀寫狀態(tài);數(shù)據(jù)生成器,用于在回讀使能信號(hào)的作用下,對(duì)于由地址生成器提供的每一個(gè)地址,依據(jù)該地址從FPGA配置陣列讀取配置數(shù)據(jù),對(duì)該配置數(shù)據(jù)進(jìn)行變換形成一組新的配置數(shù)據(jù),并將該新配置數(shù)據(jù)重新寫回至FPGA配置陣列的該地址。
[0011]根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種測(cè)試FPGA的方法,其基于上述的測(cè)試FPGA的裝置,包括:步驟A,從片外加載測(cè)試碼至配置陣列,隨后施加一組測(cè)試激勵(lì),觀察測(cè)試響應(yīng),若得到正確響應(yīng),則啟動(dòng)自測(cè)試控制器;步驟B,自測(cè)試控制器收到啟動(dòng)命令后,重置地址生成器,使地址值為最低地址-1,并配置數(shù)據(jù)生成器,使數(shù)據(jù)生成器可以利用步驟A中所采用的測(cè)試配置通過(guò)變換和疊加產(chǎn)生新的激勵(lì);步驟C,地址生成器被重置后,接收自測(cè)試控制器發(fā)出的地址加I指令,并判斷當(dāng)前地址是否已超過(guò)最高地址,若未超過(guò)最高地址則進(jìn)入步驟D,否則進(jìn)入步驟E ;步驟D,自測(cè)試控制器生成回讀使能信號(hào),并將該回讀使能發(fā)送至數(shù)據(jù)生成器;數(shù)據(jù)生成器在回讀使能信號(hào)的作用下,對(duì)于由地址生成器提供的地址,從中讀取回配置數(shù)據(jù),然后對(duì)該配置數(shù)據(jù)進(jìn)行變換形成一組新的配置數(shù)據(jù),并將該新配置數(shù)據(jù)重新寫回至FPGA配置陣列的該地址中;步驟E,自測(cè)試控制器發(fā)出測(cè)試配置變換完成信號(hào),等待外部的測(cè)試設(shè)備施加測(cè)試激勵(lì)觀察測(cè)試響應(yīng);步驟F,在確認(rèn)測(cè)試響應(yīng)與期望響應(yīng)一致后,向自測(cè)試控制器發(fā)出繼續(xù)指令,自測(cè)試控制器判斷當(dāng)前的測(cè)試配置是否仍可以通過(guò)數(shù)據(jù)生成器的變換產(chǎn)生出新的測(cè)試配置,若可以進(jìn)入步驟A,否則進(jìn)入步驟G ;步驟G,若所有測(cè)試配置已經(jīng)加載完成,則結(jié)束,否則向自測(cè)試控制器發(fā)出重置指令并返回步驟A0
[0012](三)有益效果
[0013]從上述技術(shù)方案可以看出,本發(fā)明測(cè)試FPGA的裝置與方法具有以下有益效果:
[0014](I)位于FPGA芯片內(nèi),將FPGA配置存儲(chǔ)器中的測(cè)試配置變換成為另一組有效的測(cè)試配置,從而減少了從芯片外部串行加載測(cè)試配置的次數(shù),提升了測(cè)試效率,降低了測(cè)試成本;
[0015](2)不需要在FPGA陣列中插入任何邏輯,從而該測(cè)試FPGA的裝置不會(huì)對(duì)現(xiàn)有FPGA陣列的功能和性能產(chǎn)生影響,并且,該測(cè)試FPGA的裝置對(duì)用戶完全透明,不影響產(chǎn)品的應(yīng)用;
[0016](3)具有較小的面積開銷且不占用核心芯片面積,在降低測(cè)試成本的同時(shí)對(duì)生成成本的影響很小。
【專利附圖】
【附圖說(shuō)明】
[0017]圖1為根據(jù)本發(fā)明實(shí)施例的測(cè)試FPGA的裝置的結(jié)構(gòu)示意圖;
[0018]圖2為圖1所示測(cè)試FPGA的裝置中地址生成器的結(jié)構(gòu)示意圖;
[0019]圖3為圖1所示測(cè)試FPGA的裝置中數(shù)據(jù)生成器的結(jié)構(gòu)示意圖;
[0020]圖4為圖3所示數(shù)據(jù)生成器中配置塊Conf.CLB的結(jié)構(gòu)示意圖;
[0021]圖5為配置塊Conf.CLB中sw_cell的寄存器鏈片段與交換矩陣單元配置位對(duì)應(yīng)關(guān)系的不意圖;[0022]圖6根據(jù)本發(fā)明實(shí)施例的測(cè)試FPGA的裝置中自測(cè)試控制器的控制流程圖。
【具體實(shí)施方式】
[0023]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
[0024]本發(fā)明的測(cè)試FPGA的裝置及方法,通過(guò)利用數(shù)據(jù)生成器和地址生成器中的反饋和疊加裝置,將FPGA配置存儲(chǔ)器中的測(cè)試配置變換成為另一組有效的測(cè)試配置,以減少?gòu)男酒獠看屑虞d測(cè)試配置的次數(shù),提升測(cè)試效率,降低測(cè)試成本。
[0025]在本發(fā)明的一個(gè)示例性實(shí)施例中,提出了一種測(cè)試FPGA的裝置。如圖1所示,該測(cè)試FPGA的裝置包括:數(shù)據(jù)生成器12、地址生成器14和自測(cè)試控制器13。其中,自測(cè)試控制器13,用于按照預(yù)設(shè)時(shí)序生成地址生成信號(hào)和回讀使能信號(hào)。地址生成器14,用于在地址生成信號(hào)的驅(qū)動(dòng)下,生成遍歷FPGA配置陣列11的地址。數(shù)據(jù)生成器12,用于在回讀使能信號(hào)的作用下,對(duì)于由地址生成器提供的每一個(gè)地址,依據(jù)該地址從FPGA配置陣列11讀取配置數(shù)據(jù),對(duì)該配置數(shù)據(jù)進(jìn)行變換形成一組新的配置數(shù)據(jù),并將該新配置數(shù)據(jù)重新寫回至FPGA配置陣列11的該地址。以下分別對(duì)以上部件進(jìn)行詳細(xì)說(shuō)明。 [0026]地址生成器14,用于在所述地址生成信號(hào)的驅(qū)動(dòng)下,生成遍歷FPGA配置陣列的地址。一般情況下,地址生成器可通過(guò)對(duì)地址進(jìn)行遞增或者遞減操作來(lái)生成遍歷FPGA配置陣列的地址。需要說(shuō)明,地址遞增或遞減操作方式,取決于配置陣列地址的編碼方式,如采用線性地址,則地址生成器可以使用傳統(tǒng)的累加器進(jìn)行地址的遞增,在此無(wú)需冗述。
[0027]如地址生成器14采用獨(dú)熱碼地址時(shí),對(duì)于η位地址的FPGA配置陣列,該地址生成器14可采用η+1位的移位寄存器鏈,其中,第I個(gè)寄存器包含I位有效位。如圖2所示。
[0028]對(duì)于該η+1位移位寄存器鏈中的第i個(gè)移位寄存器(i = 1、2、……、η、η+1):
[0029](I)其時(shí)鐘端均連接至共同的時(shí)鐘端。當(dāng)進(jìn)行地址增加時(shí),在共同的時(shí)鐘端施加上升沿時(shí)鐘信號(hào)(elk),移位寄存器鏈進(jìn)行循環(huán)右移,在循環(huán)右移過(guò)程中,寄存器I至寄存器η所連接的讀寫通依次打開;
[0030](2)其復(fù)位端連接至共同的復(fù)位端。地址復(fù)位時(shí),在共同的復(fù)位端施加地址復(fù)位信號(hào)addr_reSet,此時(shí)除第η+1個(gè)移位寄存器的狀態(tài)為I外,其余移位寄存器狀態(tài)為0,寄存器I至寄存器η所連接的讀寫通道關(guān)閉;
[0031](3)當(dāng)i古η+1時(shí),其輸出端連接到兩部分:第一部分為第i+Ι個(gè)移位寄存器的輸入端,第二部分為共同的傳輸門或傳輸管的控制端,該控制端用于打開或者關(guān)閉讀寫通道;當(dāng)i = η+1時(shí),其輸出端連接至第I個(gè)移位寄存器的輸入端。
[0032]數(shù)據(jù)生成器12,用于在回讀使能信號(hào)的作用下,對(duì)于由地址生成器提供的每一個(gè)地址,依據(jù)該地址從FPGA配置陣列11讀取配置數(shù)據(jù),對(duì)該配置數(shù)據(jù)進(jìn)行變換形成一組新的配置數(shù)據(jù),并將該新配置數(shù)據(jù)重新寫回至FPGA配置陣列11的該地址。
[0033]需要說(shuō)明的是,數(shù)據(jù)生成器12的數(shù)據(jù)源不僅僅包括從FPGA配置陣列11回讀的當(dāng)前測(cè)試配置數(shù)據(jù),還包括從片外移位輸入的測(cè)試配置數(shù)據(jù)。
[0034]數(shù)據(jù)生成器的結(jié)構(gòu)如圖3所示。數(shù)據(jù)生成器中包含M個(gè)基本配置塊(Conf.CLB) 310其中,M為FPGA配置陣列11中CLB (Configurable LogicBlock,可配置邏輯塊)的個(gè)數(shù)。其中,CLB是構(gòu)成FPGA的最小基本單元之一,由CLB組成的陣列占據(jù)了 FPGA中絕大部分面積。
[0035]每個(gè)CLB對(duì)應(yīng)一個(gè)唯一的Conf.CLB, Conf.CLB包含了每個(gè)CLB所需要的配置信息。各個(gè)Conf.CLB構(gòu)成鏈表型結(jié)構(gòu),每個(gè)基本配置塊的結(jié)構(gòu)完全相同,一次可以提供一個(gè)配置地址下全部CLB包含的配置值。
[0036]對(duì)于該M個(gè)基本配置塊的第j個(gè)基本配置塊(j = 1、2、……、M),每個(gè)基本配置塊包含一組寄存器,該組寄存器可以把所存儲(chǔ)的值寫入對(duì)應(yīng)的配置陣列中的配置位,也可以從對(duì)應(yīng)配置位讀取配置值并寫回到改組寄存器:
[0037](I)其時(shí)鐘端均連接至共同的時(shí)鐘端clock ;
[0038](2)其復(fù)位端連接至共同的復(fù)位端;
[0039](3)當(dāng)j古M時(shí),其輸出端(shift_data_ut)連接至第j+Ι個(gè)配置塊的輸入端(shift_data_in)。
[0040](4)read_back_data用于接收配置回讀數(shù)據(jù);
[0041](5) en_read_back用于選擇是否將配置回讀數(shù)據(jù)read_back_data作為Config.CLB的數(shù)據(jù)輸入;
[0042](6) load信號(hào)用于選擇是否將shift_data_in信號(hào)作為Config.CLB的數(shù)據(jù)輸入;
[0043](7) en_sw> en_cb、en_lut...enXdevice 分別用于使能 Config.CLB 內(nèi)所對(duì)應(yīng)的不同類的移位寄存器鏈片段。例如,en_sw用于使能switch box所對(duì)應(yīng)的移位寄存器鏈片段,en_cb用于使能connection box所對(duì)應(yīng)的移位寄存器鏈片段,en_lut用于使能Iut所對(duì)應(yīng)的移位寄存器鏈片段。
[0044]進(jìn)一步的,每個(gè)配置塊Conf.CL`B的結(jié)構(gòu)如圖4所示。Conf.CLB中的移位寄存器鏈被分割為不同的片段,每個(gè)片段中的寄存器與CLB中某個(gè)器件實(shí)例的配置位相對(duì)應(yīng)。例如,在圖4中,移位寄存器鏈包含三段,sw_cell所對(duì)應(yīng)的移位寄存器鏈片段31,cb_cell所對(duì)應(yīng)的移位寄存器鏈片段32和一個(gè)4輸入LUT表所對(duì)應(yīng)的移位寄存器鏈片段33,這三類器件為典型的CLB中包含的器件。
[0045]請(qǐng)參考圖3及圖4, read_back_data用于接收配置回讀數(shù)據(jù)與各自對(duì)應(yīng)的回讀總線17相連接,en_read_back為多路選擇器38 (MUX)的選擇端,回讀的數(shù)據(jù)在該信號(hào)為I的情況下可以寫入各個(gè)寄存器34。在en_read_back為O的情況下,34的輸入來(lái)自另一 MUX的輸出36。該MUX在load信號(hào)的控制下選擇shift_data_in或來(lái)自各移位寄存器鏈片段中對(duì)應(yīng)寄存器的邏輯計(jì)算值。例如:cb_cell 32對(duì)應(yīng)的MUX 311的輸入端為反相器39的輸出。lut_cell 33中的MUX 313的對(duì)應(yīng)輸入端為寄存器314和315異或結(jié)果。需要說(shuō)明的是本發(fā)明并不局限于這兩類邏輯門,凡是可以形成期望配置序列的反饋結(jié)構(gòu)都可以添加到反饋通路上。en_sw、en_cb、en_lut...enXdevice起到門控時(shí)鐘的作用,例如當(dāng)en_sw為低時(shí),與門317的輸出為O,時(shí)鐘clock的傳播被阻止,通過(guò)這種方式,可以單獨(dú)的控制Config.CLB的各個(gè)寄存器鏈片段。
[0046]圖5為配置塊Conf.CLB中sw_cell的寄存器鏈片段與交換矩陣單元配置位對(duì)應(yīng)關(guān)系的示意圖。圖5所示的典型交換矩陣單元中,包含6個(gè)配置位(41~46),分別控制4個(gè)方向(N,E,S,W)的數(shù)據(jù)交換。配置位(41~46) —一對(duì)應(yīng)移位寄存器鏈31中的寄存器I~6。寄存器I (34)的邏輯值可以寫入配置位41,配置位41的邏輯狀態(tài)也可寫入寄存器1(34)。類似的,可以構(gòu)成寄存器鏈cb_cell 32、lut_cell 33等。每個(gè)寄存器鏈片段擁有各自的使能信號(hào)。如sw_cell的時(shí)鐘使能信號(hào)為en_sw ;cb_cell的時(shí)鐘使能信號(hào)為en_cb ;lut_cell的時(shí)鐘使能信號(hào)en_lut。需要說(shuō)明的是,一類器件共用一個(gè)使能信號(hào),因FPGA具有高度的重復(fù)性,器件的種類較少,使能信號(hào)不會(huì)給設(shè)計(jì)帶來(lái)過(guò)大的開銷。
[0047]自測(cè)試控制器,用于調(diào)度數(shù)據(jù)生成器和地址生成器協(xié)同工作,向數(shù)據(jù)生成器和地址生成器提供控制信號(hào),使其按照約定步驟工作。為了后續(xù)說(shuō)明,首先將該自測(cè)試控制器涉及的各種信號(hào)進(jìn)行列表如下:
[0048]一、片外輸入的控制信號(hào)包括:
[0049]主復(fù)位信號(hào):用于本發(fā)明測(cè)試FPGA的裝置的整體復(fù)位。
[0050]主時(shí)鐘信號(hào):用于為本發(fā)明測(cè)試FPGA的裝置提供同步時(shí)鐘。
[0051]控制器使能信號(hào):暫停/繼續(xù)自測(cè)試控制器的內(nèi)部狀態(tài)機(jī)。
[0052]片外加載使能信號(hào):該信號(hào)有效時(shí),測(cè)試配置或測(cè)試地址可以從片外寫入。
[0053]向片外輸出的狀態(tài)信號(hào)包括:
[0054]測(cè)試激勵(lì)請(qǐng)求信號(hào):當(dāng)該信號(hào)有效時(shí),可以向待測(cè)芯片施加測(cè)試激勵(lì)。該信號(hào)表示一組測(cè)試加載完成。
[0055]測(cè)試配置請(qǐng)求信號(hào):該信號(hào)有效時(shí),可以從片外寫入新的測(cè)試配置。該信號(hào)表示當(dāng)前測(cè)試配置不能通過(guò)移位和疊加變換成為新的有效測(cè)試配置。
[0056]二、向地址生成器14輸出的控制信號(hào)包括:復(fù)位信號(hào)、地址生成器的主時(shí)鐘,地址增/減信號(hào),部分信號(hào)說(shuō)明如下:
[0057]地址復(fù)位信號(hào)(addr reset):置讀/寫通道為關(guān)閉狀態(tài)。
[0058]地址增信號(hào):對(duì)當(dāng)前地址遞增I。
[0059]三、向數(shù)據(jù)生成器12輸出的控制信號(hào)包括:數(shù)據(jù)生成器主時(shí)鐘、回讀使能信號(hào)、力口載使能信號(hào)和一組基本單元使能信號(hào)。部分信號(hào)說(shuō)明如下:
[0060]回讀使能信號(hào)(en_read_back):該信號(hào)有效時(shí),配置陣列中的數(shù)據(jù)可以寫回至數(shù)據(jù)生成器。
[0061]加載使能信號(hào)(load):該信號(hào)有效時(shí),片外輸入的測(cè)試配置可以寫入至數(shù)據(jù)生成器。
[0062]基本單元使能信號(hào):該信號(hào)有效時(shí),時(shí)鐘信號(hào)可以傳播至所對(duì)應(yīng)的寄存器鏈的片段,如交換矩陣單元(sw_cell)、連接矩陣單元(cb_cell)、查找表(lut_cell)等。
[0063]本發(fā)明還提供一種測(cè)試配置生成方法,包括圖6所述步驟。
[0064]步驟A,從片外加載測(cè)試碼至配置陣列,隨后施加一組測(cè)試激勵(lì),觀察測(cè)試響應(yīng),若得到正確響應(yīng)則,則啟動(dòng)自測(cè)試控制器;
[0065]步驟B,所述自測(cè)試控制器收到啟動(dòng)命令后,重置地址生成器,使地址值為最低地址-1,并配置數(shù)據(jù)生成器,使數(shù)據(jù)生成器可以利用步驟A中所采用的測(cè)試配置通過(guò)變換和疊加產(chǎn)生新的激勵(lì)。
[0066]步驟C,所述地址生成器被重置后,接收自測(cè)試控制器發(fā)出的地址加I指令,并判斷當(dāng)前地址是否已超過(guò)最高地址,若未超過(guò)最高地址則進(jìn)入步驟D,否則進(jìn)入步驟E ;
[0067]步驟D,所述自測(cè)試控制器生成回讀使能信號(hào),并將該回讀使能發(fā)送至所述數(shù)據(jù)生成器;數(shù)據(jù)生成器在所述回讀使能信號(hào)的作用下,對(duì)于由所述地址生成器提供的地址,從中讀取回配置數(shù)據(jù),然后對(duì)該配置數(shù)據(jù)進(jìn)行變換形成一組新的配置數(shù)據(jù),并將該新配置數(shù)據(jù)重新寫回至FPGA配置陣列的該地址中
[0068]步驟E,自測(cè)試控制器發(fā)出測(cè)試配置變換完成信號(hào),等待外部的測(cè)試設(shè)備施加測(cè)試激勵(lì)觀察測(cè)試響應(yīng)。此時(shí),測(cè)試設(shè)備可以向待測(cè)FPGA施加激勵(lì)并觀察響應(yīng)。
[0069]步驟F,在確認(rèn)測(cè)試響應(yīng)與期望響應(yīng)一致后,向自測(cè)試控制器發(fā)出繼續(xù)指令,自測(cè)試控制器判斷當(dāng)前的測(cè)試配置是否仍可以通過(guò)數(shù)據(jù)生成器的變換產(chǎn)生出新的測(cè)試配置,若可以進(jìn)入步驟A,否則進(jìn)入步驟G。
[0070]步驟G,若所有測(cè)試配置已經(jīng)加載完成,則結(jié)束,否則向自測(cè)試控制器發(fā)出重置指令并返回步驟A。
[0071]為執(zhí)行步驟A,需使圖3電路構(gòu)成寄存器鏈,因此將load信號(hào)置位1,使能所有寄存器鏈片段:置en_sw、en_cb、en_lut...為有效狀態(tài),并禁止回讀en_read_back = O,在這種情況下,測(cè)試配置的加載過(guò)程與傳統(tǒng)配置加載過(guò)程基本一致,過(guò)程不在冗述。
[0072]為執(zhí)行步驟B,需要對(duì)地址生成器進(jìn)行初始化。具體操作為。置位地址復(fù)位信號(hào)(addr_rest),此時(shí)地址生成器中,除第η+1位寄存器外,其余寄存器均為O。η位的地址輸出均為O。讀寫通道關(guān)閉。
[0073]步驟C包括地址增I操作,可行的一種實(shí)施方式為,循環(huán)右移I次,此時(shí)寄存器鏈中的邏輯狀態(tài)由0000...1變換為1...0000。成為最低地址。
[0074]為實(shí)現(xiàn)步驟D,需完成如下三個(gè)子步驟
[0075]步驟Dl:從配置陣列中讀取當(dāng)前地址所指向的配置數(shù)據(jù),并讀入數(shù)據(jù)生成器
[0076]步驟D2:數(shù)據(jù)生成器對(duì)回讀數(shù)據(jù)進(jìn)行疊加和變換形成一組新的測(cè)試激勵(lì)
[0077]步驟D3:將新產(chǎn)生的測(cè)試激勵(lì)寫入當(dāng)前地址所指向的配置陣列的地址中。
[0078]其中,步驟Dl可以從配置陣列11中的配置位的邏輯值,逐地址回讀至數(shù)據(jù)生成器12,包含如下子步驟:
[0079]步驟Dll:置圖2中的地址復(fù)位信號(hào)addr reset,此時(shí)除η+1個(gè)移位寄存器的狀態(tài)為I外,其余移位寄存器狀態(tài)為0,讀寫通道關(guān)閉。
[0080]步驟D12:由自測(cè)試控制器發(fā)送X個(gè)上升沿至圖2的時(shí)鐘端clk,此時(shí)移位寄存器中的I移位到第X個(gè)寄存器,指定配置地址的讀寫通道打開。
[0081]步驟D13:由自測(cè)試控制器向FPGA配置陣列發(fā)送讀使能信號(hào),將圖3中回讀使能信號(hào)(en_read_back)信號(hào)置位1,并使能所有寄存器鏈片段:置en_sw、en_cb、en_lut...enXdevice為有效,上述動(dòng)作完成后,自測(cè)試控制器向圖3中的時(shí)鐘信號(hào)clock發(fā)送一個(gè)上升沿,回讀數(shù)據(jù)從read_back_data寫入數(shù)據(jù)生成器的寄存器中。
[0082]其中,步驟D2對(duì)Config.CLB中存儲(chǔ)的測(cè)試配置數(shù)據(jù)進(jìn)行變換,將原有測(cè)試配置數(shù)據(jù)變換為新的測(cè)試配置,包括如下步驟:
[0083]步驟D21:將加載使能信號(hào)(load)置O,回讀使能信號(hào)(en_read_back)置O,使得各器件對(duì)應(yīng)的寄存器鏈片段各自構(gòu)成反饋環(huán)。
[0084]步驟D22:置相應(yīng)的en_Xdevice為1,使能一類器件,并等待相應(yīng)的時(shí)鐘周期。例如,置en_sw= I使能sw_cell_41,此時(shí)其余器件處于禁用狀態(tài)。假設(shè)當(dāng)前sw_cell_41中的觸發(fā)器I?6中存儲(chǔ)的邏輯狀態(tài)為100_000,而目標(biāo)狀態(tài)010_000,此時(shí),需等待一個(gè)clock時(shí)鐘周期,經(jīng)過(guò)移位和反饋達(dá)到目標(biāo)狀態(tài)。對(duì)于圖4所示的交換矩陣基本單元,100_000對(duì)應(yīng)為W與S間的數(shù)據(jù)通路打開,010_000對(duì)應(yīng)為W與N間的數(shù)據(jù)通路打開,因此,不需重新加載整個(gè)移位寄存器鏈,就可以實(shí)現(xiàn)配置的更新。需要說(shuō)明的是,器件使能信號(hào)并非要滿足獨(dú)熱特性,如果兩組變換不相互影響,可以同時(shí)進(jìn)行。
[0085]步驟D23:判斷是否全部器件的變換已經(jīng)完成,若否,則返回步驟D22,若是,則進(jìn)入步驟D24。假設(shè),當(dāng)前時(shí)刻lut_cell 33尚未進(jìn)過(guò)變換,則返回S42,并僅使能en_lut信號(hào),經(jīng)若干周期后,新測(cè)試配置生成。需要說(shuō)明的是,在lut_cell 33在反饋路徑上插入了異或門,從而可以實(shí)現(xiàn)了 15種狀態(tài)的遍歷。不同的器件可以根據(jù)各自的配置位特點(diǎn),設(shè)計(jì)相應(yīng)的反饋疊加通路,并不局限于圖3所示的反饋通路設(shè)計(jì)方案。
[0086]步驟D24:禁用所有使能信號(hào),置 en_sw、en_cb、en_lut...en_Xdevice 為 0,所有數(shù)據(jù)保持在移位寄存器。由地址生成器產(chǎn)生目標(biāo)地址,將當(dāng)前數(shù)據(jù)鏈中的配置數(shù)據(jù)寫入配置陣列中。
[0087]以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種測(cè)試FPGA的裝置,其特征在于,位于FPGA芯片內(nèi),包括:一數(shù)據(jù)生成器、一地址生成器、一自測(cè)試控制器;其中, 自測(cè)試控制器,用于按照預(yù)設(shè)時(shí)序生成地址生成信號(hào)和回讀使能信號(hào); 地址生成器,與被測(cè)試FPGA配置陣列相連接,用于在所述地址生成信號(hào)的驅(qū)動(dòng)下,生成遍歷被測(cè)試的FPGA配置陣列的地址,并使該地址對(duì)應(yīng)的FPGA配置陣列處于相應(yīng)的讀寫狀態(tài); 數(shù)據(jù)生成器,與被測(cè)試FPGA配置陣列相連接,用于在回讀使能信號(hào)的作用下,對(duì)于由地址生成器提供的每一個(gè)地址,依據(jù)該地址,從FPGA配置陣列讀取配置數(shù)據(jù),對(duì)該配置數(shù)據(jù)進(jìn)行變換形成一組新的測(cè)試配置數(shù)據(jù),然后將新產(chǎn)生的測(cè)試配置數(shù)據(jù)重新寫回至FPGA配置陣列的該地址。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于: 所述地址生成器,用于在所述地址生成信號(hào)的驅(qū)動(dòng)下,通過(guò)對(duì)地址進(jìn)行遞增或者遞減操作來(lái)生成遍歷FPGA配置陣列的地址。
3.根據(jù)權(quán)利要求2所述的裝置,其特征在于,對(duì)于η位地址的FPGA配置陣列,該地址生成器為η+1位的移位寄存器鏈; 對(duì)于該η+1位移位寄存器鏈中的第i個(gè)移位寄存器,其中,i = 1、2、……、n、n+l: 其時(shí)鐘端均連接至共同的時(shí)鐘端; 其復(fù)位端連接至共同的復(fù)位端; 其輸出端:當(dāng)i #n+l時(shí),連接到兩部分:第一部分為第i+Ι個(gè)移位寄存器的輸入端,第二部分為共同的傳輸門或傳輸管`的控制端,該控制端用于打開或者關(guān)閉讀寫通道;當(dāng)i =η+1時(shí),其輸出端連接至第I個(gè)移位寄存器的輸入端。
4.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述數(shù)據(jù)生成器包括一條或多條帶有反饋的移位寄存器鏈,每個(gè)帶有反饋的移位寄存器鏈由多個(gè)帶有反饋的移位寄存器片段組成。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于, FPGA配置陣列中的配置位可與帶有反饋的移位寄存器鏈中的某個(gè)寄存器連接,形成邏輯通路; 所述的帶有反饋的移位寄存器片段,用于將內(nèi)部存儲(chǔ)的配置數(shù)據(jù)通過(guò)疊加和反饋轉(zhuǎn)換成新的配置數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述帶有反饋的移位寄存器片段內(nèi)包含的寄存器與所述FPGA配置陣列中的一段形成一對(duì)多的對(duì)應(yīng)關(guān)系。
7.根據(jù)權(quán)利要求5所述的裝置,其特征在于:所述的寄存器片段的初始數(shù)據(jù)是由該裝置之外寫入的。
8.一種測(cè)試FPGA的方法,其特征在于,基于權(quán)利要求1所述的測(cè)試FPGA的裝置,包括: 步驟Α,從片外加載測(cè)試碼至配置陣列,隨后施加一組測(cè)試激勵(lì),觀察測(cè)試響應(yīng),若得到正確響應(yīng),則啟動(dòng)自測(cè)試控制器; 步驟B,所述自測(cè)試控制器收到啟動(dòng)命令后,重置地址生成器,使地址值為最低地址-1,并配置數(shù)據(jù)生成器,使數(shù)據(jù)生成器可以利用步驟A中所采用的測(cè)試配置通過(guò)變換和疊加產(chǎn)生新的激勵(lì);步驟C,所述地址生成器被重置后,接收自測(cè)試控制器發(fā)出的地址加I指令,并判斷當(dāng)前地址是否已超過(guò)最高地址,若未超過(guò)最高地址則進(jìn)入步驟D,否則進(jìn)入步驟E ; 步驟D,所述自測(cè)試控制器生成回讀使能信號(hào),并將該回讀使能發(fā)送至所述數(shù)據(jù)生成器;數(shù)據(jù)生成器在所述回讀使能信號(hào)的作用下,對(duì)于由所述地址生成器提供的地址,從中讀取回配置數(shù)據(jù),然后對(duì)該配置數(shù)據(jù)進(jìn)行變換形成一組新的配置數(shù)據(jù),并將該新配置數(shù)據(jù)重新寫回至FPGA配置陣列的該地址中; 步驟E,自測(cè)試控制器發(fā)出測(cè)試配置變換完成信號(hào),等待外部的測(cè)試設(shè)備施加測(cè)試激勵(lì)觀察測(cè)試響應(yīng); 步驟F,在確認(rèn)測(cè)試響應(yīng)與期望響應(yīng)一致后,向自測(cè)試控制器發(fā)出繼續(xù)指令,自測(cè)試控制器判斷當(dāng)前的測(cè)試配置是否仍可以通過(guò)數(shù)據(jù)生成器的變換產(chǎn)生出新的測(cè)試配置,若可以進(jìn)入步驟A,否則進(jìn)入步驟G ; 步驟G,若所有測(cè)試配置已經(jīng)加載完成,則結(jié)束,否則向自測(cè)試控制器發(fā)出重置指令并返回步驟A。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述步驟B包括: 所述地址生成器在所述地址生成信號(hào)的驅(qū)動(dòng)下,通過(guò)對(duì)地址進(jìn)行遞增或者遞減操作來(lái)生成遍歷FPGA配置 陣列 的地址。
10.根據(jù)權(quán)利要求8或9所述的方法,其特征在于,所述數(shù)據(jù)生成器中一條或多條帶有反饋的移位寄存器片段,用于將內(nèi)部存儲(chǔ)的配置數(shù)據(jù)通過(guò)疊加和反饋轉(zhuǎn)換成新的配置數(shù)據(jù)。
【文檔編號(hào)】G01R31/317GK103792487SQ201210427357
【公開日】2014年5月14日 申請(qǐng)日期:2012年10月31日 優(yōu)先權(quán)日:2012年10月31日
【發(fā)明者】王飛, 楊海鋼 申請(qǐng)人:中國(guó)科學(xué)院電子學(xué)研究所