天天看點

Signal Tap II簡單使用小記

Signal Tap II有助于觀察邏輯内部信号行為,可使不借助外部裝置進行設計調試。(當然使用的前提條件是有硬體平台)

Signal Tap II ELA 組成框圖 

Signal Tap II簡單使用小記

采樣獲得的資料會存儲在器件的存儲器塊中,通過JTAG下載下傳線可以把資料傳回Quartus 中進行波形顯示。 可以設定資料采集緩沖器(Buffers)的大小、資料采集方式和存儲方式、以及此Buffer的存儲器類型。   可以在一片FPGA上生成多個ELA,這一功能非常适合在設計中為每個時鐘域配備一個分析儀。  ELA可以計算每個執行個體用到的邏輯資源和存儲器資源,并顯示在執行個體管理器中。

要使用Signal Tap II ELA,必須對其進行配置:

1     設定采樣時鐘。  ELA隻能在采樣時鐘的上升沿采樣資料,可以使用設計中的任何信号作為采樣時鐘(推薦使用全局的與被測信号同步的非門控信号)。 采樣時鐘決定了信号波形的分辨率,它的頻率要大于被測信号的最高頻率。

2     設定被測信号。  可以配置設定兩種信号(通過Node List信号設定觸發條件):

Pre-Synthesis:設計拟定之後,綜合優化之前的信号,反映RTL級信号。(RTL Viewer)

Post-fitting : 實體綜合優化和布局布線後的信号(Technical Map Viewer)

為了可以使用增量編譯,建議不要混合使用兩種信号;若使用了預綜合信号則要采取信号保留(Signal Preservation)措施。

不可測試引腳:Post-fit輸出引腳、進位鍊信号、JTAG控制信号、ALTGXB宏功能信号、LVDS信号(串行/解串器塊的資料輸出)、DQ/DQS信号。

3     設定采樣深度。 

代表每個信号的采樣數量,即采樣Buffer大小。還可以選擇采樣Buffer的RAM類型,如M4K、M512、M_RAM等。

被測信号波形的時間長度為t,則t = N × T.   N為Buffer存儲的采樣點數(采樣深度),T為采樣時鐘周期。

4     設定Buffer的采樣模式。 

段式Buffer:被分成多個大小相同的Buffer,每個Buffer都是獨立的FIFO,并有各自的觸發條件。每次采集過程中隻有一個Buffer可用,其工作方式與非段式Buffer一樣。(常用來檢測較少出現的重複事件)     

非段式Buffer(循環Buffer):ELA把整個存儲器當做一個FIFO,連續存入資料。(非段式存儲可以使用存儲資格(Store Qualification:5種可選方式)功能濾掉與設計無關的采樣值) 

Signal Tap II簡單使用小記

 5     設定觸發條件。    

基本觸發條件:觸發模式有  Don’t Care、Low、High、Falling Edge、Rising Edge、Either Edge 等,可以設定位信号和總線信号。

            進階觸發條件:圖形編輯。   

兩種觸發條件流程控制機制:順序觸發(Sequential Triggering)和自定義基于狀态觸發(Custom State-Based Triggering)。其中順序觸發最多支援10級觸發,最後一個觸發條件滿足時開始采樣。(如圖示,n <= 10) 

Signal Tap II簡單使用小記

 6   設定觸發位置。   三個觸發位置:

Pre-Trigger  儲存觸發後的資料(12%pre-trigger, 88% post-trigger)  

Center-Trigger  儲存Pre-Trigger 和 Post-Trigger資料各50%  

     Post-Trigger  儲存觸發前的資料(88%pre-trigger, 12% post-trigger)。

7   設定外部觸發。 

Trigger in:用外部信号源(輸入信号或其他内部信号)觸發一個ELA,觸發級别最高(Level 0)。 

Trigger out: ELA可以提供觸發外部邏輯或其他ELA的信号輸出。

配置完成後,進行編譯下載下傳并運作Signal Tap II ELA。 觸發條件滿足時,就開始采樣資料,資料會被存儲在存儲緩沖區然後通過JTAG送到.stp檔案進行波形顯示。

現以一個正弦函數發生器舉例說明Signal Tap II的簡單實用。

A、       首先建立一個.MIF或者.HEX檔案來載入正弦波的資料(可用C程式得到具體數值)。再用MegaWizard  Plug-In  Manager建立一個ROM元件來存儲正弦波的資料,得到此ROM的源檔案。再完成頂層的源檔案編寫及引腳配置,正确編譯。

B、        建立Signal Tap 檔案,更改執行個體名為Sin wave。如下圖所示: 

Signal Tap II簡單使用小記

C、       最重要的便是對這一執行個體的配置步驟:

在Setup面闆中,添加被測信号Q(ROM位址信号)和data_out(正弦波輸出信号),設定采樣時鐘,采樣深度,RAM類型,觸發條件,觸發位置等。儲存并添加到工程,編譯下載下傳即可采集資料并在data面闆中觀察采樣信号(顯示形式有數制、柱狀和線型)。且此時列所耗費的LE和RAM資源在上圖的Instance Manager中有列出。

D、       下面主要說明觸發條件的不同對采集資料的影響。(觸發位置都為Center - Trigger)。

令在Q.5=1的時候觸發,即: 

Signal Tap II簡單使用小記

可得波形如下所示,可知觸發采集點為Q=32: 

Signal Tap II簡單使用小記

條件改為2級觸發時,即: 

Signal Tap II簡單使用小記

所的波形為,可知觸發采集點為data_out=255: 

Signal Tap II簡單使用小記

比較兩圖可知,采集資料的觸發點為滿足最後一級觸發條件時刻,這也驗證了了順序觸發的原理。

這隻是ELA的簡單實用,更多進階功能還需進一步學習使用。

轉載于:https://www.cnblogs.com/chenwu128/archive/2011/11/24/2262458.html