每個序列步驟由兩部分組成:條件和操作。條件是指布爾邏輯表達式,例如“If
ADDR = 1000”或“If there is a rising edge on
SIG1”。操作是指符合條件時邏輯分析儀應當執行的內容。操作的示例包括觸發邏輯分析儀、轉至另一序列步驟以及啟動定時器。這類似于編程中的
If/Then 語句。
當符合序列步驟中的條件時,使用“轉到”操作時下一步將執行哪個序列步驟將會非常清楚,但是如果沒有使用“轉到”操作,則不可能知道執行哪個序列步驟。在一些邏輯分析儀上,如果沒有“轉到”,這意味著應當執行下一序列步驟。在其他邏輯分析儀上,意味著將再次執行同一序列步驟。由于比較混亂,最好使用“轉到”操作而不依靠默認。狀態和定時模塊通過在每個序列步驟中自動包含一個“轉到”或“觸發”操作來解決這一問題。例如: If
ADDR = 1000 and DATA = 2000 then Go to 1 <- 這是自動添加的
布爾邏輯表達式:當多個序列步驟表示“后跟”時,可以在序列步驟內使用布爾邏輯表達式。示例: If
ADDR = 1000 and DATA = 2000 此表達式意指在同一樣本中 ADDR 必須等于 1000 且 DATA 等于
2000,才能符合此表達式。換句話說,在 ADDR 等于 1000 的同時 DATA 等于
2000。因此,如果要在同時發生兩個事件時觸發,則應使用布爾邏輯表達式。常見錯誤是應使用布爾邏輯表達式時嘗試使用兩個序列步驟,或者應使用兩個序列步驟時嘗試使用布爾邏輯表達式。當多個事件同時發生時使用布爾邏輯表達式,而在一個事件接著一個事件發生時使用多個序列步驟。
分支:分支類似于 C 編程語言中的 Switch 語句和 Basic 中的 Select Case 語句。分支可提供測試多個條件的方法。每個分支都有其獨有的操作。下面是多分支的一個示例: 1.
If ADDR < 1000 then Go To 2 <- This is a branch of Level 1 Else
If ADDR > 2000 then Go To 3 <- This is a 2nd branch of Level 1
Else If DATA = 2000 then Trigger <- This is a 3rd branch of Level 1
2. If DATA <= 7000 then Trigger 3. If there is a Rising Edge on SIG1,
then Trigger 在序列步驟 1 中,存在三個分支,因此存在三個可以采用的操作。
范圍:指定值的范圍是劃分范圍的一種便捷方式,如“1000
到 2000 范圍內的 ADDR”。大多數邏輯分析儀還支持“not in range”功能。范圍是一種方便的快捷方式,因此您無需指定“ADDR
>= 1000 and ADDR <= 2000”。 標志:標志是用于從一個模塊向另一個模塊發送信號的布爾變量。當某種情況在某一模塊中發生而稍后被另一模塊測試時可以設置標志。在下面的示例中,標志 1 用于跟蹤在模塊 1 的觸發序列中發生的情況,以便在模塊 2 中使用此信息。
模塊 1 的觸發序列: 1. If ADDR < 5000 then Set Flag 1 Trigger and fill memory 模塊 2 的觸發序列: 1. If DATA = 5000 and Flag 1 is set then Trigger Else if DATA = 1000 and not Flag 1 then Trigger 計數器:發生計數器用于想要查找事件的“第 N 次”出現的情況。例如,如果想在 ADDR = 1000 第 5 次出現時觸發,可以將觸發設置為: