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