โฟลว์การกระตุ้นตามสถานะช่วยให้คุณสามารถกําหนดโฟลว์การกระตุ้นแบบกําหนดเองเพื่อจัดระเบียบเงื่อนไขการเรียกใช้ของคุณ ตัวอย่างเหล่านี้แสดงเทมเพลตสําหรับสถานการณ์โฟลว์ที่กระตุ้นทั่วไป และแสดงสถานการณ์ต่างๆ ที่โฟลว์ทริกเกอร์ตามสถานะมีประโยชน์ สําหรับตัวอย่างทั้งหมดนี้ คุณสามารถวางคําอธิบายโฟลว์ลงในแท็บโฟลว์ที่ใช้สถานะ SignalTap II โดยตรงโดยใช้โหมดการแสดงผล สถานะทั้งหมดในหน้าต่างเดียว และปรับเปลี่ยนคําอธิบายเพื่อให้เหมาะกับสถานการณ์การดีบักของคุณ
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
ตรวจสอบให้แน่ใจว่าเงื่อนไขที่มีการดําเนินการทริกเกอร์เป็นอันดับแรกหรือไม่
เนื่องจากข้อความแบบมีเงื่อนไขจะขึ้นอยู่กับลําดับความสําคัญ
ถ้า ( c1 >= 5)
ทริกเกอร์;
หรือหาก ( ! condition1 )
การเพิ่มขึ้น c1
อื่นๆ หาก ( condition1 & c1 < 5 )
รีเซ็ต C1;
ผลลัพธ์การวิเคราะห์ข้อมูล
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( condition1 & c1 > 0 && c1 < 5)
ทริกเกอร์;
หาก ( ! condition1 & c1 < 6)
การเพิ่มขึ้น c1
อื่นๆ หาก ( condition1 & c1 > 5 )
รีเซ็ต C1;
ในกรณีของลําดับแบบยาวที่ไม่มี Condition1 เกิดขึ้น มีการเพิ่มเงื่อนไข Boolean c1 <6 ในอีกกรณีหนึ่ง หากคําสั่งแบบมีเงื่อนไขเพื่อป้องกันไม่ให้ตัวนับห่อ
ผลลัพธ์การวิเคราะห์ข้อมูล
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( c1 >= 5)
ทริกเกอร์;
หรือ หาก ( condition1 )
การเพิ่มขึ้น c1
ผลลัพธ์การวิเคราะห์ข้อมูล
กระตุ้นการเปลี่ยนแปลงมูลค่ากลุ่มครั้งที่ 5
วิธีที่ #1: การใช้ทริกเกอร์ที่ไวต่อ Edge
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
สําหรับกรณีนี้ เราสามารถกําหนดเงื่อนไขการกระตุ้นที่ไวต่อขอบเพื่อตรวจจับการเปลี่ยนบัสทั้งหมดไปยังค่ากลุ่มที่ต้องการได้ เราต้องมีการตรวจจับ Edge สําหรับบิตบนบัสข้อมูลของเราอย่างมีเหตุผล ANDed โดยเปรียบเทียบกับมูลค่ากลุ่มที่ต้องการของเรา ในกรณีนี้จําเป็นต้องมีเงื่อนไขทริกเกอร์ขั้นสูง การตั้งค่าจากตัวแก้ไขเงื่อนไขทริกเกอร์ขั้นสูงแสดงอยู่ด้านล่าง
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า (c1 >= 5)
ทริกเกอร์;
หรือ หาก (condition1)
การเพิ่มขึ้น c1
ผลลัพธ์การวิเคราะห์ข้อมูล
วิธีที่ #2: ใช้การกระตุ้นอย่างง่ายและขั้นตอนการกระตุ้นตามสถานะ
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
เนื่องจากการตั้งค่าเงื่อนไขการกระตุ้นขั้นสูงสําหรับค่าบัสขนาดใหญ่อาจมีความยุ่งยาก วิธีการทางเลือกนี้จึงใช้ทริกเกอร์พื้นฐานและใช้โฟลว์กระตุ้นตามสถานะเพื่อตรวจจับการเปลี่ยนบัสเป็นค่ากลุ่มที่ต้องการ
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า (condition1)
เริ่ม ต้น
การเพิ่มขึ้น c1
goto ST2;
สิ้น สุด
สถานะ ST2:
ถ้า (c1 >= 5)
ทริกเกอร์;
สภาพการรอ; อยู่ในสถานะนี้จนกว่าเงื่อนไข 1 เป็นเท็จที่จะไม่สนใจ
การเกิดขึ้นของ condition1 ทั้งหมดที่ไม่ใช่การเปลี่ยนบัส
หรือหาก (! condition1)
เริ่ม ต้น
goto ST1;
สิ้น สุด
ผลลัพธ์การวิเคราะห์ข้อมูล
โปรดทราบว่าพฤติกรรมการเก็บข้อมูลมีความแตกต่างกันเล็กน้อยเมื่อเทียบกับวิธีแรก ในกรณีนี้ ทริกเกอร์ที่ไวต่อระดับจะถูกใช้สําหรับเงื่อนไขทริกเกอร์ หากค่าบัสถูกจอดที่มูลค่ากลุ่มที่ต้องการเมื่อเริ่มต้นการวิเคราะห์ข้อมูล วิธีการนี้จะรวมมูลค่ากลุ่มไว้ในจํานวน เนื่องจากวิธีแรกนับเฉพาะการเปลี่ยนบัสเป็นค่ากลุ่มที่ต้องการ วิธีแรกจะไม่สนใจการเกิดขึ้นครั้งแรกของมูลค่ากลุ่มหากมีการจอดค่ากลุ่มไว้บนบัสเมื่อเริ่มเข้าซื้อกิจการ
ทริกเกอร์หลังจาก Condition1 ตามด้วย Condition2
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
มีการกําหนดเงื่อนไขทริกเกอร์พื้นฐานสามเงื่อนไขในแท็บการตั้งค่าเป็นค่าที่ต้องการ เงื่อนไขทริกเกอร์สองเงื่อนไขแรกถูกตั้งค่าเป็นค่ากลุ่มที่ต้องการ เงื่อนไขการกระตุ้นข้อที่สามหมายถึงการจับภาพทรานแซคชันที่ไม่ได้ใช้งานบางประเภทบนบัสระหว่างเงื่อนไขแรกและเงื่อนไขที่สอง คุณสามารถใส่เงื่อนไขทริกเกอร์นี้เป็น "ไม่ต้องสนใจ" ได้หากเหมาะสมกว่า หมายเหตุการใช้ Mnemonics สําหรับ TrigCond1, TrigCond2 และ IDLE
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( condition1 )
goto ST2;
สถานะ ST2:
if ( condition1 || condition3 )
goto ST2;
หรือ หาก (condition2 )
goto ST3;
หรือหาก ( ! condition2 )
goto ST1;
สถานะ ST3:
ทริกเกอร์;
ผลลัพธ์การวิเคราะห์ข้อมูล
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( condition1 )
goto ST2;
สถานะ ST2:
ถ้า ( condition1 )
goto ST2;
หรือ หาก (condition2 )
ทริกเกอร์;
อื่น
goto ST1;
ผลลัพธ์การวิเคราะห์ข้อมูล
ทริกเกอร์บน Condition2 ไม่เกิดขึ้นระหว่าง Condition1 และ Condition3
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
มีการกําหนดเงื่อนไขทริกเกอร์พื้นฐานสามเงื่อนไขเป็นค่ากลุ่มที่ต้องการ หมายเหตุอีกครั้งการใช้ Mnemonics
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( condition1 )
goto ST2;
สถานะ ST2:
ถ้า ( condition3 )
goto ST4;
หรือหาก ( ! condition2 )
goto ST3;
อื่น
goto ST1;
สถานะ ST3:
ถ้า ( condition3 )
goto ST4;
สถานะ ST4:
ทริกเกอร์;
ผลลัพธ์การวิเคราะห์ข้อมูล
กระตุ้นการเกิดขึ้นติดต่อกันเป็น 5 ครั้งของ Condition1
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
มีการกําหนดเงื่อนไขทริกเกอร์พื้นฐานหนึ่งข้อในแท็บการตั้งค่าเป็นค่าที่ต้องการ TrigCond1 ที่แสดงในรูปภาพด้านล่างเป็นนามแฝงสําหรับการตั้งค่า AA มูลค่าโดยใช้การตั้งค่าตาราง Mnemonic
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( c1 >= 5 )
ทริกเกอร์;
หรือ หาก ( condition1 )
การเพิ่มขึ้น c1
หรือหาก ( ! condition1 )
รีเซ็ต C1;
ผลลัพธ์การวิเคราะห์ข้อมูล
ทริกเกอร์หลังจากการละเมิดลําดับ: Condition1-> Condition2-> Condition3->4
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
มีการตั้งค่าเงื่อนไขทริกเกอร์พื้นฐานสี่เงื่อนไขเป็นค่าลําดับที่ต้องการ ใช้ Mnemonics สําหรับเงื่อนไขการกระตุ้นทั้งสี่ข้อที่แสดง
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( condition1 )
goto ST3;
หรือ หาก ( condition2 )
goto ST4;
หรือ หาก ( condition3 )
goto ST5;
อื่นๆ หาก ( condition4 )
goto ST2;
อื่น
ทริกเกอร์;
สถานะ ST2:
ถ้า ( condition4 )
goto ST2;
หรือ หาก (condition1 )
goto ST3;
อื่น
ทริกเกอร์;
สถานะ ST3:
ถ้า (condition1)
goto ST3;
หรือหาก (condition2)
goto ST4;
อื่น
ทริกเกอร์;
สถานะ ST4:
ถ้า (เงื่อนไข2)
goto ST4;
หรือ หาก (condition3)
goto ST5;
อื่น
ทริกเกอร์;
สถานะ ST5:
ถ้า (เงื่อนไข3)
goto ST5;
อื่นๆ หาก ( condition4)
goto ST2;
อื่น
ทริกเกอร์;
ผลลัพธ์การวิเคราะห์ข้อมูล
ทริกเกอร์ในลําดับของ Edge
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
มีการตั้งค่าเงื่อนไขทริกเกอร์พื้นฐานที่ไวต่อ Edge สามเงื่อนไขสําหรับลําดับที่ต้องการ ตัวอย่างนี้ค้นหา Edge ที่เพิ่มขึ้นบนช่อง 1 ซึ่งเป็นขอบที่ลดลงบนช่อง 2 ตามด้วย Edge ที่เพิ่มขึ้นในช่อง 3
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า (condition1)
goto ST2;
สถานะ ST2:
ถ้า (เงื่อนไข2)
goto ST3;
สถานะ ST3:
ถ้า (เงื่อนไข3)
ทริกเกอร์;
อื่น
goto ST1;
ผลลัพธ์การวิเคราะห์ข้อมูล
ทริกเกอร์บน Condition1 ตามด้วย Condition2 หลังจาก 5 รอบสัญญาณนาฬิกา
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
เงื่อนไขทริกเกอร์พื้นฐานสองเงื่อนไขจะถูกกําหนดเป็นค่ากลุ่มที่ต้องการ หมายเหตุอีกครั้งการใช้ Mnemonics สําหรับ TrigCond1 และ TrigCond2
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( condition1 )
goto ST2;
สถานะ ST2:
ถ้า ( เงื่อนไข1)
goto ST2;
หรือหาก ( ! condition2 )
การเพิ่มขึ้น c1
ถ้า (condition2 & c1 >= 5)
ทริกเกอร์;
หาก (condition2 & c1 < 5)
goto ST1;
ผลลัพธ์การวิเคราะห์ข้อมูล
ทริกเกอร์บน Condition1 ตามด้วย Condition2 ภายใน 5 ตัวอย่าง
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
เงื่อนไขทริกเกอร์พื้นฐานสองเงื่อนไขจะถูกกําหนดเป็นค่ากลุ่มที่ต้องการ หมายเหตุอีกครั้งการใช้ Mnemonics สําหรับ TrigCond1 และ TrigCond2
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( condition1 )
goto ST2;
สถานะ ST2:
ถ้า ( เงื่อนไข1)
goto ST2;
หรือ ถ้า ( ! เงื่อนไข2)
การเพิ่มขึ้น c1
ถ้า (condition2 & c1 <= 5)
ทริกเกอร์;
หาก (condition2 & c1 > 5)
goto ST1;
ผลลัพธ์การวิเคราะห์ข้อมูล
ทริกเกอร์บน Condition1 ที่ไม่ได้ตามด้วย Condition2 ภายใน 5 ตัวอย่าง
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
เงื่อนไขทริกเกอร์พื้นฐานสองเงื่อนไขจะถูกกําหนดเป็นค่ากลุ่มที่ต้องการ หมายเหตุอีกครั้งการใช้ Mnemonics สําหรับ TrigCond1 และ TrigCond2
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( condition1 )
goto ST2;
สถานะ ST2:
if (c1 == 5)
ทริกเกอร์;
หรือหาก ( condition1)
goto ST2;
หรือ ถ้า ( ! เงื่อนไข2)
การเพิ่มขึ้น c1
ผลลัพธ์การวิเคราะห์ข้อมูล
ทริกเกอร์หลังจากการเปลี่ยนผ่านติดต่อกัน 5 รายการ
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
ตัวอย่างนี้ต้องการเงื่อนไขกระตุ้นเพื่อจับภาพกิจกรรมการเปลี่ยนแปลงใดๆ บนบัสที่ตรวจสอบ จําเป็นต้องมีเงื่อนไขทริกเกอร์ขั้นสูงเนื่องจากจําเป็นต้องมีเงื่อนไข OR
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( c1 == 5 )
ทริกเกอร์;
หรือหาก ( ! condition1)
รีเซ็ต C1;
หรือ หาก ( condition1 )
การเพิ่มขึ้น c1
ผลลัพธ์การวิเคราะห์ข้อมูล
ทริกเกอร์เมื่อ condition1 เกิดขึ้นน้อยกว่า 5 ครั้งระหว่าง Condition2 และ Condition3
การตั้งค่าสําหรับเงื่อนไขทริกเกอร์
ตัวอย่างนี้ต้องใช้เงื่อนไขทริกเกอร์ที่ไวต่อ Edge สามเงื่อนไขโดยแต่ละเงื่อนไขทริกเกอร์ที่มีการเปรียบเทียบกับค่ากลุ่มที่ต้องการ ซึ่งสามารถทําได้โดยใช้ตัวแก้ไขเงื่อนไขทริกเกอร์ขั้นสูง รูปภาพด้านล่างแสดงตัวอย่างสําหรับหนึ่งในเงื่อนไขการกระตุ้นที่ไวต่อ Edge สามเงื่อนไข
คําอธิบายโฟลว์ทริกเกอร์ตามสถานะ
สถานะ ST1:
ถ้า ( เงื่อนไข2)
เริ่ม ต้น
รีเซ็ต C1;
goto ST2;
สิ้น สุด
สถานะ ST2:
ถ้า (condition3 )
goto ST3;
หรือหาก ( condition2)
goto ST1;
หรือ หาก ( condition1 )
การเพิ่มขึ้น c1
อื่นๆ หาก ( condition3 & (c1 >= 5 ))
goto ST1;
สถานะ ST3:
ทริกเกอร์;