SignalTap* II 狀態式觸發流程

author-image

作者

基於狀態的觸發流程可讓您定義自訂的觸發流程,以組織您的觸發條件。這些範例顯示一般觸發流程情境的範本,並說明以狀態為基礎的觸發流程有用的各種情境。在所有這些範例中,您可以使用「一個視窗」中的「所有狀態」顯示模式,將流程描述直接貼到SignalTap II 狀態的觸發流量標籤中,並修改描述以符合您的除錯情境。

事件觸發停用大於或等於 5 個頻率週期

觸發條件的設定

設定標籤中將一個基本的觸發條件定義為所需的值。下圖所示的 TrigCond1 是使用 Mnemonic 表格設定的值 AA 設定的別名。

基於狀態的觸發流程說明

確定包含觸發動作的狀態是否為第一,

因為有條件的對帳單是優先順序。

如果 (c1 >= 5)

觸發器;

否則如果 ( ! 條件 1 )

增量 c1;

如果 (條件 1 &c1 < 5)

重設 c1;

資料分析結果

在事件停用不到 5 個頻率週期時觸發

觸發條件的設定

設定標籤中將一個基本的觸發條件定義為所需的值。下圖所示的 TrigCond1 是使用 Mnemonic 表格設定的值 AA 設定的別名。

基於狀態的觸發流程說明

狀態 ST1:

如果 (條件 1 與 c1 > 0 &c1 < 5)

觸發器;

如果 (! 條件 1 與 c1 < 6)

增量 c1;

如果 (條件 1 &c1 > 5)

重設 c1;

在未發生條件 1 的長序列中,如果有條件聲明,則第二個則新增了 Boolean 狀態 c1 <6,以防止計數器封包。

資料分析結果

第 5 次出現群組值的觸發器

觸發條件的設定

設定標籤中將一個基本的觸發條件定義為所需的值。下圖所示的 TrigCond1 是使用 Mnemonic 表格設定的價值 AA 設定的別名

基於狀態的觸發流程說明

狀態 ST1:

如果 (c1 >= 5)

觸發器;

否則,如果 ( 條件 1 )

增量 c1;

資料分析結果

群體價值第 5 次轉換的導火索

方法 #1:使用邊緣敏感觸發器

觸發條件的設定

針對此案例,我們可以定義邊緣敏感的觸發條件,偵測到所有匯流排轉換至所需的群組值。我們需要在資料匯流排上的任何位進行邊緣偵測,從邏輯上進行 AND,相較于我們期望的群組價值。在此情況下,需要進階觸發條件。下方顯示進階觸發條件編輯器的設定。

基於狀態的觸發流程說明

狀態 ST1:

如果 (c1 >= 5)

觸發器;

其他如果 (條件 1)

增量 c1;

資料分析結果

方法 #2:使用簡單的觸發器與基於狀態的觸發流程

觸發條件的設定

由於為大型匯流排值設定進階觸發條件可能很麻煩,因此這種替代方法使用基本的觸發器,並使用狀態式的觸發流程來偵測匯流排轉換至所需的群組值。

基於狀態的觸發流程說明

狀態 ST1:

如果 (條件 1)

開始

增量 c1;

goto ST2;

結束

狀態 ST2:

如果 (c1 >= 5)

觸發器;

等候條件;維持在此狀態,直到條件 1 為錯誤,不容忽視

所有非匯流排轉換的條件 1 的發生

否則如果 (! 條件 1)

開始

goto ST1;

結束

資料分析結果

請注意,與第一種方法相比,擷取資料的方式略有差異。在此情況下,會使用等級敏感的觸發器來執行觸發條件。如果匯流排值在資料分析開始時就將所需的群組值停放,則此方法包含計數中的群組值。由於第一種方法僅計算匯流排轉換至所需的群組價值,如果收購開始時群組值已停在匯流排上,則第一種方法會忽略第一次出現群組值。

在條件 1 之後觸發,接著是條件 2

觸發條件的設定

設定標籤中對所需值定義了三個基本的觸發條件。前兩個觸發條件設定為所需的群組值。第三個觸發條件旨在擷取第一和第二種情況之間匯流排的某種閒置交易。如果情況更合適,您可以將此觸發條件視為「不在乎」。請注意,Mnemonics 適用于 TrigCond1、TrigCond2 和 IDLE。

基於狀態的觸發流程說明

狀態 ST1:

如果 ( 條件 1 )

goto ST2;

狀態 ST2:

如果 ( 條件 1 ||條件3 )

goto ST2;

其他如果 (條件2)

goto ST3;

否則如果 ( ! 條件2 )

goto ST1;

狀態 ST3:

觸發器;

資料分析結果

在條件 1 上觸發,接著是條件 2

觸發條件的設定

兩個基本的觸發條件定義為所需的群組值。請再次注意,對於 TrigCond1 和 TrigCond2 使用 Mnemonics。

基於狀態的觸發流程說明

狀態 ST1:

如果 ( 條件 1 )

goto ST2;

狀態 ST2:

如果 ( 條件 1 )

goto ST2;

其他如果 (條件2)

觸發器;

goto ST1;

資料分析結果

在條件 1 和條件 3 之間未發生的情況下觸發

觸發條件的設定

三種基本的觸發條件定義為所需的群組值。請再次注意 Mnemonics 的使用。

基於狀態的觸發流程說明

狀態 ST1:

