คุณอาจได้รับคําเตือนนี้ระหว่างการวิเคราะห์ซอฟต์แวร์ Quartus® II และการสังเคราะห์เมื่อทําการสังเคราะห์ Finite State Machine (FSM) นี่เป็นคําเตือนที่ไม่ถูกต้องที่แสดงโดยซอฟต์แวร์ Quartus II เวอร์ชั่น 6.0 SP1 ข้อความเตือนไม่ถูกต้องไม่แสดงขึ้นเริ่มต้นด้วยซอฟต์แวร์ Quartus II เวอร์ชั่น 6.1
คําเตือนนี้เกิดขึ้นเมื่อคุณกําหนดตัวแปรสถานะสําหรับ FSM ที่ป้อนเข้าไปยังพอร์ตเอาต์พุต ในตัวอย่าง arbiter_state
ต่อไปนี้ คือผลลัพธ์ของขนาด [1:0]
และ mystate
เป็นค่าที่กําหนด และจะถูกใช้ในรายงานกรณีที่มีตัวเลือกที่เป็นไปได้ 4 ตัวเลือก:
assign arbiter_state = mystate;
case (mystate)
...Branch 1...
...Branch 2...
...Branch 3...
...Branch 4...endcase
เมื่อ Quartus II Analysis and Synthesis อนุมาน FSM จะเข้ารหัสตัวแปรสถานะโดยใช้การเข้ารหัสแบบ Hot เดียว ในกรณีนี้ Mystate มี 4 รัฐและมี 4 บิต ในตัวอย่างนี้ เมื่อคุณกําหนด mystate
สัญญาณที่เรียกว่า arbiter_state
ซอฟต์แวร์จะเข้ารหัสตัวแปร mystate
สถานะก่อนดําเนินการมอบหมาย อย่างไรก็ตาม ซอฟต์แวร์จะตรวจสอบการตัดทอนบิตก่อนการเข้ารหัสค่าแทนที่จะเป็นหลังจากนี้ ดังนั้นซอฟต์แวร์จึงตีความด้านขวาของการกําหนดเป็น 4 บิตแทนที่จะเป็น 2 และออกข้อความเตือน คําเตือนการตัดทอนไม่มีผลกระทบต่อฟังก์ชันการออกแบบ
หากต้องการกําจัดข้อความเตือนในซอฟต์แวร์ Quartus II เวอร์ชั่น 6.0 และก่อนหน้า คุณสามารถเปลี่ยนขนาดของสัญญาณเอาต์พุตเป้าหมาย (arbiter_state
ในตัวอย่างข้างต้น) เป็น 4 บิตและใช้บิตที่ต่ํากว่าสองตัวที่ต่ําลงและเป็นประโยชน์น้อยที่สุด