1 引言
目前在設計和驗證超高密度FPGA時一般采用邏輯分析儀、示波器和總線分析儀,通過測試頭和連接器把信號送到儀器上,設計者必須提供足夠的I/O引腳進行全方位的檢測,以及配置足夠的引腳。加入額外的邏輯,以便能選擇信號來驅動I/O引腳進行測試。這種方法雖能減少測試時所需配置的I/O引腳數量,但步驟繁瑣。此外,隨著FPGA復雜度的增加,I/O引腳大都采用細間距工藝技術,使得引出I/O引腳變得很困難,本文所介紹的方法是在FPGA設計中插入邏輯分析核,他具有普通邏輯分析儀的功能,包括觸發(fā)、數據采集和存儲等。利用邏輯分析核,用戶可以訪問FPGA器件內部所有信號和節(jié)點,來自內部邏輯電路的信號可以通過FPGA中的高速互連轉移到內部存儲器。這些信號以系統(tǒng)時鐘速率傳送,延遲很小。
Altera公司的Quartus Ⅱ軟件中的SignalTap Ⅱ就是這樣一種基于邏輯分析核的嵌入式邏輯分析儀,他滿足了FPGA開發(fā)中硬件調試的要求,并且具有無干擾、便于升級、使用簡單等特點。
2 SignalTap Ⅱ 的特點和使用方法
SignalTap Ⅱ 邏輯分析儀是第二代系統(tǒng)級調試工具,能夠獲取、顯示可編程片上系統(tǒng)(SOPC)的實時信號,幫助設計者在其系統(tǒng)設計中觀察硬件和軟件的交互作用,在可編程邏輯市場上,上,SignalTap Ⅱ 邏輯分析儀專用于Quartus Ⅱ 軟件,與其他嵌入式邏輯分析儀相比,他支持的通道數最多,抽樣深度最大,時鐘速率最高。Quartus Ⅱ 軟件4.0以及以后版本還提供了圖形界面,定義了特定觸發(fā)條件邏輯,實現更高的精度,解決問題的能力更強。SignalTap Ⅱ 嵌入式邏輯分析儀不需要對用戶設計文件進行任何的外部探測或者修改,就可以得到內部節(jié)點或者I/O引腳的狀態(tài),目前SignalTap Ⅱ 邏輯分析儀支持的器件系列包括:Stratix Ⅱ,Stratix,Stratix GX,Cyclone Ⅱ,Cyclone,APEX Ⅱ,APEX 20KE,APEX 20KC,APEX 20K,Excalibur和Mercury。
在設計中嵌入SignalTap Ⅱ邏輯分析儀有2種方法:第一種方法是建立一個SignalTap Ⅱ(.stp),然后定義STP文件的詳細內容;第二種方法是用Mega Wizard Plun-In Manager建立并配置STP文件,然后用Mega Wizard實例化一個HDL輸出模塊,圖1給出了用這兩種方法建立和使用SignalTAP Ⅱ邏輯分析儀的過程。
圖2所示為SignalTap Ⅱ的編輯窗,以此介紹設置SignalTap Ⅱ文件的基本流程。
設置采樣時鐘 采樣時鐘決定了顯示信號波形的分辨率。采樣時鐘在上升沿處采集數據,建議最好使用全局時鐘而不要使用門控時鐘作為采樣時鐘。
設置被測信號 可以使用Node Finder中的Filter查找所有綜合和布局布線的SignalTap Ⅱ節(jié)點,添加要觀察的信號,邏輯分析儀不可測試的信號包括:邏輯單元的進位信號、PLL的時鐘輸出、JTAG引腳信號、LVDS(低壓差分)信號。
設置采樣深度 存儲每一個信號所需要的采樣數,采樣深度的范圍從0-128kB。設置Buffer acquisition mode buffer acquisition mode包括的Circular和Segmented兩種模式,每當觸發(fā)條件滿足使就捕獲一段數據,該功能可以去掉無關的數據,使采樣緩存的使用更加靈活。
觸發(fā)級數 SignalTap Ⅱ支持多級觸發(fā)的觸發(fā)方式。,最多可支持10級觸發(fā)。
觸發(fā)類型 可以選擇basic和advanced兩種類型,如果選擇basic,在STP文件中必須為每個信號設置觸發(fā)模式,SignalTap Ⅱ邏輯分析儀中有6種觸發(fā)模式可供選擇;如果選擇advanced,則設計者必須為邏輯分析儀建立觸發(fā)條件表達式。
3 實例分析
本文以一個正弦信號發(fā)生器為例,具體說明使用嵌入式邏輯分析儀進行實時測試的具體過程,本文的設計實例是基于Altera公司Cyclone系列的EP1C6Q240C8。
圖3是正弦信號發(fā)生器的結構圖,其頂層設計文件由VHDL語言設計完成,及設計包含2個部分:ROM的地址信號發(fā)生器,由6位計數器擔任;一個正弦數據ROM,由LPM_ROM模塊構造,LPM_ROM底層是FPGA的EAB,ESB和M4K等模塊,地址發(fā)生器的時鐘CLK的輸入頻率f0與每個周期的波形數據點數(以64點為例)以及D/A輸出的頻率關系是:f=f0/64,硬件描述語言設計的正弦信號發(fā)生器所對應的RTL電路圖如圖4所示。
根據上述SignalTap Ⅱ的使用步驟,首先調入待測信號,這里,選擇2組信號:8位輸出總線信號DOUT和地址發(fā)生計數器內部鎖存器總線Q1信號,對SignalTap Ⅱ的參數進行設置,邏輯分析儀的采集時鐘選為工程的主頻時鐘信號CLK,采樣深度設為1kB,根據待觀察信號的要求,在Buffer acquisition mode框中的Circulate欄設定采樣深度中起始觸發(fā)的位置,最后選擇觸發(fā)信號和觸發(fā)方式,根據實際的設計要求,在Trigger框中的Trigger欄選擇1;選中Trigger前面的復選框,并在Source欄選擇觸發(fā)信號,在此選擇地址計數器的最高位Q1[5]作為觸發(fā)信號,在Pattern欄選擇上升沿觸發(fā)方式。
外部實驗開發(fā)系統(tǒng)連接好,進行編譯下載,單擊SignalTap Ⅱ面板上的Autorun Analysis按鈕,啟動SignalTap Ⅱ進行采樣和分析,這時就可以從SignalTap Ⅱ數據窗通過JTAG口觀察到來自實驗板上FPGA內部的實時信號,該實例的輸出信號如圖5所示。
4 結語
通過以上實例,不難發(fā)現采用Altera公司的SignalTap Ⅱ嵌入式邏輯分析儀為芯片測試提供了一個很好的途徑可以大大降低設計成本,加快設計周期。用戶無需外接專用儀器,就可以通過FPGA器件內部所有信號和節(jié)點的捕獲對系統(tǒng)故障進行分析和判斷,需要注意的是,SignalTap Ⅱ嵌入式邏輯分析需工作在JTAG方式,在調試完成后,需將SignalTap Ⅱ移除設計,以免浪費資源。可以預見,SignalTap Ⅱ嵌入式邏輯分析儀必將在FPGA設計中獲得廣泛應用。





