顏學(xué)龍+尹亮亮+陳壽宏
摘 要: 為解決復(fù)雜芯片的測試與調(diào)試問題,提出支持IEEE 1149.7標準的邊界掃描控制器。在對IEEE 1149.7標準和邊界掃描測試技術(shù)進行深入研究的基礎(chǔ)上,利用上位機進行軟件編程,通過Quartus Ⅱ平臺進行IP核的開發(fā),成功設(shè)計出了支持IEEE 1149.7標準的邊界掃描測試控制器。實驗結(jié)果表明,控制器能夠產(chǎn)生符合IEEE 1149.7標準的兩線星型信號和四線輸出信號。
關(guān)鍵詞: IEEE 1149.7標準; USB總線; MScan掃描格式; 邊界掃描控制器
中圖分類號: TN820.2?34; TN407 文獻標識碼: A 文章編號: 1004?373X(2017)04?0147?04
Design and research on boundary scan controller according with IEEE Std 1149.7
YAN Xuelong1,2, YIN Liangliang1,2, CHEN Shouhong1,2
(1. School of Electronic Engineering and Automation, Guilin University of Electronic Technology, Guilin 541004, China;
2. Guangxi Key Laboratory of Automatic Detecting Technology and Instruments, Guilin 541004, China)
Abstract: Aiming at the test and debugging problems of complex chips, a boundary scan controller according with IEEE Std 1149.7 is proposed. On the basis of deeply studying the IEEE Std 1149.7 and boundary scan test technology, the upper computer is used to perform the software programming and the IP core is developed by means of the Quartus Ⅱ platform to design the boundary scan test controller according with IEEE Std 1149.7. The experimental results show this controller can generate the two?line star signal and four?line output signal according with IEEE Std 1149.7.
Keywords: IEEE Std 1149.7; USB bus; MScan scanning format; boundary scan controller
0 引 言
IEEE 1149.1標準自20世紀80年代提出以來,在集成電路的測試和故障診斷中發(fā)揮了重要的作用,但是,隨著芯片一體化的加劇,傳統(tǒng)的測試方法已經(jīng)不能很好地滿足現(xiàn)階段對測試與調(diào)試的多方面要求。在此種情況下,可測試性總線標準委員會于2009年一致表決通過了IEEE 1149.7標準,該標準兼容IEEE 1149.1所規(guī)定的所有功能,同時增加了新的功能,提供了一種全新的雙引腳測試與調(diào)試方法[1?2]。
在對IEEE 1149.7標準研究的基礎(chǔ)上,文獻[2]對所設(shè)計的控制器的IP核只進行了功能仿真,沒進行時序仿真及下載到實際FPGA芯片中,文獻[3]和文獻[4]主要實現(xiàn)了IEEE 1149.7標準兩線星型掃描的功能層級仿真,而且沒進行實際電路的驗證及上位機軟件研究。
目前,符合IEEE 1149.7標準的測試控制器大部分還只停留在仿真層級,沒考慮實際電路中的信號延時問題。所以本文所設(shè)計的基于實際電路板的邊界掃描控制器,在技術(shù)上有了很大的進步,對其進一步發(fā)展具有非常重要的實際意義。
1 ZBS和MScan掃描格式
1.1 ZBS
所謂ZBS(Zero?Bit Scan),是指TAP(Test Access Port)控制器的一個DR(Data Register)掃描的狀態(tài)序列從Select?DR狀態(tài)開始,到Updata?DR狀態(tài)結(jié)束,中間不經(jīng)過Shift?DR狀態(tài)。一次完整的ZBS的產(chǎn)生有兩條路徑,第一種是從Select?DR狀態(tài)開始,然后經(jīng)過Capture?DR,Exit1?DR狀態(tài),最后到達Update?DR狀態(tài);另一種是從Select?DR狀態(tài)開始,然后經(jīng)過Capture?DR,Exit1?DR,一個或多個Pause?DR,Exit2?DR,最后到達Update?DR狀態(tài)。在狀態(tài)轉(zhuǎn)換的時候一旦經(jīng)過Shift?DR狀態(tài),控制等級即被鎖定,當控制等級鎖定在2時,表示TAP.7控制器命令。
圖1表示的是TAP控制器的16狀態(tài)機,所有的狀態(tài)轉(zhuǎn)換都發(fā)生在TCK(Test Clock)的上升沿,箭頭上的0和1代表的是在TCK的上升沿采樣到的TMS(Test Mode Select)的低電平和高電平。在所有的16個狀態(tài)中,有6個穩(wěn)定的狀態(tài),它們分別是Test?Logic?Reset,Run?Test/Idle,Shift?DR,Capture?DR,Shift?IR和Capture?IR。
1.2 MScan掃描格式
MScan掃描格式是惟一一個同時支持直接分配TAP控制器地址和間接分配TAP控制器地址的掃描格式[3]。MScan掃描格式由延遲單元和掃描數(shù)據(jù)包組成,所產(chǎn)生的載荷單元有至少6個TCKC(Test Clock)信號周期,對于每個TAPC(Test Access Port Controller)狀態(tài),輸入/輸出信息流包含同樣的信息。
圖2中,MScan掃描格式的SP(Scan Packet)包包含6位信息,nTDI和TMS表示的是控制器向被測目標發(fā)送的信息,PC0,RDY,PC1,TDO(Test Data Output)四位表示的是控制器從被測目標讀回的數(shù)據(jù)信息。
2 控制器的設(shè)計
2.1 硬件設(shè)計
2.1.1 控制器的總體設(shè)計
邊界掃描控制器通過USB 2.0接口和上位機進行通信,通過上位機程序調(diào)用數(shù)據(jù)庫里預(yù)先設(shè)定好的測試指令和數(shù)據(jù)發(fā)送給控制器,控制器產(chǎn)生符合IEEE 1149.7標準協(xié)議的波形信號發(fā)送給被測系統(tǒng),同時從讀取被測系統(tǒng)的測試響應(yīng)插入至數(shù)據(jù)庫,方便系統(tǒng)進行故障診斷。總體設(shè)計框圖如圖3所示。
2.1.2 1149.1邊界掃描控制器單元
1149.1邊界掃描控制器單元由Cypress公司的USB轉(zhuǎn)換芯片CY7C68013A?128AC和JTAG主控芯片ACT8990構(gòu)建而成。USB轉(zhuǎn)換芯片進行USB協(xié)議數(shù)據(jù)的轉(zhuǎn)換,實現(xiàn)上位機和邊界掃描控制器的通信,將上位機發(fā)送的數(shù)據(jù)轉(zhuǎn)換成JTAG主控芯片能夠識別的信號,通過ACT8990進行操作之后發(fā)送給FPGA模塊,從而產(chǎn)生符合IEEE 1149.7標準的測試信號。
USB轉(zhuǎn)換芯片在向下發(fā)送測試數(shù)據(jù)和測試指令的同時,將從被測系統(tǒng)返回的測試響應(yīng)傳輸給上位機,方便系統(tǒng)進行后續(xù)的故障診斷[5]。因此,它對整個測試系統(tǒng)的構(gòu)建起著舉足輕重的作用。
2.1.3 FPGA模塊
由圖3可知,F(xiàn)PGA模塊通過TDO信號線接收IEEE 1149.1邊界掃描控制器發(fā)送過來的數(shù)據(jù),對自身的各個寄存器進行配置,產(chǎn)生符合IEEE 1149.7標準的測試信號。當為兩線星型掃描時,通過TCKC(Test Clock),TMSC(Test Mode Select)兩個信號線將數(shù)據(jù)發(fā)送給被測系統(tǒng),返回的測試響應(yīng)也打包在TMSC上傳輸給上位機;當為四線輸出測試時,通過TDOC(Test Data Output)向被測系統(tǒng)發(fā)送數(shù)據(jù),TDIC(Test Data Input)接收被測系統(tǒng)返回的測試響應(yīng),TCKC和TMSC相互配合完成狀態(tài)的轉(zhuǎn)換。發(fā)送和接收過程中所有的狀態(tài)轉(zhuǎn)換均要符合圖1所示的TAP控制器狀態(tài)機的轉(zhuǎn)換機制。
FPGA模塊的開發(fā)是在Quartus Ⅱ應(yīng)用平臺上,基于Verilog語言進行IP核的設(shè)計,采用自頂向下的設(shè)計方法[4,6]。通過頂層模塊調(diào)用ZBS,MScan,Command等各個功能模塊,依次進行ZBS循環(huán)鎖定控制級別命令的發(fā)送、測試數(shù)據(jù)的發(fā)送。
2.2 軟件設(shè)計
2.2.1 設(shè)備驅(qū)動程序
設(shè)備驅(qū)動程序是上位機和邊界掃描控制器部分進行通信的橋梁,上位機只有通過這個硬件接口才能控制設(shè)備進行相應(yīng)的工作,其在整個系統(tǒng)中占據(jù)十分重要的地位。本系統(tǒng)驅(qū)動程序以WDM(Windows Driver Model)為基礎(chǔ),采用軟件開發(fā)包DDK(Device Driver Kits)進行開發(fā),DDK為驅(qū)動程序的開發(fā)提供了所需的資源文件、開發(fā)技術(shù)文檔、編譯連接程序等[7]。設(shè)備的驅(qū)動程序主要包含INF文件(Device information File),固件下載驅(qū)動。
其中,INF文件是一種純文本文件,有自己的編寫規(guī)則,每一個INF文件都是按照這些規(guī)則進行編寫的。它是對設(shè)備信息的描述文件,其中包含了設(shè)備的描述信息或腳本信息,用于控制設(shè)備驅(qū)動的安裝,當USB設(shè)備連接到上位機,系統(tǒng)會搜索所有INF文件中的信息,并與上位機獲取到的USB設(shè)備的接口信息或設(shè)備信息做對比,從而找到與該USB設(shè)備匹配的INF文件,繼而根據(jù)INF文件中的安裝信息,正確安裝設(shè)備的驅(qū)動程序。
固件下載驅(qū)動的作用是下載固件程序到USB控制芯片CY7C68013的內(nèi)部RAM(Random?Access Memory)中。本系統(tǒng)所用到的固件下載驅(qū)動是bulkloader.sys,其生成過程是轉(zhuǎn)換用戶的固件程序為C文件,然后用DDK軟件開發(fā)包編譯產(chǎn)生。當邊界掃描控制器和上位機連接之后,上位機獲得INF文件中的安裝信息,加載固件下載驅(qū)動。
2.2.2 固件程序
固件程序是寫入EROM(Erasable Read Only Memory)或E2PROM(Electrically Erasable Programmable Read?Only Memory)中的程序,它是系統(tǒng)工作的底層軟件,決定著硬件設(shè)備的質(zhì)量和性能。CY7C68013固件程序的編寫基于Cypress提供的固件框架,其主要包含fw.c和bulkloop.c兩個文件。bulkloop.c文件是固件程序的核心部分,其主要包括外圍設(shè)備操作函數(shù),在此文件中添加相應(yīng)代碼來實現(xiàn)外圍設(shè)備功能。本系統(tǒng)中,固件程序主要實現(xiàn)的功能是將上位機發(fā)送過來的數(shù)據(jù)進行解析然后發(fā)送給JTAG控制器ACT8990相應(yīng)的寄存器,同時從ACT8990的緩沖區(qū)中讀取測試響應(yīng)。
2.2.3 上位機應(yīng)用程序
上位機應(yīng)用程序基于VC++ 6.0進行設(shè)計開發(fā),負責從數(shù)據(jù)庫提取測試數(shù)據(jù)發(fā)送給邊界掃描控制器,同時接收返回來的響應(yīng)插入數(shù)據(jù)庫。軟件流程圖見圖4。
應(yīng)用程序主要包括對ACT8990的配置,測試數(shù)據(jù)的處理,數(shù)據(jù)的發(fā)送和接收,以及對響應(yīng)的處理等模塊,其中,主要通過設(shè)備控制函數(shù)DeviceIoControl()完成數(shù)據(jù)的發(fā)送和接收。
3 邊界掃描控制器驗證
邊界掃描控制器經(jīng)USB 2.0接口和上位機進行通信,通過上位機程序調(diào)用數(shù)據(jù)庫里預(yù)先設(shè)定好的數(shù)據(jù)發(fā)送給控制器,控制器根據(jù)接收到的指令和數(shù)據(jù)進行相應(yīng)的操作,產(chǎn)生符合IEEE 1149.7標準的測試信號,發(fā)送給被測系統(tǒng)。同時經(jīng)USB?Blaster傳輸線通過Quartus Ⅱ軟件里的SignalTap Ⅱ Logic Analyzer采樣控制器所產(chǎn)生的信號輸出至上位機顯示,進行分析驗證。
3.1 兩線星型信號分析驗證
兩線星型掃描部分,以MScan掃描格式為例,上位機按照從低位到高位先后發(fā)送預(yù)先設(shè)定好的測試數(shù)據(jù),數(shù)據(jù)的十六進制格式內(nèi)容如下:00 00 00 00 00 00 24 02 00 00 06 00 00 00 00 00 00 00 23 10 00 00 00 00 00 00 1A 02??刂破鞲鶕?jù)上位機所發(fā)送的配置指令數(shù)據(jù),首先進行ZBS狀態(tài)循環(huán),進行兩次ZBS狀態(tài)循環(huán)鎖定控制級別為2,然后發(fā)送STFMT(Store Format)命令,選擇MScan掃描格式,在前者發(fā)送的指令的基礎(chǔ)上,發(fā)送CP(Check Packet)包,最后進行SP包數(shù)據(jù)的發(fā)送和接收。
如圖5所示,在T0時刻控制器處于Run?Test/Idle狀態(tài),之后在TCKC的上升沿依次采集到TMSC的值為“1010111”,根據(jù)狀態(tài)轉(zhuǎn)換圖,狀態(tài)經(jīng)過Select?DR,Capture?DR,Exit1?DR,Pause?DR,Exit2?DR,Update?DR,完成一次ZBS循環(huán),最后回到Select?DR狀態(tài),狀態(tài)繼續(xù)循環(huán),在T1時刻完成兩次ZBS循環(huán),T2時刻經(jīng)過Shift?DR狀態(tài),從而將控制等級鎖定在等級2,T3時刻開始發(fā)送STFMT命令,其中CP1包的內(nèi)容是00011,就是在Shift?DR狀態(tài)循環(huán)3次,CP2包的內(nèi)容是10000,在Shift?DR狀態(tài)循環(huán)16次,最后,CP檢查包的內(nèi)容是0000,代表標準協(xié)議到高級協(xié)議的轉(zhuǎn)換結(jié)束,即在T4時刻選定MScan掃描格式,T5時刻開始進行兩線傳輸(即通過TCKC和TMSC進行傳輸),其中MScan掃描格式的SP包包含nTDI,TMS,PC0,RDY,PC1,TDO六個位的信息,如圖5所示。
3.2 四線輸出信號分析驗證
上位機從低位到高位先后發(fā)送十六進制格式的數(shù)據(jù):00 00 00 00 00 00 00 00 1E FF 1E DF 1E B0 1E 92 1E 77 1E 5B 1E 33 1E 1A 00 00 00 00 00 00 00 00 2A 02 00 00 00 00 00 00 00 00 1A 02;通過SignalTap Ⅱ Logic Analyzer所采樣的時序信號中,ZBS指令部分和MScan兩線掃描部分相同,首先進行ZBS狀態(tài)循環(huán),兩次ZBS循環(huán)后,狀態(tài)經(jīng)過Shift?DR,隨即鎖定控制級別為2;基于ZBS指令產(chǎn)生的控制級別2的基礎(chǔ)上,緊接著控制器開始向被測系統(tǒng)發(fā)送CIDA(Controller ID Allocate)指令;執(zhí)行完CIDA中的CP1和CP2后,控制器開始執(zhí)行CP3的操作,共發(fā)送35位的CP3。
如圖6所示,根據(jù)TCKC和TMSC的時序關(guān)系可知,首先進行ZBS循環(huán),在完成兩次ZBS循環(huán)之后,在T1時刻鎖定控制等級為2,T2時刻開始發(fā)送CIDA命令。其中CIDA指令是一個三部分命令,它的作用是給每一個T3層及T3層以上的TAP.7控制器分配一個惟一的識別號,這個識別號只能被單獨訪問,CIDA指令選擇列舉的掃描路徑。T3時刻開始發(fā)送CIDA命令的CP3。
4 結(jié) 語
所設(shè)計的邊界掃描控制器能夠成功的根據(jù)上位機發(fā)送的配置數(shù)據(jù)產(chǎn)生符合IEEE 1149.7標準的測試信號,既能完成兩線星型掃描格式信號的產(chǎn)生,也能產(chǎn)生四線輸出的測試信號,對于進一步研究IEEE 1149.7 標準的測試系統(tǒng)具有非常重要的意義。
參考文獻
[1] IEEE. IEEE Standard for reduced?pin and enhanced?functionality test access port and boundary?scan architecture: IEEE Std 1149.7?2009 [S]. America: IEEE, 2009.
[2] 陳壽宏,顏學(xué)龍,黃新.基于IEEE 1149.7標準的CJTAG測試設(shè)計方法研究[J].測控技術(shù)與儀器儀表,2013,39(1):79?82.
[3] 楊軻,顏學(xué)龍.IEEE 1149.7標準兩線星型掃描格式研究[J].微電子學(xué)與計算機,2015(10):147?150.
[4] 建珍珍,顏學(xué)龍.兩線星型掃描測試控制器設(shè)計[J].大眾科技,2012(3):63?66.
[5] 耿建平,陳林艷,尚玉玲.USB?1149.1邊界掃描控制器的設(shè)計與實現(xiàn)[J].計算機測量與控制,2014(3):919?922.
[6] 高艷輝.基于FPGA的邊界掃描控制器的設(shè)計[D].鎮(zhèn)江:江蘇大學(xué),2010.
[7] 蒙智敏,陳曉敏.基于USB 2.0的邊界掃描控制器的設(shè)計[J].電子技術(shù),2011,38(5):29?31.
[8] 陳光?,潘中良.可測性設(shè)計技術(shù)[M].北京:電子工業(yè)出版社,1997.
[9] 史江義.基于IP核的SoC設(shè)計關(guān)鍵技術(shù)研究[D].西安:西安電子科技大學(xué),2007.
[10] 徐志磊,郭箏.基于IEEE 1149.7的新一代測試界接口實現(xiàn)與應(yīng)用[J].信息技術(shù),2010(8):164?166.