Signal Tap II有助于觀察邏輯内部信号行為,可使不借助外部裝置進行設計調試。(當然使用的前提條件是有硬體平台)
Signal Tap II ELA 組成框圖
采樣獲得的資料會存儲在器件的存儲器塊中,通過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種可選方式)功能濾掉與設計無關的采樣值)
5 設定觸發條件。
基本觸發條件:觸發模式有 Don’t Care、Low、High、Falling Edge、Rising Edge、Either Edge 等,可以設定位信号和總線信号。
進階觸發條件:圖形編輯。
兩種觸發條件流程控制機制:順序觸發(Sequential Triggering)和自定義基于狀态觸發(Custom State-Based Triggering)。其中順序觸發最多支援10級觸發,最後一個觸發條件滿足時開始采樣。(如圖示,n <= 10)
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。如下圖所示:
C、 最重要的便是對這一執行個體的配置步驟:
在Setup面闆中,添加被測信号Q(ROM位址信号)和data_out(正弦波輸出信号),設定采樣時鐘,采樣深度,RAM類型,觸發條件,觸發位置等。儲存并添加到工程,編譯下載下傳即可采集資料并在data面闆中觀察采樣信号(顯示形式有數制、柱狀和線型)。且此時列所耗費的LE和RAM資源在上圖的Instance Manager中有列出。
D、 下面主要說明觸發條件的不同對采集資料的影響。(觸發位置都為Center - Trigger)。
令在Q.5=1的時候觸發,即:
可得波形如下所示,可知觸發采集點為Q=32:
條件改為2級觸發時,即:
所的波形為,可知觸發采集點為data_out=255:
比較兩圖可知,采集資料的觸發點為滿足最後一級觸發條件時刻,這也驗證了了順序觸發的原理。
這隻是ELA的簡單實用,更多進階功能還需進一步學習使用。
轉載于:https://www.cnblogs.com/chenwu128/archive/2011/11/24/2262458.html