摘 要: 隨著片上網(wǎng)絡(luò)(Network-on-Chip,NoC)技術(shù)的發(fā)展,,片上網(wǎng)絡(luò)系統(tǒng)的測試成為不可或缺的一部分,。NoC系統(tǒng)的測試主要包括路由器、資源節(jié)點(diǎn),、互連線等的測試,。傳統(tǒng)的測試技術(shù)由于檢測過程復(fù)雜、耗時(shí)、費(fèi)用高,、故障檢測率低,,不能滿足高效測試的需求。針對(duì)NoC故障檢測技術(shù)的需求,,以Visual Studio為開發(fā)平臺(tái),,采用重用資源節(jié)點(diǎn)與邊界掃描相結(jié)合的技術(shù),設(shè)計(jì)基于VC++的邊界掃描測試系統(tǒng),。設(shè)計(jì)主要由計(jì)算機(jī)軟件控制系統(tǒng)與數(shù)據(jù)轉(zhuǎn)化模塊組成,,可完成對(duì)NoC系統(tǒng)的故障檢測,該系統(tǒng)具有人機(jī)界面友好,、功能全面,、操作簡便的優(yōu)點(diǎn),在NoC系統(tǒng)上進(jìn)行測試,,取得了預(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é)點(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)單一故障檢測不再適用。
面對(duì)如此多可能存在的故障,,對(duì)NoC系統(tǒng)的故障檢測顯得尤為重要,。目前對(duì)資源節(jié)點(diǎn)的測試多以SRAM為主,,對(duì)于其他類型的資源節(jié)點(diǎn)鮮有研究。
本文圍繞NoC系統(tǒng)常用器件進(jìn)行故障檢測并進(jìn)行軟件設(shè)計(jì),,在只增加少量硬件電路的條件下,,實(shí)現(xiàn)NoC系統(tǒng)的故障測試。
1 NoC系統(tǒng)測試模型
本設(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)的控制與測試,,設(shè)計(jì)包括數(shù)據(jù)轉(zhuǎn)換通信模塊與測試軟件兩部分,系統(tǒng)總體結(jié)構(gòu)如圖1所示,。
?。?)數(shù)據(jù)轉(zhuǎn)換通信模塊完成數(shù)據(jù)協(xié)議的轉(zhuǎn)換工作,負(fù)責(zé)測試軟件與NoC系統(tǒng)通信工作,。
(2)測試軟件完成對(duì)NoC系統(tǒng)的控制與檢測功能,,能夠在主界面中顯示每個(gè)資源節(jié)點(diǎn)的工作狀態(tài)和故障信息,,并且定位故障位置。
2 數(shù)據(jù)轉(zhuǎn)換通信模塊
本模塊采用AT89S52作為主控制芯片,。利用FT245RL實(shí)現(xiàn)與測試軟件的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)過測試,利用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測試軟件模塊
根據(jù)軟件模塊化設(shè)計(jì)思想,,按功能將系統(tǒng)軟件分為USB自動(dòng)搜尋模塊,、測試矢量加載顯示模塊、數(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)行下一步操作,;若沒有檢測到該設(shè)備,,則提示用戶插入設(shè)備。當(dāng)用戶插入設(shè)備完成后,,可在主界面的菜單欄“USB端口”項(xiàng)對(duì)該硬件端口進(jìn)行打開或關(guān)閉操作,。
(3)測試矢量加載顯示模塊
測試矢量是本系統(tǒng)進(jìn)行測試的關(guān)鍵數(shù)據(jù),,當(dāng)程序執(zhí)行時(shí),,可以自動(dòng)加載測試矢量,并可以在用戶選擇測試操作后在測試矢量窗口顯示測試矢量信息,。若用戶對(duì)測試矢量進(jìn)行了修改,,則可以直接在菜單欄下的“測試矢量”進(jìn)行加載,然后測試,,無需重新啟動(dòng)程序,。
?。?)數(shù)據(jù)分析模塊
數(shù)據(jù)分析模塊主要完成數(shù)據(jù)的接收和發(fā)送操作,并檢測收到的數(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),、路由器,、路由器互連線是否存在故障,如果無故障則提示測試成功,,若存在故障則提示測試失敗,,并在窗口相應(yīng)位置顯示錯(cuò)誤器件。
路由器故障模塊用來根據(jù)NoC系統(tǒng)內(nèi)部的自測方式完成路由器測試后的結(jié)果顯示數(shù)據(jù)信息,,該模塊可以顯示故障路由標(biāo)號(hào),、測試時(shí)間等信息。
路由器互連線故障模塊用來顯示對(duì)路由器互連線進(jìn)行邊界掃描后的測試結(jié)果,,可以顯示故障路由器標(biāo)號(hào)和故障鏈路標(biāo)號(hào)信息,。
(6)資源節(jié)點(diǎn)工作模塊
在主界面中共有8個(gè)資源節(jié)點(diǎn)的操作界面,,供用戶在正常模式下對(duì)資源節(jié)點(diǎn)進(jìn)行操作,并將資源節(jié)點(diǎn)結(jié)果顯示在界面中,。
3.2 測試軟件工作流程
整個(gè)測試軟件系統(tǒng)的工作流程如圖5所示,。
最終的軟件界面設(shè)計(jì)如圖6所示。
軟件安裝完畢后,,用戶就可在測試程序主界面進(jìn)行相應(yīng)的功能選擇,。在測試模式下,測試程序運(yùn)行過程中,,當(dāng)測試結(jié)果為正常,,彈出“Test ok”提示對(duì)話框,若測試失敗則彈出“Test Sorry”對(duì)話框,,并顯示故障信息,。當(dāng)用戶選擇正常工作模式時(shí),能夠?qū)y試軟件數(shù)據(jù)發(fā)送到NoC系統(tǒng),,并顯示結(jié)果,。
4 測試結(jié)果與數(shù)據(jù)
當(dāng)用戶選擇正常工作模式時(shí),,能夠?qū)y試軟件數(shù)據(jù)發(fā)送到NoC系統(tǒng),并顯示結(jié)果,。經(jīng)測試,,本設(shè)計(jì)可測試的NoC系統(tǒng)故障如表1所示。系統(tǒng)能夠檢測的故障包括了基本電路中的常見故障,。
5 結(jié)論
本文主要研究基于邊界掃描的NoC系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn),。系統(tǒng)采用模塊化設(shè)計(jì)思想,對(duì)軟件進(jìn)行了模塊設(shè)計(jì),,使它具有很強(qiáng)的通用性和可擴(kuò)展性,,系統(tǒng)操作簡便,測試項(xiàng)目齊全,。
本測試程序在實(shí)驗(yàn)室自主研發(fā)的NoC系統(tǒng)進(jìn)行測試取得了良好的效果,,能夠正確檢測到系統(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].電子測量與儀器學(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.