孫統雷,萬春霆
(桂林電子科技大學 電子工程與自動化學院,廣西自動檢測技術與儀器重點實驗室,廣西 桂林 541004)
片上網絡(Network-on-Chip,NoC)是一種全新的片上通信方法,其顯著改善了傳統總線式系統的性能,被認為是未來集成工藝發展的必然方向[1]。NoC通信結構包括資源節點、路由節點和通信鏈路;它們連成網狀結構,并在通道中傳遞消息。但是隨著NoC技術研究與應用,出現了許多新的問題:(1)隨著NoC結構的日益復雜,交換電路與接口電路逐漸增多,電路面積也逐漸增大[2];(2)集成電路設計和工藝進入深亞微米級,最小線寬和連線間距大幅度縮小,相鄰連線間的電容、電感耦合對高速信號的傳輸產生了巨大影響[3];(3)資源節點的種類日益增多,資源節點電路的故障呈現多樣化,傳統單一故障檢測不再適用。
面對如此多可能存在的故障,對NoC系統的故障檢測顯得尤為重要。目前對資源節點的測試多以SRAM為主,對于其他類型的資源節點鮮有研究。
本文圍繞NoC系統常用器件進行故障檢測并進行軟件設計,在只增加少量硬件電路的條件下,實現NoC系統的故障測試。
本設計中NoC系統采用 2D-Mesh通信架構[4],每個路由器都進行封裝具有邊界掃描功能。資源節點主要包括:數字I/O口、組合電路、模擬放大電路、頻率計、支持1149.1協議的D觸發器和支持1500協議的軟核。
為完成對NoC系統的控制與測試,設計包括數據轉換通信模塊與測試軟件兩部分,系統總體結構如圖1所示。

圖1 系統總體結構
(1)數據轉換通信模塊完成數據協議的轉換工作,負責測試軟件與NoC系統通信工作。
(2)測試軟件完成對NoC系統的控制與檢測功能,能夠在主界面中顯示每個資源節點的工作狀態和故障信息,并且定位故障位置。
本模塊采用AT89S52作為主控制芯片。利用FT245RL實現與測試軟件的USB通信。USB接口電路如圖2所示。

圖2 FT245RL接口電路
AT89S52與NoC系統通信采用并行傳輸的方式,使用25針串口作為通信接口。由于供電電壓不同,需在信號傳輸前進行電平轉化。
發送時序如圖3所示,當AT89S52有數據需要發送時,將 SLROBE置 0,并將數據送到 DB端口,等待 NoC系統反饋信號ACKING,當收到反饋信號后,將SLROBE置1,此時完成第一個數據發送,然后即可發送第二個數據,直至所有數據發送完成。經過測試,利用DB25端口可以將數據有效、高速地傳輸。

圖3 并行數據傳輸時序
本軟件在Visual Studio 2012平臺下開發,使用C++語言完成程序的編寫。微軟公司發布的VC軟件是面向對象的程序設計語言,它可以非常容易地處理各種數據,而且還可以利用各種ActiveX控件十分方便地開發出基于計算機通信的程序[5]。
根據軟件模塊化設計思想,按功能將系統軟件分為USB自動搜尋模塊、測試矢量加載顯示模塊、數據分析模塊、資源故障定位模塊、路由器及其互連線故障顯示模塊、資源節點工作模塊,如圖4所示。

圖4 軟件機構組成
(1)人機交互界面
人機交互界面提供用戶的基本操作、各子模塊的控制功能。當某指定任務被選擇后,與之相應的程序將被執行。從該界面,用戶能夠直觀地查看所有模塊的故障信息和正常工作下的數據結果。
(2)USB自動搜尋模塊
USB自動搜尋模塊的作用是自動搜尋插入的數據轉換模塊的硬件設備。如果該硬件設備正常插入,則可以進行下一步操作;若沒有檢測到該設備,則提示用戶插入設備。當用戶插入設備完成后,可在主界面的菜單欄“USB端口”項對該硬件端口進行打開或關閉操作。
(3)測試矢量加載顯示模塊
測試矢量是本系統進行測試的關鍵數據,當程序執行時,可以自動加載測試矢量,并可以在用戶選擇測試操作后在測試矢量窗口顯示測試矢量信息。若用戶對測試矢量進行了修改,則可以直接在菜單欄下的“測試矢量”進行加載,然后測試,無需重新啟動程序。
(4)數據分析模塊
數據分析模塊主要完成數據的接收和發送操作,并檢測收到的數據是否符合規范,若數據不符合則直接丟棄;如果數據正確則進行下一步處理。首先根據數據類型調用不同的處理子程序;其次得到資源節點編號,然后根據資源節點編號調用不同的處理算法;最后將數據提交給下一模塊。
(5)資源故障定位模塊、路由器及其互連線故障顯示模塊
故障定位模塊主要根據數據分析模塊處理后的數據確定資源節點、路由器、路由器互連線是否存在故障,如果無故障則提示測試成功,若存在故障則提示測試失敗,并在窗口相應位置顯示錯誤器件。
路由器故障模塊用來根據NoC系統內部的自測方式完成路由器測試后的結果顯示數據信息,該模塊可以顯示故障路由標號、測試時間等信息。
路由器互連線故障模塊用來顯示對路由器互連線進行邊界掃描后的測試結果,可以顯示故障路由器標號和故障鏈路標號信息。
(6)資源節點工作模塊
在主界面中共有8個資源節點的操作界面,供用戶在正常模式下對資源節點進行操作,并將資源節點結果顯示在界面中。
整個測試軟件系統的工作流程如圖5所示。

圖5 軟件設計流程
最終的軟件界面設計如圖6所示。

圖6 軟件主界面
軟件安裝完畢后,用戶就可在測試程序主界面進行相應的功能選擇。在測試模式下,測試程序運行過程中,當測試結果為正常,彈出“Test ok”提示對話框,若測試失敗則彈出“Test Sorry”對話框,并顯示故障信息。當用戶選擇正常工作模式時,能夠將測試軟件數據發送到NoC系統,并顯示結果。
當用戶選擇正常工作模式時,能夠將測試軟件數據發送到NoC系統,并顯示結果。經測試,本設計可測試的NoC系統故障如表1所示。系統能夠檢測的故障包括了基本電路中的常見故障。

表1 可測故障匯總
本文主要研究基于邊界掃描的NoC系統的軟件設計與實現。系統采用模塊化設計思想,對軟件進行了模塊設計,使它具有很強的通用性和可擴展性,系統操作簡便,測試項目齊全。
本測試程序在實驗室自主研發的NoC系統進行測試取得了良好的效果,能夠正確檢測到系統中存在的故障,覆蓋率達到100%。實驗表明,該軟件具有較高的準確性和實用價值。
[1]BENINI L.Networks on chips:a new SoC paradigm[J].IEEE Computer,2002,36(1):70-78.
[2]王強,沙斐.平行雙線串擾的分析[J].電子測量與儀器學報,2008,22(6):75-77.
[3]劉毅,楊銀堂.一種面向片上網絡的多時鐘路由器設計[J].西安電子科技大學學報 (自然科學版),2011,38(2):146-150.
[4]許川佩,孫義軍,吳玉龍.基于ARM和FPGA的資源網絡接口驅動設計與實現 [J].微型機與應用,2013,32(13):83-86.
[5]HORTON L.Visual_C++2010入門經典[M].蘇正泉,李文娟,譯.北京:清華大學出版社,2010.