郝曉鵬
(中國(guó)電子科技集團(tuán)公司第五十四研究所河北 石家莊 050081)
基于SignalTapⅡ和Modelsim的聯(lián)合仿真技術(shù)
郝曉鵬
(中國(guó)電子科技集團(tuán)公司第五十四研究所河北 石家莊 050081)
提出了一種應(yīng)用仿真軟件modelsim和邏輯分析儀Signal Tap II聯(lián)合使用的新方法,此方法利用嵌入式邏輯分析工具SignalTapⅡ采樣真實(shí)的輸入信號(hào),經(jīng)由TCL語(yǔ)言轉(zhuǎn)換為Modelsim中的激勵(lì)文件,利用Modelsim強(qiáng)大的仿真能力排查錯(cuò)誤,解決了實(shí)際調(diào)試過(guò)程中編譯時(shí)間長(zhǎng)和bug重現(xiàn)率低等問(wèn)題。
signaltap IImodelsim聯(lián)合仿真交換矩陣
SignalTap域嵌入式邏輯分析儀,有成本低廉和升級(jí)方便的特點(diǎn),能對(duì)所有內(nèi)部信號(hào)和外部引腳信號(hào)進(jìn)行探測(cè)[1]。通過(guò)對(duì)電路進(jìn)行模塊化的分析,合理設(shè)置觸發(fā)條件,實(shí)現(xiàn)更有效和更準(zhǔn)確的電路調(diào)試和排錯(cuò),M odelsim是業(yè)界最優(yōu)秀的HDL語(yǔ)言仿真軟件,能提供友好的仿真環(huán)境和直接優(yōu)化的編譯技術(shù)、TCL/TK技術(shù)和單一內(nèi)核仿真技術(shù),編譯仿真速度快[2]。如果把M odelsim和SignalTap域結(jié)合起來(lái)使用,F(xiàn)PGA的調(diào)試將更加便捷。
SignalTap II嵌入邏輯分析儀集成Quartus II設(shè)計(jì)軟件中一款方便的調(diào)試工具,為設(shè)計(jì)者提供了業(yè)界領(lǐng)先的SOPC設(shè)計(jì)的實(shí)時(shí)可視性,能夠捕獲和顯示FPGA器件中實(shí)時(shí)信號(hào)的當(dāng)前狀態(tài),這樣開(kāi)發(fā)者就可以在整個(gè)設(shè)計(jì)過(guò)程中以系統(tǒng)級(jí)的速度觀察關(guān)鍵信號(hào)的時(shí)序關(guān)系,從而保證時(shí)序的正確性。SignalTap II的采樣深度高達(dá)128 K,支持多個(gè)通道,最多可以支持10級(jí)觸發(fā)[3]。使用SignalTap II調(diào)試的流程如圖1所示.設(shè)計(jì)人員在完成初步設(shè)計(jì)并編譯工程后,建立SignalTap II(.stp)文件并加入工程、配置STP文件并交由QuartusII編譯、綜合和布局布線,此時(shí)產(chǎn)生包含有邏輯分析儀的sof文件,將此文件經(jīng)加載線纜下載到FPGA運(yùn)行,在控制臺(tái)設(shè)置觸發(fā)條件,一旦設(shè)定的事件被觸發(fā),SignalTap II就立即啟動(dòng),將所有關(guān)注信號(hào)的當(dāng)前狀態(tài)緩存到FPGA內(nèi)部的RAM中,然后通過(guò)JTAG接口傳送到計(jì)算機(jī)上顯示出時(shí)序的波形文件[4]。如果時(shí)序不正確,可以直觀的定位到出錯(cuò)的信號(hào)。
此種方法對(duì)于一般的bug查找來(lái)說(shuō)簡(jiǎn)單迅速,但是有時(shí)候錯(cuò)誤并不是很規(guī)律的出現(xiàn),可能重復(fù)幾次都捕捉不到出錯(cuò)
的信號(hào),所以按照上述的調(diào)試流程一般會(huì)有以下幾個(gè)問(wèn)題:
淤有的錯(cuò)誤非常隱蔽,肉眼走查代碼并不能大致判斷出出錯(cuò)的信號(hào),可能本模塊的任何信號(hào)都可能出錯(cuò),如果故障定位不準(zhǔn)確,漏抓了關(guān)鍵信號(hào),還需要重新來(lái)一遍上述流程,需要重新在SignalTap里添加信號(hào),浪費(fèi)時(shí)間;
于故障定位修改代碼后還需要再次綜合和布線驗(yàn)證,而且修改后的代碼極有可能還不正確,所以真正解決問(wèn)題要經(jīng)過(guò)數(shù)次編譯。隨著FPGA容量的增大,F(xiàn)PGA的設(shè)計(jì)日益復(fù)雜, FPGA工程編譯一次動(dòng)輒都是耗時(shí)幾十分鐘,所以傳統(tǒng)的設(shè)計(jì)調(diào)試成為一個(gè)很繁重的任務(wù)。
圖1 SignalTap II調(diào)試流程
從事的某工程設(shè)計(jì)中,擬設(shè)計(jì)一大規(guī)模數(shù)據(jù)處理單元,由于考慮自主可控要求,需要自主研發(fā)的交換結(jié)構(gòu),故采用了VOQ(虛擬輸出排隊(duì))緩存策略、Crossbar空分結(jié)構(gòu)和DPA調(diào)度算法的高速交換結(jié)構(gòu)的理論模型,具體方案如圖2所示。
圖2 FPGA方案框圖
設(shè)計(jì)的交換結(jié)構(gòu)的輸入模塊采用了虛擬輸出隊(duì)列的緩存策略,虛擬輸出隊(duì)列實(shí)現(xiàn)的功能主要是將完成信元頭翻譯之后的數(shù)據(jù),實(shí)現(xiàn)UTOPIA總線到N IBBLE總線格式的轉(zhuǎn)化,再將信元根據(jù)其輸出端口緩存到相應(yīng)的隊(duì)列中去,并且實(shí)時(shí)地將隊(duì)列的信息送給調(diào)度模塊[5]。
對(duì)于端口數(shù)為8的Crossbar系統(tǒng),它由8伊8個(gè)節(jié)點(diǎn)組成[6],每個(gè)節(jié)點(diǎn)可以讓信號(hào)沿水平方向或垂直方向傳播。由于Crossbar結(jié)構(gòu)沒(méi)有內(nèi)部阻塞,所以不必考慮信元爭(zhēng)用內(nèi)部總線的問(wèn)題,大大降低了調(diào)度模塊的復(fù)雜性。但是對(duì)于N伊N的Crossbar結(jié)構(gòu),系統(tǒng)需要N伊N個(gè)交換節(jié)點(diǎn),即系統(tǒng)的復(fù)雜性為N 2;對(duì)于此交換系統(tǒng),共有64個(gè)交換節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)的功能讓數(shù)據(jù)通過(guò)或截止,以及產(chǎn)生反壓信號(hào),這個(gè)功能有內(nèi)部控制信號(hào)stateNum實(shí)現(xiàn)。整個(gè)交換矩陣將64個(gè)節(jié)點(diǎn)綜合在一起,通過(guò)stateNum[63..0]信號(hào)的控制,實(shí)現(xiàn)數(shù)據(jù)流的交換。Crossbar交換矩陣模塊的輸入輸出端口與VOQ模塊的接口相連,完成交換結(jié)構(gòu)的數(shù)據(jù)交換。對(duì)于核心的交換單元進(jìn)行難點(diǎn)分析和分解,采用了多種技術(shù)融合,如零緩沖技術(shù)、反壓技術(shù)和共享虛擬內(nèi)存技術(shù)等,并使用了循環(huán)列表,隊(duì)列處理等方式來(lái)滿足帶寬和優(yōu)先級(jí)等要求,鏈表的使用在技術(shù)上使得設(shè)計(jì)很復(fù)雜。
對(duì)于此工程的調(diào)試如果采用單獨(dú)SignalTap II的調(diào)試方式,不僅上個(gè)章節(jié)分析的問(wèn)題接踵而至,而且占用RAM資源很大,可監(jiān)控的信號(hào)的數(shù)量很深度都有限制。下面采用的是SignalTap II和modelsim聯(lián)合仿真的方法,主要步驟如下:
(1)在測(cè)試中發(fā)現(xiàn)問(wèn)題,確定是時(shí)序問(wèn)題;
(2)通過(guò)代碼走查,計(jì)數(shù)器分析等確定產(chǎn)生錯(cuò)誤的模塊;
(3)利用SignalTap II周期采樣的原理,將出現(xiàn)bug時(shí)此模塊所有的輸入信號(hào)得波形保存為數(shù)據(jù)文件,如圖3所示,并將此文件轉(zhuǎn)化為Modesim測(cè)試平臺(tái)中的測(cè)試向量。具體轉(zhuǎn)化方法是使用Tcl語(yǔ)言,采用此方法可以將復(fù)雜多變的波形文件準(zhǔn)確地轉(zhuǎn)化為HDL文件,雖然Tcl腳本的編寫(xiě)需要一定的時(shí)間,但是此腳本也可應(yīng)用于以后其他模塊的程序設(shè)計(jì)。需要注意的是,SignalTap II波形中每一個(gè)數(shù)據(jù)樣點(diǎn)對(duì)應(yīng)于一個(gè)時(shí)鐘周期,所以,在生成測(cè)試向量時(shí),必須產(chǎn)生對(duì)應(yīng)于SignalTap II采樣時(shí)鐘的時(shí)鐘波形,用來(lái)規(guī)范測(cè)試向量的時(shí)序。這里,可以采用VHDL的w ait until(clk='1');語(yǔ)句,或者Verilog的@ (posedge clk);語(yǔ)句產(chǎn)生相應(yīng)的定時(shí)等待,使每一個(gè)采樣點(diǎn)對(duì)應(yīng)的激勵(lì)波形按照采樣時(shí)鐘順序變化;
圖3 模塊輸入激勵(lì)波形圖
(4)針對(duì)該模塊和上一步得到的Modesim測(cè)試平臺(tái)運(yùn)行單元仿真測(cè)試,在仿真測(cè)試中觀察該模塊輸出,定位和解決問(wèn)題。由于modelsim仿真環(huán)境可以給提供對(duì)RTL設(shè)計(jì)最佳的可控制性和可觀測(cè)性,在仿真環(huán)境中定位bug,會(huì)比通過(guò)SignalTap II多次修改信號(hào)列表和編譯節(jié)省許多時(shí)間;
(5)重新編譯并測(cè)試修改后的FPGA設(shè)計(jì)。
針對(duì)大規(guī)模FPGA實(shí)際開(kāi)發(fā)過(guò)程中,使用單一的
SignalTap II調(diào)試工具遇到的種種問(wèn)題進(jìn)行了分析。提出了結(jié)合M odelSim軟件的聯(lián)合仿真調(diào)試技術(shù),利用SignalTap II生成最真實(shí)的激勵(lì)向量和M odelSim直觀的圖形仿真技術(shù)定位問(wèn)題,解決了傳統(tǒng)調(diào)試方法反復(fù)修改代碼編譯時(shí)間過(guò)長(zhǎng)的問(wèn)題,可以大大的節(jié)約開(kāi)發(fā)時(shí)間,提高開(kāi)發(fā)效率。
[1]LEEK B.An EfficientQuality-awareMemory Controller for Multimedia Platform SoC[J].IEEETransactionson Circuitsand Systems for Video Technology,2005,15(5):620-633.
[2]鄧成,張亞妮,等.嵌入式邏輯分析器在FPGA中的應(yīng)用[J].現(xiàn)代電子技術(shù),2006(2):5-8.
[3]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社, 2005.
[4]郭佳佳,胡曉菁,王永良.使用SignalTapⅡ邏輯分析儀調(diào)試FPGA[J].今日電子,2005(5):45-47.
[5]朱衛(wèi)華,黃鄉(xiāng)佩,盧桂榮.基于FPGA的高精度數(shù)字移相低頻正弦波發(fā)生器設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005,27(7):12-13.
[6]鄧成,張亞妮,等.嵌入式邏輯分析儀在FPGA設(shè)計(jì)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2006(2):76-84.
Co-sim ulation Technology Based on SignalTapⅡand M odelsim
HAO Xiao-peng
(The 54th Research Institute ofCETC,Shijiazhuang Hebei050081,China)
A new co-simulation technology based on Modelsim application simulation software and SignalTapⅡlogic analyzer is proposed.This technology uses SignalTapⅡembedded logic analyzer to sample the real input signals,converts the signals into the excitation filesin Modelsim by TCL Language,and uses the strong simulation ability ofModelsim to check the bugs,which resolves the problemssuch as long compilation time and low recurrence rate ofbug,etc.in the actualdebugging process.
Signaltap II;Modelsim;co-simulation;sw itchmatrix
TP311
A
1008-1739(2014)13-46-3
定稿日期:2014-06-12