SignalTap II應用小實例之觸發位置

概述緩存

       SignalTap II一直以來都是筆者調試Altera FPGA設計的利器,最近比較有時間靜下心來研究SignalTap II某些細節,雖然筆者有過很多關於SignalTap的使用,且也發表過一些博文介紹,可是仍是有些有技巧若是加以利用是能夠大大方便具體項目中的調試。好比本文將要介紹的觸發條件位置的選擇。spa

什麼是觸發位置設計

    所謂觸發位置,即trigger position。是指trigger採樣位於緩存中的位置,咱們知道在設置SignalTap的時候須要設置一個採樣深度,緩存深度。那麼觸發位置的設置(或者說選擇)就是指定trigger的位置,或者說指定當trigger發生時緩存數據段的選擇。3d

圖1:觸發位置設置調試

   如圖1所示觸發位置有三種選擇,分別是「Pre trigger position」、「Center trigger position」和「Post trigger position」。這三個設置的意思,很明顯就是緩存數據分別選擇以trigger前、trigger爲中心或者是以trigger後爲主。Altera規定Pre,即12%before trigger,88%after;Center,即先後各50%;Post,即88%before,12%after。blog

實例演示觸發位置不一樣選擇it

         這個設置最大的好處是用戶能夠在線實時修改選擇,而不須要從新編譯工程。因此在實際調試工程的時候,找到觸發條件後,經常有時候須要看trigger以後的信號狀況,而有時候則須要觀察trigger以前的狀態,有了這個設置就很是方便了。io

一、 首先咱們來看設置爲「Pre trigger position」的實例,如圖2所示。編譯

圖2技巧

二、 接着咱們來看設置爲「Center trigger position」的實例,如圖3所示。

圖3

三、 最後咱們來看設置爲「Center trigger position」的實例,如圖4所示。

圖4

結論

你們能夠清楚看到圖二、圖3和圖4的異同,相同點是觸發的條件設置都是同樣的,不一樣的就是觸發後SignalTap顯示的數據段不一樣,圖2主要顯示trigger 發生以後的數據,圖3顯示平均展現trigger先後的數據,而圖4則主要顯是了trigger發生以前的數據。

另外,須要注意的是SignalTap最多能夠設置10個觸發條件(trigger condition),若是設置了多個觸發條件,那麼觸發數據緩存發生必須是全部觸發條件都發生,並且存儲數據的選擇(即trigger position)依據最後一個條件產生。好比圖2到圖4的實例,筆者設置了兩個觸發條件,分別是在one_led_out爲「four」和「eight」,如圖5所示。而數據採集存儲是以eight條件觸發時爲依據。

圖5:觸發條件設置

圖6:放大察看觸發位置

圖6是爲了更清晰地看到觸發位置,從而放大了圖2,能夠看到觸發位置位於從「seven」變化到「eight」處,即第二個觸發條件「eight」發生時刻。

最後,若是有多個觸發條件的時候,當有些觸發條件在調試的時候若是不用時,能夠disable這些觸發條件,如圖7所示,將觸發條件中的「對號」去掉便可,須要的時候在選上。如圖7所示咱們去使能第二觸發條件,而後從新運行SignalTap,那麼得到的結果如圖8所示,數據採樣存儲發生在單個觸發條件「four」處。

圖7:去使能某個觸發條件

圖8:採樣存儲觸發發生在「four」時刻

相關文章
相關標籤/搜索