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