嵌入式邏輯分析儀Signal Tap II在FPGA設計中的應用

Application of Embedded Logic Analysis Instrument in FPGA
Abstract: It introduces the basic usage of embedded logic analysis—Signal Tap II in Quartus II,which is some development tools of large-scale programmable logic device. The virtue and function of Signal II is illuminated in the process of system hardware debug by an example.
Keywords: Signal Tap II  FPGA  Hardware Debug
摘要:介紹了大規模可編程邏輯器件開發工具Quartus II中嵌入式邏輯分析儀Signal Tap II的基本用法;並結合一個具體的應用實例來說明了Signal Tap II在系統硬件調試過程中的優點及其強大功能。
關鍵字:Signal Tap II  FPGA  硬件調試
隨着邏輯設計複雜性的不斷增加,在計算機上以軟件方式的仿真測試變得更加耗費時間,而不斷需要重複進行的硬件系統的測試同樣變得更爲困難。爲了解決這些問題,設計者可以將一種高效的硬件測試手段和傳統的系統測試方法相結合來完成,這就是嵌入式邏輯分析儀的使用。它主要用於分析數字系統的檢測和故障診斷問題,是數據域測試中一種非常有效的測試方法[1]。它可以隨設計文件一併下載於目標芯片中,用以捕捉設計者感興趣的目標芯片內部信號節點處的信號,而不影響原硬件系統的正常工作。本文介紹Signal Tap II邏輯分析儀的基本用法及其在FPGA中一個典型的應用實例。
1 Signal Tap II基本用法
嵌入式邏輯分析儀Signal Tap II在對系統硬件模塊進行監測時,是將測得的樣本數據暫存於目標器件的RAM中,然後通過器件的JTAG端口和Byte Blaster II下載線一起將樣本數據信息傳出並送入計算機進行數據分析。Signal Tap II允許對設計中所有層次模塊的信號進行監測,可以使用多時鐘驅動,還能通過設置用以確定前後觸發信號信息的比例。其使用方法步驟如下:

(1)打開Signal Tap II編輯窗。選擇Tool中的Signal Tap Logic Analyzer項,或者選擇File中的New項,在New窗口中選擇Other Files中的Signal Tap II File,單擊OK按鈕,即出現圖1所示編輯窗。
 (2)調入待測信號。注意在調入信號前需給該信號組取名,可通過Instance欄內的Auto Signal Tap_0處單擊即可。其次,調入待測信號,在Instance欄的下欄空白處雙擊即可,如圖2所示。在窗口中,點擊List,在Nodes Found中就出現所有的待測信號,選擇所要測量的信號,點擊OK就完成了。在調用信號時,不要過多的調用沒有實際意義的信號,這樣會導致芯片資源的浪費。
(3)相關參數設置。參數的設置正確與否是使用Signal Tap II的關鍵。從前面我們已經知道,Signal Tap II將採樣的樣本存於RAM中,參數設置就是設定採樣的特徵信息和採樣數據樣本的大小等參數,採樣的特徵信息包括採樣時鐘的採樣的速度、觸發形式和採樣的深度,即採樣樣本存放於RAM中的點數以及RAM的大小等相關設置。參數設置過程如下,首先,在圖1的Signal欄中,點擊Clock即可設置採樣時鐘。採樣時鐘的快慢影響我們所觀察的信號的質量,所以要靈活、合理選擇。採樣時鐘不是越快越好,當我們要觀察一些慢速信號或干擾信號的時候,太快就適得其反。其次,設置採樣深度。採樣深度越深我們觀察到的點數就越多,當然是越多越好,但是由於受RAM的大小限制,我們設置的採樣深度不可能太深。特別是在採樣信號比較多的時候,我們要綜合考慮這些因數,設置我們的採樣深度,以免發生RAM不夠用的情況。再次,根據待測信號的要求,在Buffer Acquisition Mode框的Circulate欄設置採樣起始觸發位置。最後,設置觸發條件,在Trigger中用於選擇出發級數,如兩級觸發,就要在兩個觸發條件都滿足的條件下才能得到觸發;在下面的Trigger框中選擇觸發信號和觸發形式,觸發形式有上升沿、下降沿等觸發供選擇,當選擇的觸發信號滿足了所設置的觸發形式的時候,就開始採樣。