如果 ( 條件 1 )

goto ST2;

狀態 ST2:

如果 ( 條件 3 )

goto ST4;

否則如果 ( ! 條件2 )

goto ST3;

goto ST1;

狀態 ST3:

如果 ( 條件 3 )

goto ST4;

狀態 ST4:

觸發器;

資料分析結果

第 5 次連續發生狀況的觸發因素 1

觸發條件的設定

設定標籤中將一個基本的觸發條件定義為所需的值。下圖所示的 TrigCond1 是使用 Mnemonic 表格設定的值 AA 設定的別名。

基於狀態的觸發流程說明

狀態 ST1:

如果 ( c1 >= 5 )

觸發器;

否則,如果 ( 條件 1 )

增量 c1;

否則如果 ( ! 條件 1 )

重設 c1;

資料分析結果

違反序列後觸發:狀態 1-> 狀況2->狀況3->狀況4

觸發條件的設定

四個基本的觸發條件已設定為所需的序列值。所顯示的所有四個觸發條件皆使用 Mnemonics。

基於狀態的觸發流程說明

狀態 ST1:

如果 ( 條件 1 )

goto ST3;

否則,如果 ( 條件2 )

goto ST4;

其他如果 ( 條件 3 )

goto ST5;

否則,如果 ( 條件 4 )

goto ST2;

觸發器;

狀態 ST2:

如果 ( 條件 4 )

goto ST2;

否則,如果 (條件 1)

goto ST3;

觸發器;

狀態 ST3:

如果 (條件 1)

goto ST3;

其他如果 (條件2)

goto ST4;

觸發器;

狀態 ST4:

如果 (條件2)

goto ST4;

否則,如果 (條件 3)

goto ST5;

觸發器;

狀態 ST5:

如果 (條件 3)

goto ST5;

否則,如果 (條件 4)

goto ST2;

觸發器;

資料分析結果

觸發一系列邊緣

觸發條件的設定

針對所需序列設定了三種邊緣敏感的基本觸發條件。這個範例尋找在通道 1 上上升的邊緣,在通道 2 上下降的邊緣,接著在通道 3 上上升的邊緣。

基於狀態的觸發流程說明

狀態 ST1:

如果 (條件 1)

goto ST2;

狀態 ST2:

如果 (條件2)

goto ST3;

狀態 ST3:

如果 (條件 3)

觸發器;

goto ST1;

資料分析結果

在條件 1 上觸發,接著在 5 個頻率週期後依條件 2 觸發

觸發條件的設定

兩個基本的觸發條件定義為所需的群組值。請再次注意,對於 TrigCond1 和 TrigCond2 使用 Mnemonics。

基於狀態的觸發流程說明

狀態 ST1:

如果 ( 條件 1 )

goto ST2;

狀態 ST2:

如果 ( 條件 1)

goto ST2;

否則如果 ( ! 條件2 )

增量 c1;

如果 (條件 2 & c1 >= 5)

觸發器;

如果 (條件 2 與 c1 < 5)

goto ST1;

資料分析結果

在條件 1 上觸發,接著在 5 個樣本中執行條件 2

觸發條件的設定

兩個基本的觸發條件定義為所需的群組值。請再次注意,對於 TrigCond1 和 TrigCond2 使用 Mnemonics。

基於狀態的觸發流程說明

狀態 ST1:

如果 ( 條件 1 )

goto ST2;

狀態 ST2:

如果 ( 條件 1)

goto ST2;

否則如果 (! 條件 2)

增量 c1;

如果 (條件 2 & c1 <= 5)

觸發器;

如果 (條件 2 與 c1 > 5)

goto ST1;

資料分析結果

在 5 個樣本中,在條件 1 未遵循條件 2 的情況下觸發

觸發條件的設定

兩個基本的觸發條件定義為所需的群組值。請再次注意,對於 TrigCond1 和 TrigCond2 使用 Mnemonics。

基於狀態的觸發流程說明

狀態 ST1:

如果 ( 條件 1 )

goto ST2;

狀態 ST2:

如果 (c1 == 5)

觸發器;

否則,如果 ( 條件 1)

goto ST2;

否則如果 (! 條件 2)

增量 c1;

資料分析結果

5 個連續轉換後觸發

觸發條件的設定

此範例需要觸發條件才能擷取受監視匯流排上的任何轉換活動。需要進階的觸發條件,因為需要 OR 條件。

基於狀態的觸發流程說明

狀態 ST1:

如果 ( c1 == 5 )

觸發器;

否則如果 (! 條件 1)

重設 c1;

否則,如果 ( 條件 1 )

增量 c1;

資料分析結果

當情況 1 在條件 2 和條件 3 之間發生不到 5 次時觸發

觸發條件的設定

此範例需要三個邊緣敏感的觸發條件,每個觸發條件包含與所需群組值的比較。這可以使用進階觸發條件編輯器來完成。下圖顯示三個邊緣敏感觸發條件之一的範例。

基於狀態的觸發流程說明

狀態 ST1:

如果 ( 條件2)

開始

重設 c1;

goto ST2;

結束

狀態 ST2:

如果 (條件 3)

goto ST3;

否則,如果 ( 條件2)

goto ST1;

否則,如果 ( 條件 1 )

增量 c1;

否則,如果 (條件 3 & (c1 >= 5 ))

goto ST1;

狀態 ST3:

觸發器;

資料分析結果

這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。