ID บทความ: 000084426 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 11/09/2012

ทําไมการสังเคราะห์ Quartus II จึงมีการประมวลผลบิตที่เลือกจากตัวแปรที่มีลายเซ็นไม่ถูกต้อง

สิ่งแวดล้อม

BUILT IN - ARTICLE INTRO SECOND COMPONENT
คำอธิบาย

ซอฟต์แวร์ Quartus® II เวอร์ชั่น 6.0 และ 6.0 SP1 ประมวลผลบิตจากตัวแปรที่ลงชื่ออย่างไม่ถูกต้องเนื่องจากปัญหาซอฟต์แวร์ที่ทราบ โค้ด Verilog ที่เกี่ยวข้องกับบิตที่เลือกจากตัวแปรที่มีลายเซ็นควรส่งคืนค่าที่ไม่ได้รับการรับรองตามที่ระบุไว้ใน Verilog LRM (Std 1364-2001 Version C, Sec 4.5.1)

ปัญหานี้ไม่มีอยู่ในเวอร์ชั่น 5.1 หรือก่อนหน้า ปัญหาได้รับการแก้ไขเริ่มต้นด้วยซอฟต์แวร์ Quartus II เวอร์ชั่น 6.1

ดังตัวอย่างของปัญหานี้ ซอฟต์แวร์ Quartus II เวอร์ชั่น 6.0 ประมวลผลตัวอย่างรหัสต่อไปนี้อย่างไม่ถูกต้อง:

reg [7:0] unrounded;

reg [6:0] rounded;

always @ (posedge clk) begin

 rounded <= unrounded[7:1]   unrounded[0];

ซอฟต์แวร์ควรขยายสัญญาณเป็นศูนย์[0] เพื่อให้แน่ใจว่ามีการเพิ่มค่าบิตหนึ่งไปยังส่วนบิตของunrounded[7:1]

ซอฟต์แวร์ Quartus II เวอร์ชั่น 6.0 และ 6.0 SP1 จะขยายสัญญาณ unrounded[0] แทนการขยายสัญญาณเป็นศูนย์ ในตัวอย่าง หาก unrounded[0] สัญญาณเป็นค่า 1 ซอฟต์แวร์จะแปลง 1 เป็นเครื่องหมายของตัวเลข และแปลงเป็นการแสดง -1 แบบ 7 บิตแทนค่าที่ไม่มีลายเซ็น ดังนั้นซอฟต์แวร์จึงเพิ่ม -1 ไปยัง unrounded[7:1]แทนที่จะเพิ่ม 1

เพื่อหลีกเลี่ยงปัญหานี้ (ในเวอร์ชัน 6.0 หรือ 6.0 SP1) ให้เลือกทําอย่างใดอย่างหนึ่งต่อไปนี้:

  • ติดต่อ mySupport เพื่อขอโปรแกรมแก้ไข 1.20 สําหรับซอฟต์แวร์ Quartus II เวอร์ชั่น 6.0 SP1
  • ใส่วง่นรอบตัวแปรใดตัวแปรหนึ่งและบังคับให้ทั้งการแสดงมีการประเมินว่าไม่มีเครื่องหมายโดยใช้ฟังก์ชัน Verilog-2001 :
rounded <= (unrounded[7:1])   unrounded[0]
  • ใส่ศูนย์นําหน้าด้วยตนเองดังนี้ (กล่าวคือ ระบุบิตชั้นนําอย่างชัดแจ้งควรเป็น 0):
  • rounded <= unrounded[7:1]   {{6{1'b 0}}, unrounded[0]};

     

ผลิตภัณฑ์ที่เกี่ยวข้อง

บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

Stratix® II FPGA

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้