เนื่องจากปัญหาใน DSP Builder Advanced Blockset เวอร์ชั่น 17.1 และก่อนหน้า คุณอาจเห็นข้อผิดพลาดต่อไปนี้หาก Simulink® ดําเนินการบล็อกบัสอื่นๆ ก่อนบล็อก BusStimulus
- การเปิดใช้งานการเขียนบนบล็อก BusSlave ที่เลิกใช้งานแล้วจะไม่รับรอง
- เอาต์พุตอื่นๆ บนบัสบล็อกทั้งหมดจะเกิดขึ้นหนึ่งรอบสัญญาณนาฬิกาในภายหลัง
ใน DSP Builder บัสบล็อก (เช่น บล็อก RegField) จะขึ้นอยู่กับบล็อก BusStimulus: มีสายโดยนัยอยู่ระหว่างกัน ดังนั้น Simulink ควรดําเนินการบล็อก BusStimulus ก่อนบล็อกบัสอื่นๆ อย่างไรก็ตาม Simulink ไม่ทราบเกี่ยวกับการพึ่งพิงนี้ดังนั้น Simulink จึงมีอิสระที่จะดําเนินการบล็อกเหล่านี้ตามลําดับโดยพลการ
คําสั่งดําเนินการของบัสบล็อกอาจเปลี่ยนไปเนื่องจากการเปลี่ยนแปลงการออกแบบที่ไม่เกี่ยวข้อง ตัวอย่างเช่น การออกแบบที่อาศัยความหน่วงแฝงของบัสสําหรับการตรวจสอบอัตโนมัติอาจเริ่มล้มเหลวเนื่องจากคุณได้เพิ่ม Scope Block เพิ่มเติม บล็อกเพิ่มเติมอาจเปลี่ยนลําดับการดําเนินการโดยใส่บล็อก RegField ก่อนบล็อก BusStimulus ซึ่งจะเปลี่ยนความหน่วงแฝงระหว่างบล็อกเหล่านั้น
หากต้องการแก้ไขปัญหานี้ ให้ตั้งค่าลําดับความสําคัญของบล็อก BusStimulus เป็นค่าที่ต่ํากว่าบล็อกระบบย่อยที่มีการออกแบบ DSP Builder ตัวอย่างเช่น ตั้งค่า BusStimulus Block Priority เป็น 0 และบล็อกระบบย่อย DSPBA เป็น 1 Simulink ควรดําเนินการบล็อก BusStimulus ก่อนสิ่งใดๆ ในระบบย่อย ซึ่งรับประกันการทํางานของบัสที่สอดคล้องกัน
เมื่อต้องการดูคําสั่งดําเนินการ: จากแถบเมนูหลัก ให้เลือก Display -> Blocks ->เรียงลําดับคําสั่งดําเนินการ
หากต้องการตั้งค่าลําดับความสําคัญของบล็อก: คลิกขวาที่บล็อก เลือก คุณสมบัติ: ฟิลด์ ลําดับความสําคัญ จะอยู่ในแท็บ ทั่วไป
หมายเหตุ: ค่าลําดับความสําคัญจะคล้ายกับลําดับการดําเนินการในมูลค่าที่ต่ํากว่าหมายถึงการดําเนินการก่อน อย่างไรก็ตาม ค่าลําดับความสําคัญแตกต่างจากลําดับการดําเนินการที่ไม่ครอบคลุมระบบย่อย นี่คือเหตุผลสําหรับข้อกําหนดในการตั้งค่าลําดับความสําคัญในระบบย่อย DSP Builder แทนที่จะเป็นบล็อกบัสที่อยู่ภายใน