ปัญหาสำคัญ
เนื่องจากปัญหาในซอฟต์แวร์ Quartus® II เวอร์ชั่น 12.1 SP1 การสั่งซื้อในไฟล์การตั้งค่า Quartus II (.qsf) ของโครงการคุณสามารถเปลี่ยนแปลงได้โดยไม่คาดคิด
ลักษณะการทํางานนี้อาจเกิดขึ้นเมื่อคุณเปิดโครงการที่มีอยู่หรือเมื่อคุณเรียกใช้งานคําสั่ง Upgrade IP
หากโครงการของคุณมีการพึ่งพาคําสั่งซื้อไฟล์ Synopsys Design Constraint (.sdc) การจัดลําดับใหม่นี้อาจส่งผลให้เกิดการตั้งค่าความถี่ที่ไม่คาดคิดหรือการบ้านกําหนดเวลาอื่นๆ คุณสามารถมีโครงการที่มีไฟล์ Quartus II IP (.qip) หลายระดับ ภายในไฟล์ .qip คุณอาจมีการอ้างอิงไปยังไฟล์ .qip หรือ .sdc เพิ่มเติม ตัวอย่างเช่น โปรดดูที่ส่วนการแก้ปัญหาด้านล่าง การตั้งค่า .sdc ไม่ถูกต้องอาจทําให้เกิดรูปแบบการออกแบบที่ไม่ถูกต้องหรือข้อผิดพลาดในการทํางาน
มีไฟล์สคริปต์ Tcl พร้อมให้ตรวจสอบว่าการออกแบบของคุณได้รับผลกระทบจากปัญหานี้หรือไม่ ดาวน์โหลด qip_checker.tcl เพื่อระบุหากมีปัญหาเกี่ยวกับคําสั่งซื้อไฟล์ คุณสามารถเรียกใช้สคริปต์นี้ด้วยคําสั่งต่อไปนี้:
quartus_sh -t qip_checker.tcl [-force]
สําหรับการใช้งานโดยละเอียดในสคริปต์นี้ ให้พิมพ์
quartus_sh -t qip_checker.tcl
มีโปรแกรมแก้ไขเพื่อแก้ไขปัญหานี้สําหรับซอฟต์แวร์ Quartus II เวอร์ชั่น 12.1 SP1 ดาวน์โหลดและติดตั้งโปรแกรมแก้ไข 1.33 จากลิงก์ที่เหมาะสมด้านล่าง:
- ดาวน์โหลดเวอร์ชัน 12.1 SP1 patch 1.33 สําหรับ Windows (.exe)
- ดาวน์โหลดเวอร์ชัน 12.1 SP1 patch 1.33 สําหรับ Linux (.tar)
- ดาวน์โหลด Readme สําหรับซอฟต์แวร์ Quartus II เวอร์ชัน 12.1 SP1 patch 1.33 (.txt)
โปรแกรมแก้ไขนี้เข้ากันได้กับซอฟต์แวร์ Quartus II เวอร์ชั่น 12.1 SP1 (build 243)
โปรแกรมแก้ไข 1.33 ไม่สามารถใช้ร่วมกับโปรแกรมแก้ไขอุปกรณ์ Quartus II เวอร์ชั่น 12.1 SP1 (1.dp) สําหรับอุปกรณ์ Stratix® V, Arria® V และ Cyclone® V หากคุณใช้อุปกรณ์เหล่านี้ คุณสามารถแก้ไขปัญหานี้ได้ด้วยการอัปเกรดเป็นแพตช์อุปกรณ์ 1.dp6 หรือใหม่กว่าโดยใช้ลิงก์ในโซลูชันที่เกี่ยวข้องด้านล่าง
หากคุณไม่สามารถใช้โปรแกรมแก้ไขนี้ คุณสามารถหลีกเลี่ยงปัญหานี้ได้ด้วยการสร้างไฟล์ข้อความที่เรียกว่า quartus.ini ในไดเรกทอรีโครงการของคุณ (หากยังไม่มีอยู่) เพิ่มบรรทัดต่อไปนี้ในไฟล์ข้อความเพื่อป้องกันการจัดประเภทไฟล์ใหม่:
disable_ip_regen=on
ตัวเลือกนี้จะปิดใช้งานคุณสมบัติการสร้าง IP ใหม่อัตโนมัติบางส่วน ดังนั้นคุณอาจต้องสร้าง IP ขึ้นใหม่โดยใช้การทํางานของบรรทัดคําสั่ง
หากคุณพบปัญหานี้แล้ว คุณควรทําตามขั้นตอนต่อไปนี้:
- ใช้โปรแกรมแก้ไขหรือใช้
disable_ip_regen=on
การตั้งค่า ini ทันที - ลบการบ้านใดๆ ใน .qsf ที่มีหรือ
-sip
แสดง-qip
หัวข้ออื่น - ตรวจสอบ
QIP_FILE
การบ้านภายใน .qsf และลบงานใดๆ ที่ไม่ได้อยู่ในระดับสูงสุด - แก้ไข ไฟล์ .qsf เพื่อแก้ไขคําสั่งซื้อไฟล์ .sdc และ .qip ด้วยตนเอง
ด้านล่างนี้เป็นตัวอย่างของเอฟเฟ็กต์การจัดซื้อใหม่ที่คุณควรแก้ไขด้วยตนเองหากได้รับผลกระทบจากการออกแบบของคุณ
ตัวอย่างเช่น ก่อนที่ซอฟต์แวร์ Quartus II เวอร์ชัน 12.1 SP1 การออกแบบจะมีไฟล์ .sdc และ .qip ตามที่ระบุไว้ในไฟล์ Project .qsf ดังต่อไปนี้:
a.qsf:
set_global_assignment -name SDC_FILE a_before.sdc
set_global_assignment -name QIP_FILE a.qip
set_global_assignment -name SDC_FILE a_after.sdc
a.qip:
set_global_assignment -name SDC_FILE aqip_before.sdc
set_global_assignment -name QIP_FILE asub.qip
set_global_assignment -name SDC_FILE aqip_after.sdc
asub.qip:
set_global_assignment -name SDC_FILE asub.sdc
ต่อไปนี้คือลําดับไฟล์จากหน่วยความจํา:
set_global_assignment -name SDC_FILE a_before.sdc
set_global_assignment -name QIP_FILE a.qip
set_global_assignment -name SDC_FILE aqip_before.sdc # from qip a.qip
set_global_assignment -name QIP_FILE asub.qip # from qip a.qip
set_global_assignment -name SDC_FILE asub.sdc # from qip asub.qip
set_global_assignment -name SDC_FILE aqip_after.sdc # from qip a.qip
set_global_assignment -name SDC_FILE a_after.sdc
ดังนั้นโครงการจึงอ่านการบ้านSDC_FILEตามลําดับต่อไปนี้:
- a_before.sdc
- aqip_before.sdc
- asub.sdc
- aqip_after.sdc
- a_after.sdc
ในซอฟต์แวร์ Quartus II เวอร์ชั่น 12.1 SP1 หลังจากเรียกใช้ปัญหาซอฟต์แวร์ (การเปิดโครงการหรืออัพเกรด IP) .qsf จะมีลักษณะดังนี้:
a.qsf:
set_global_assignment -name SDC_FILE a_before.sdc
set_global_assignment -name SDC_FILE a_after.sdc
set_global_assignment -name QIP_FILE a.qip
set_global_assignment -name QIP_FILE asub.qip
ต่อไปนี้คือลําดับไฟล์จากหน่วยความจํา:
set_global_assignment -name SDC_FILE a_before.sdc
set_global_assignment -name SDC_FILE a_after.sdc
set_global_assignment -name QIP_FILE a.qip
set_global_assignment -name SDC_FILE aqip_before.sdc # from qip a.qip
set_global_assignment -name QIP_FILE asub.qip # from qip a.qip
set_global_assignment -name SDC_FILE aqip_after.sdc # from qip a.qip
set_global_assignment -name QIP_FILE asub.qip
set_global_assignment -name SDC_FILE asub.sdc # qip asub.qip
ดังนั้นโครงการจึงอ่านการบ้านSDC_FILEตามลําดับต่อไปนี้:
- a_before.sdc
- a_after.sdc
- aqip_before.sdc
- aqip_after.sdc
- asub.sdc
หากการออกแบบขึ้นอยู่กับคําสั่งซื้อ .sdc ถูกอ่าน คําสั่งซื้อที่เปลี่ยนแปลงนี้อาจส่งผลต่อผลลัพธ์การปรับแต่งการออกแบบและการวิเคราะห์เวลา ในการแก้ไขปัญหาให้เพิ่มการตั้งค่า ini ตามที่อธิบายไว้ข้างต้นแล้วแก้ไข .qsf เพื่อใช้คําสั่งซื้อที่ได้รับมอบหมายที่ถูกต้องเดิม หากต้องการตรวจสอบว่าคําสั่งซื้อมีการเปลี่ยนแปลงอย่างรวดเร็วหรือไม่ โปรดดู .qsf ที่เกิดขึ้นก่อนซอฟต์แวร์ Quartus II เวอร์ชั่น 12.1 SP1
ปัญหานี้ได้รับการแก้ไขเริ่มต้นด้วยซอฟต์แวร์ Quartus II เวอร์ชั่น 13.0