摘要:嵌入式邏輯分析儀SignalTap II是Quartus II軟件中第二代系統(tǒng)級調(diào)試工具,,它可以用來捕捉目標芯片內(nèi)部信號節(jié)點處的信息,,而又不影響原硬件系統(tǒng)的正常工作,。通過一個多波形信號發(fā)生器的設(shè)計實例,,詳細闡述SignalTap II的工作流程和參數(shù)設(shè)置方法,。實驗結(jié)果表明,,該測試方法操作方便,實時性較高,,能夠加快系統(tǒng)的開發(fā)流程,。
關(guān)鍵詞:SignalTap II;測試;信號發(fā)生器
引言
隨著微電子技術(shù),、微封裝技術(shù)和印制板制造技術(shù)的不斷發(fā)展,,印制電路板面積越來越小,密度越來越大,,復(fù)雜度越來越高,,層數(shù)越來越多。故采用傳統(tǒng)的硬件測試方法(如外探針測試法)來測試焊接上的器件,,難度增大,。而嵌入式邏輯分析儀的使用可以將高效的硬件測試手段和傳統(tǒng)的系統(tǒng)測試方法相結(jié)合,從而解決這些問題,。嵌入式邏輯分析儀實現(xiàn)了硬件測試的軟件化,,但它和驗證邏輯正確性的軟件仿真又有所不同。它可以用來捕捉目標芯片內(nèi)部信號節(jié)點處的信息,,而又不影響原硬件系統(tǒng)的正常工作,,具有無干擾、便于升級,、使用簡單,、價格低等特點。
1 SignalTap II原理及工作流程
SignalTap II邏輯分析儀是Quartus II軟件中第二代系統(tǒng)級調(diào)試工具,。它是一種基于邏輯分析核的嵌入式邏輯分析儀,,不僅具備普通邏輯分析儀的觸發(fā)、數(shù)據(jù)采集和存儲功能,,還可訪問FPGA器件內(nèi)部的所有信號和節(jié)點,,在系統(tǒng)設(shè)計中觀察硬件和軟件的交互作用。SignalTap II專用于Quartus II軟件,,與其他嵌入式邏輯分析儀相比,它支持的通道數(shù)最多,,抽樣深度最大,,時鐘速率最高。目前SignalTap II邏輯分析儀支持的器件系列包括:Cyclone,、Cyclone II,、Cyclone III、APEXT II,、APEX 20KE,、APEX20KC、APEX20K,、Excalibur,、Mercury、Stratix GX、Stratix,、Stratix II,、Stratix III等。
SignalTap II的工作流程如圖1所示,。在FPGA運行過程中,,當滿足觸發(fā)條件時SignalTap II將啟動采樣過程并將數(shù)據(jù)暫存于目標器件中的嵌入式RAM(如ESB、M4K)中,,采樣數(shù)據(jù)不斷刷新片內(nèi)存儲器內(nèi)容,,然后通過器件的JTAG端口將捕獲到的信號數(shù)據(jù)傳出,送入計算機Quartus II開發(fā)環(huán)境中進行顯示和分析,。這樣開發(fā)者可以在整個設(shè)計過程中以系統(tǒng)級的速度來觀察硬件和軟件的交互作用,。此外,SignalTap II允許對設(shè)計中的所有層次的模塊的信號節(jié)點進行測試,,可以使用多時鐘驅(qū)動,,而且還能通過設(shè)置以確定前后觸發(fā)捕捉信號信息的比例。
2 STP文件的參數(shù)設(shè)置
在圖1所示的SignalTap II工作流程中,,STP文件的參數(shù)設(shè)置是否恰當將直接影響采樣與分析結(jié)果的好壞,,故它在整個流程中是極其重要的。STP文件的參數(shù)設(shè)置主要包括以下幾個方面:
①設(shè)置采樣時鐘,。采樣時鐘決定了顯示信號波形的分辨率,,它的頻率要大于被測信號的最高頻率,否則無法正確反映被測信號波形的變化,。SignalTap II在時鐘的上升沿采樣,,可以使用設(shè)計系統(tǒng)中的任何信號作為采樣時鐘,根據(jù)Altera公司的建議最好使用同步系統(tǒng)全局時鐘
作為采樣時鐘,。但是在實際應(yīng)用中,,多數(shù)使用獨立的采樣時鐘,這樣能采樣到被測系統(tǒng)中的慢速信號,,故需將系統(tǒng)時鐘進行分頻,。
②設(shè)置被測信號??梢栽贜ode Finder窗口進行選擇,,添加要觀察的信號。
③配置采樣深度,,確定RAM的大小,。采樣深度決定了待測信號采樣存儲的大小,它是根據(jù)設(shè)計中剩余的RAM塊容量和待測信號的個數(shù)決定的,。待測信號個數(shù)的增減和采樣深度的深淺會直接改變RAM塊的占用情況,,采樣深度的范圍為0~128 KB。SignalTap II所能顯示的被測信號波形的時間長度為Tx=N×Ts,其中N為緩存中存儲的采樣點數(shù),,Ts為采樣時鐘的周期,。
④設(shè)置buffer acquisition mode。buffer acquisitionmode包括循環(huán)采樣存儲,、連續(xù)存儲兩種模式,。循環(huán)采樣存儲也就是分段存儲,將整個緩存分成多個片段(segment),,每當觸發(fā)條件滿足時就捕獲一段數(shù)據(jù),。該功能可以去掉無關(guān)的數(shù)據(jù),使采樣緩存的使用更加靈活,。通常選擇循環(huán)采樣存儲,,需要設(shè)置觸發(fā)位置。觸發(fā)位置允許指定在選定實例中在觸發(fā)器之前和觸發(fā)器之后應(yīng)采集的數(shù)據(jù)量,。Pre trigger position表示采樣到的數(shù)據(jù)12%為觸發(fā)前,,88%為觸發(fā)后;Center trigger position表示采樣的數(shù)據(jù)處于觸發(fā)前后各一半,;Post trigger position表示采樣到的數(shù)據(jù)88%為觸發(fā)前,,12%為觸發(fā)后;Continuous triggerposilion表示以環(huán)形緩沖的方式進行連續(xù)采樣保存,,直到用戶中斷為止,。
⑤觸發(fā)級別。SignalTap II支持多觸發(fā)級的觸發(fā)方式,,最多可支持10級觸發(fā),,為設(shè)置復(fù)雜的觸發(fā)條件提供了足夠的靈活性,幫助驗證檢錯,。如果設(shè)置了多觸發(fā)級別,,直到所有的觸發(fā)條件順序滿足后,才開始采集數(shù)據(jù),。
⑥觸發(fā)條件,。設(shè)定約束性的觸發(fā)條件??梢栽O(shè)定單個信號的獨立觸發(fā)條件,直接采用單個外部或設(shè)計模塊內(nèi)部的信號,;也可以允許多個節(jié)點信號的組合復(fù)雜觸發(fā)條件構(gòu)成觸發(fā)函數(shù)的觸發(fā)條件方程,,以協(xié)助調(diào)試工作。當觸發(fā)條件滿足時,,在SignalTap II時鐘的上升沿采樣被測信號,。例如,使能信號EN與RST相與后觸發(fā),觸發(fā)條件=ENA&RST,。
當完成以上設(shè)置后,,重新編譯工程并將該設(shè)計下載到FPGA中,在Quartus II中SignalTap II窗口下查看邏輯分析儀捕獲結(jié)果,,并進行相關(guān)分析,,完成系統(tǒng)測試。
3 實例分析
本文以一個多波形信號發(fā)生器為例,,具體說明使用SignalTap II進行實時測試的具體過程,。該設(shè)計基于Altera公司Cyclone II系列的EP2C8Q208C8。在Quartus II中完成的設(shè)計如圖2所示,。
設(shè)計的多波形信號發(fā)生器可以產(chǎn)生正弦波,、三角波和方波,可以通過開關(guān)選擇輸出的波形,。系統(tǒng)采用自頂向下的設(shè)計思想,,底層采用VHDL語言編程和LPM_ROM模塊實現(xiàn),頂層采用原理圖設(shè)計,。圖2中,,rst為復(fù)位信號,sel[1..0]為波形選擇信號,,clk為主時鐘,,q[7..0]為輸出信號。當sel=“00”時,,輸出正弦波,;當sel=“01”時,輸出三角波,;當sel=“10”時,,輸出方波。系統(tǒng)由分頻模塊,、正弦波模塊(地址發(fā)生器模塊和LPM_ROM模塊),、三角波模塊、方波模塊和波形選擇模塊組成,。
系統(tǒng)的RTL電路圖如圖3所示,,雙擊圖形中有關(guān)模塊,或選擇左側(cè)各項,,可逐層了解各層次的電路結(jié)構(gòu),。
根據(jù)上述SignalTap II的工作流程,首先建立一個stp文件(stpl.stp),,接著進行參數(shù)設(shè)置,,如圖4所示,。調(diào)入待測信號q[7..0];采樣時鐘選為主頻時鐘信號CLK(50MHz)經(jīng)過分頻后的信號CLK1(100 kHz),;在Buffer acquisition mode框中的Circulate欄設(shè)定采樣深度中起始觸發(fā)的位置,,選擇前點觸發(fā)(Pre trigger position);采樣深度設(shè)為1KB,;觸發(fā)級別選擇1,;觸發(fā)信號選擇rst,在Pattern欄選擇上升沿觸發(fā)方式,。然后連接實驗開板,,進行編譯下載。最后單擊SignalTap II面板上的Autorun Analysis按鈕,,啟動SignalTap II進行采樣和分析,。
在SignalTap II的采樣之前,要進行相關(guān)設(shè)置,,比如要觀察產(chǎn)生的正弦波,,先將撥碼開關(guān)12(sel[1..O])設(shè)置為“00”(三角波時設(shè)置為“01”,方波是設(shè)置為“10”),,再將撥碼開關(guān)3(rst)由0變?yōu)?,,產(chǎn)生一個上升沿,作為SignalTap II的采樣觸發(fā)信號,。這時執(zhí)行Autorun
Analysis,,就能在SignalTapII數(shù)據(jù)窗觀察到來自實驗板上FPGA內(nèi)部的實時信號,如圖5所示,。圖中依次為正弦波,、三角波和方波數(shù)據(jù)。數(shù)據(jù)窗的上沿坐標是采樣深度的二進制位數(shù),,全程是1024位,。
為了更直觀地看到波形圖,不需要進行數(shù)/模轉(zhuǎn)換,,直接右鍵單擊所要觀察的總線信號名,,在彈出的下拉菜單中選擇總線顯示模式“Bus Display Format”為“Line Chart”,即可獲得如圖6所示的模擬信號波形,。
從圖5,、圖6可以看出輸出結(jié)果和設(shè)計需求是一致的,驗證了設(shè)計的正確性,。如果采用傳統(tǒng)的硬件測試方法,,在本系統(tǒng)中還需要加入D/A轉(zhuǎn)換模塊,利用示波器觀察波形,。故利用SignalTap II進行系統(tǒng)的硬件測試是非常方便的,,可以加快系統(tǒng)的開發(fā)流程。而在整個工作流程中,,STP文件的參數(shù)設(shè)置是至關(guān)重要的,,它直接影響測試結(jié)果。例如在本系統(tǒng)中,,采樣時鐘采用分頻后的信號,,而不是采用主時鐘,因為主時鐘頻率太高,,不便于觀察輸出信號,。另外還有觸發(fā)信號的選擇,啟動采樣前開關(guān)的設(shè)置,,都會直接影響輸出信號,。
4 結(jié)論
嵌入式邏輯分析器SignalTap II克服了傳統(tǒng)硬件測試的缺點,為系統(tǒng)測試提供了一個很好的途徑,。它具有實時性和可視性,,減少了調(diào)試驗證的時間,加快了設(shè)計周期,。通過對Cyclone II系列EP2C8Q208C8器件的實驗,,證實該測試手段提高了系統(tǒng)的調(diào)試能力,具有很好的效果,。在調(diào)試FPGA的時候,,可以設(shè)置多個嵌入式測量模塊等其他功能,這樣可以加快系統(tǒng)的開發(fā),,為社會帶來更大的經(jīng)濟效益,。但是它需要占據(jù)FPGA資源(如RAM、LE等),,且資源消耗量與需采集的數(shù)據(jù)量成正比,,因此采集信號的深度不能過大。此外,,當利用SignalT印II將芯片中的信號全部測試結(jié)束后,,需將SignalTap II從設(shè)計中移除,以免浪費資源,。