摘 要: 隨著片上網(wǎng)絡(luò)(Network-on-Chip,NoC)技術(shù)的發(fā)展,片上網(wǎng)絡(luò)系統(tǒng)的測(cè)試成為不可或缺的一部分。NoC系統(tǒng)的測(cè)試主要包括路由器、資源節(jié)點(diǎn)、互連線等的測(cè)試。傳統(tǒng)的測(cè)試技術(shù)由于檢測(cè)過程復(fù)雜、耗時(shí)、費(fèi)用高、故障檢測(cè)率低,不能滿足高效測(cè)試的需求。針對(duì)NoC故障檢測(cè)技術(shù)的需求,以Visual Studio為開發(fā)平臺(tái),采用重用資源節(jié)點(diǎn)與邊界掃描相結(jié)合的技術(shù),設(shè)計(jì)基于VC++的邊界掃描測(cè)試系統(tǒng)。設(shè)計(jì)主要由計(jì)算機(jī)軟件控制系統(tǒng)與數(shù)據(jù)轉(zhuǎn)化模塊組成,可完成對(duì)NoC系統(tǒng)的故障檢測(cè),該系統(tǒng)具有人機(jī)界面友好、功能全面、操作簡便的優(yōu)點(diǎn),在NoC系統(tǒng)上進(jìn)行測(cè)試,取得了預(yù)期效果。
關(guān)鍵詞: 片上網(wǎng)絡(luò);故障檢測(cè);數(shù)據(jù)轉(zhuǎn)換通信模塊;VC++
0 引言
片上網(wǎng)絡(luò)(Network-on-Chip,NoC)是一種全新的片上通信方法,其顯著改善了傳統(tǒng)總線式系統(tǒng)的性能,被認(rèn)為是未來集成工藝發(fā)展的必然方向[1]。NoC通信結(jié)構(gòu)包括資源節(jié)點(diǎn)、路由節(jié)點(diǎn)和通信鏈路;它們連成網(wǎng)狀結(jié)構(gòu),并在通道中傳遞消息。但是隨著NoC技術(shù)研究與應(yīng)用,出現(xiàn)了許多新的問題:(1)隨著NoC結(jié)構(gòu)的日益復(fù)雜,交換電路與接口電路逐漸增多,電路面積也逐漸增大[2];(2)集成電路設(shè)計(jì)和工藝進(jìn)入深亞微米級(jí),最小線寬和連線間距大幅度縮小,相鄰連線間的電容、電感耦合對(duì)高速信號(hào)的傳輸產(chǎn)生了巨大影響[3];(3)資源節(jié)點(diǎn)的種類日益增多,資源節(jié)點(diǎn)電路的故障呈現(xiàn)多樣化,傳統(tǒng)單一故障檢測(cè)不再適用。
面對(duì)如此多可能存在的故障,對(duì)NoC系統(tǒng)的故障檢測(cè)顯得尤為重要。目前對(duì)資源節(jié)點(diǎn)的測(cè)試多以SRAM為主,對(duì)于其他類型的資源節(jié)點(diǎn)鮮有研究。
本文圍繞NoC系統(tǒng)常用器件進(jìn)行故障檢測(cè)并進(jìn)行軟件設(shè)計(jì),在只增加少量硬件電路的條件下,實(shí)現(xiàn)NoC系統(tǒng)的故障測(cè)試。
1 NoC系統(tǒng)測(cè)試模型
本設(shè)計(jì)中NoC系統(tǒng)采用2D-Mesh通信架構(gòu)[4],每個(gè)路由器都進(jìn)行封裝具有邊界掃描功能。資源節(jié)點(diǎn)主要包括:數(shù)字I/O口、組合電路、模擬放大電路、頻率計(jì)、支持1149.1協(xié)議的D觸發(fā)器和支持1500協(xié)議的軟核。
為完成對(duì)NoC系統(tǒng)的控制與測(cè)試,設(shè)計(jì)包括數(shù)據(jù)轉(zhuǎn)換通信模塊與測(cè)試軟件兩部分,系統(tǒng)總體結(jié)構(gòu)如圖1所示。
?。?)數(shù)據(jù)轉(zhuǎn)換通信模塊完成數(shù)據(jù)協(xié)議的轉(zhuǎn)換工作,負(fù)責(zé)測(cè)試軟件與NoC系統(tǒng)通信工作。
(2)測(cè)試軟件完成對(duì)NoC系統(tǒng)的控制與檢測(cè)功能,能夠在主界面中顯示每個(gè)資源節(jié)點(diǎn)的工作狀態(tài)和故障信息,并且定位故障位置。
2 數(shù)據(jù)轉(zhuǎn)換通信模塊
本模塊采用AT89S52作為主控制芯片。利用FT245RL實(shí)現(xiàn)與測(cè)試軟件的USB通信。USB接口電路如圖2所示。
AT89S52與NoC系統(tǒng)通信采用并行傳輸?shù)姆绞?,使?5針串口作為通信接口。由于供電電壓不同,需在信號(hào)傳輸前進(jìn)行電平轉(zhuǎn)化。
發(fā)送時(shí)序如圖3所示,當(dāng)AT89S52有數(shù)據(jù)需要發(fā)送時(shí),將SLROBE置0,并將數(shù)據(jù)送到DB端口,等待NoC系統(tǒng)反饋信號(hào)ACKING,當(dāng)收到反饋信號(hào)后,將SLROBE置1,此時(shí)完成第一個(gè)數(shù)據(jù)發(fā)送,然后即可發(fā)送第二個(gè)數(shù)據(jù),直至所有數(shù)據(jù)發(fā)送完成。經(jīng)過測(cè)試,利用DB25端口可以將數(shù)據(jù)有效、高速地傳輸。
3 軟件系統(tǒng)設(shè)計(jì)
本軟件在Visual Studio 2012平臺(tái)下開發(fā),使用C++語言完成程序的編寫。微軟公司發(fā)布的VC軟件是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它可以非常容易地處理各種數(shù)據(jù),而且還可以利用各種ActiveX控件十分方便地開發(fā)出基于計(jì)算機(jī)通信的程序[5]。
3.1測(cè)試軟件模塊
根據(jù)軟件模塊化設(shè)計(jì)思想,按功能將系統(tǒng)軟件分為USB自動(dòng)搜尋模塊、測(cè)試矢量加載顯示模塊、數(shù)據(jù)分析模塊、資源故障定位模塊、路由器及其互連線故障顯示模塊、資源節(jié)點(diǎn)工作模塊,如圖4所示。
(1)人機(jī)交互界面
人機(jī)交互界面提供用戶的基本操作、各子模塊的控制功能。當(dāng)某指定任務(wù)被選擇后,與之相應(yīng)的程序?qū)⒈粓?zhí)行。從該界面,用戶能夠直觀地查看所有模塊的故障信息和正常工作下的數(shù)據(jù)結(jié)果。
?。?)USB自動(dòng)搜尋模塊
USB自動(dòng)搜尋模塊的作用是自動(dòng)搜尋插入的數(shù)據(jù)轉(zhuǎn)換模塊的硬件設(shè)備。如果該硬件設(shè)備正常插入,則可以進(jìn)行下一步操作;若沒有檢測(cè)到該設(shè)備,則提示用戶插入設(shè)備。當(dāng)用戶插入設(shè)備完成后,可在主界面的菜單欄“USB端口”項(xiàng)對(duì)該硬件端口進(jìn)行打開或關(guān)閉操作。
?。?)測(cè)試矢量加載顯示模塊
測(cè)試矢量是本系統(tǒng)進(jìn)行測(cè)試的關(guān)鍵數(shù)據(jù),當(dāng)程序執(zhí)行時(shí),可以自動(dòng)加載測(cè)試矢量,并可以在用戶選擇測(cè)試操作后在測(cè)試矢量窗口顯示測(cè)試矢量信息。若用戶對(duì)測(cè)試矢量進(jìn)行了修改,則可以直接在菜單欄下的“測(cè)試矢量”進(jìn)行加載,然后測(cè)試,無需重新啟動(dòng)程序。
?。?)數(shù)據(jù)分析模塊
數(shù)據(jù)分析模塊主要完成數(shù)據(jù)的接收和發(fā)送操作,并檢測(cè)收到的數(shù)據(jù)是否符合規(guī)范,若數(shù)據(jù)不符合則直接丟棄;如果數(shù)據(jù)正確則進(jìn)行下一步處理。首先根據(jù)數(shù)據(jù)類型調(diào)用不同的處理子程序;其次得到資源節(jié)點(diǎn)編號(hào),然后根據(jù)資源節(jié)點(diǎn)編號(hào)調(diào)用不同的處理算法;最后將數(shù)據(jù)提交給下一模塊。
?。?)資源故障定位模塊、路由器及其互連線故障顯示模塊
故障定位模塊主要根據(jù)數(shù)據(jù)分析模塊處理后的數(shù)據(jù)確定資源節(jié)點(diǎn)、路由器、路由器互連線是否存在故障,如果無故障則提示測(cè)試成功,若存在故障則提示測(cè)試失敗,并在窗口相應(yīng)位置顯示錯(cuò)誤器件。
路由器故障模塊用來根據(jù)NoC系統(tǒng)內(nèi)部的自測(cè)方式完成路由器測(cè)試后的結(jié)果顯示數(shù)據(jù)信息,該模塊可以顯示故障路由標(biāo)號(hào)、測(cè)試時(shí)間等信息。
路由器互連線故障模塊用來顯示對(duì)路由器互連線進(jìn)行邊界掃描后的測(cè)試結(jié)果,可以顯示故障路由器標(biāo)號(hào)和故障鏈路標(biāo)號(hào)信息。
?。?)資源節(jié)點(diǎn)工作模塊
在主界面中共有8個(gè)資源節(jié)點(diǎn)的操作界面,供用戶在正常模式下對(duì)資源節(jié)點(diǎn)進(jìn)行操作,并將資源節(jié)點(diǎn)結(jié)果顯示在界面中。
3.2 測(cè)試軟件工作流程
整個(gè)測(cè)試軟件系統(tǒng)的工作流程如圖5所示。
最終的軟件界面設(shè)計(jì)如圖6所示。
軟件安裝完畢后,用戶就可在測(cè)試程序主界面進(jìn)行相應(yīng)的功能選擇。在測(cè)試模式下,測(cè)試程序運(yùn)行過程中,當(dāng)測(cè)試結(jié)果為正常,彈出“Test ok”提示對(duì)話框,若測(cè)試失敗則彈出“Test Sorry”對(duì)話框,并顯示故障信息。當(dāng)用戶選擇正常工作模式時(shí),能夠?qū)y(cè)試軟件數(shù)據(jù)發(fā)送到NoC系統(tǒng),并顯示結(jié)果。
4 測(cè)試結(jié)果與數(shù)據(jù)
當(dāng)用戶選擇正常工作模式時(shí),能夠?qū)y(cè)試軟件數(shù)據(jù)發(fā)送到NoC系統(tǒng),并顯示結(jié)果。經(jīng)測(cè)試,本設(shè)計(jì)可測(cè)試的NoC系統(tǒng)故障如表1所示。系統(tǒng)能夠檢測(cè)的故障包括了基本電路中的常見故障。
5 結(jié)論
本文主要研究基于邊界掃描的NoC系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)。系統(tǒng)采用模塊化設(shè)計(jì)思想,對(duì)軟件進(jìn)行了模塊設(shè)計(jì),使它具有很強(qiáng)的通用性和可擴(kuò)展性,系統(tǒng)操作簡便,測(cè)試項(xiàng)目齊全。
本測(cè)試程序在實(shí)驗(yàn)室自主研發(fā)的NoC系統(tǒng)進(jìn)行測(cè)試取得了良好的效果,能夠正確檢測(cè)到系統(tǒng)中存在的故障,覆蓋率達(dá)到100%。實(shí)驗(yàn)表明,該軟件具有較高的準(zhǔn)確性和實(shí)用價(jià)值。
參考文獻(xiàn)
[1] BENINI L. Networks on chips: a new SoC paradigm[J]. IEEE Computer, 2002,36(1):70-78.
[2] 王強(qiáng),沙斐.平行雙線串?dāng)_的分析[J].電子測(cè)量與儀器學(xué)報(bào),2008,22(6):75-77.
[3] 劉毅,楊銀堂.一種面向片上網(wǎng)絡(luò)的多時(shí)鐘路由器設(shè)計(jì)[J].西安電子科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,38(2):146-150.
[4] 許川佩,孫義軍,吳玉龍.基于ARM和FPGA的資源網(wǎng)絡(luò)接口驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2013,32(13):83-86.
[5] HORTON L.Visual_C++2010入門經(jīng)典[M].蘇正泉,李文娟,譯.北京:清華大學(xué)出版社,2010.