(4)保存。在完成以上的步驟之後,點擊保存,出現“Do you want to enable Signal Tap II…”,選擇“是”就表示再次編譯的時候將Signal Tap II與工程捆綁在一起綜合,並通過下載適配器一起下載到FPGA芯片中去。如果選擇了否,可以在菜單Assignment中的Setting項,Category欄中選擇Signal Tap Logic Analyzer,在彈出的窗口中的右面,選中Enable Signal Tap Logic Analyzer,單擊OK即可。在全部測試完成的時候,應從芯片中去掉Signal Tap II,方法如上所述。
(5)觀看結果。保存好了之後,就可以下載到FPGA芯片裏面去了。下載方法與普通下載方法一致,這裏不在詳述。再在圖1的JTAG Chain中設置好硬件連接及相關的SOF文件,最後點擊Instance右邊第二個自動分析按鈕就可以啓動Signal Tap II來觀看樣本數據。
2 實例應用
這裏設計一個正弦信號發生器,具體說明Signal Tap II的強大功能。
2.1系統硬件
正弦函數信號發生器由地址發生器、數據存儲器ROM、D/A三部分組成,根據需要還可以添加移相等其他功能[2],其系統硬件框圖如圖3所示。
地址發生器實際上是一個計數器,從0開始計數,循環進行。數據存儲器ROM的每一個地址對應正弦信號的一個數據,其輸入是一個遞增的計數值,輸出是與其唯一對應。數據存儲器ROM 的數字輸出經過D/A轉換得到了模擬的正弦波形。
 

2.2系統軟件
系統軟件採用硬件描述語言VHDL編制[3],在FPGA中完成軟件的編輯、編譯,整個系統的VHDL語言描述如下:
LIBRARY IEEE; 
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SINGT IS
    PORT ( CLK : IN STD_LOGIC;                       --信號源時鐘
          DOUT : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );--8位波形數據輸出
END;
ARCHITECTURE DACC OF SINGT IS
COMPONENT data_rom  --調用波形數據存儲器LPM_ROM文件:data_rom.vhd聲明
   PORT(address : IN STD_LOGIC_VECTOR (5 DOWNTO 0);--6位地址信號
     inclock : IN STD_LOGIC ;--地址鎖存時鐘
            q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );
END COMPONENT;
 SIGNAL Q1 : STD_LOGIC_VECTOR (5 DOWNTO 0); --設定內部節點作爲地址計數器
    BEGIN
PROCESS(CLK )                                 --LPM_ROM地址發生器進程
    BEGIN
IF CLK'EVENT AND CLK = '1' THEN 
Q1<=Q1+1;  --Q1作爲地址發生器計數器
END IF;        
END PROCESS;
u1 : data_rom PORT MAP(address=>Q1, q => DOUT,inclock=>CLK);--例化
END;
2.3系統調試
     一般地,系統在軟硬件設計後,調試工作任務是比較繁重地,如果系統沒有達到設計的預期目標,可能出現的問題可能是軟件,也可能是硬件。這兩個部分無論是軟件還是硬件,都是一個非常龐大(對於較大的系統)的工程,每個模塊都可能會存在問題,如果不用Signal Tap II來調試,只能檢查每一個模塊,或根據設計的邏輯檢查軟件系統。這裏我們採用Signal Tap II來調試各個模塊。
(1)地址發生器模塊檢查。通過仿真監測地址發生器的結果是否是一個遞增數字量,“是”則該模塊正常。
(2)正弦波數據存儲ROM模塊檢查。監測ROM中數據是否爲預期的正弦表格中依次的數據,“是”則該模塊正常。
可見,用Signal Tap II來調試FPGA優勢非常的大,這樣可以大大縮短設計人員的測試時間,使得設計儘快投入市場。如果檢查全部正確,就說明問題出現的不是軟件,而是硬件了。
     按照上述Signal Tap II的使用步驟,在編譯後的工程中添加STP文件,並對文件進行相關設置,部分參數設置見圖4所示。
最後,觀察待測信號,如圖5所示。如果在待測信號名上右擊該信號,在出現的選項中選擇Bus Display Format,可以選擇以什麼數據形式顯示採樣到的波形,可以有16、10等進制數顯示,具體選擇根據需要,本例中使用Line Chart來顯示正弦波信號,直觀、明瞭,用數字顯示就沒有這個效果。

3 結論
本文作者提出利用嵌入式邏輯分析儀Signal Tap II爲FPGA的內部信號、模塊、接點進行測試,這爲測試提供了極大的方便,它無需外部器件,方便、經濟。另外,在調試FPGA的時候,還可以設置多個嵌入式測量模塊等其他功能,這樣極大地加快了系統的開發,從而爲社會帶來巨大的經濟效益。
參考文獻
[1] 王春花,黃厚寬,馬聰 . 一種基於FPGA技術的虛擬邏輯分析儀的研究與實現[J].電子技術應用:2003,(3):39~42
[2] 朱衛華,黃鄉佩,盧桂榮 . 基於FPGA的高精度數字移相低頻正弦波發生器設計[J].微計算機信息:2005,27(7)
[3] 譚會生、張昌凡等 . EDA技術及應用[M]. 西安: 西安電子科技大學出版社,2003年
作者簡介:胡文軍(1977- ),男(漢族),安徽績溪人,湖州師範學院信息工程學院講師,研究生,主要從事檢測與控制方向的研究。
通信地址:浙江湖州師範學院信息工程學院,郵編:313000
Email : [email protected]
李英輝,男,研究生,湖州師範學院信息工程學院副教授,研究方向信號與信息處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章