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