ใช่ เนื่องจากปัญหาซอฟต์แวร์ Quartus® Prime เวอร์ชั่น 16.0 และก่อนหน้า การกําหนดค่าตัวนับ C ใหม่ใน IOPLs อาจไม่สามารถทํางานได้อย่างถูกต้อง ปัญหานี้เกิดขึ้นเนื่องจากการแมปตรรกะกับตัวนับทางกายภาพไม่ได้ถูกสร้างขึ้นอย่างถูกต้องในบางการคอมไพล์ ซึ่งจะทําให้ตัวนับ C ที่ตั้งใจไม่ให้ทําการกําหนดค่าใหม่อย่างถูกต้องเมื่อทําการกําหนดค่าใหม่ในโหมดผู้ใช้
เพื่อแก้ไขปัญหานี้ คุณสามารถสั่งซื้อตัวนับเอาต์พุต IOPLL ที่ใช้ในการออกแบบได้ด้วยตนเอง ทําตามขั้นตอนด้านล่างเพื่อสั่งซื้อตัวนับเอาต์พุตอีกครั้ง:
ใส่บรรทัดต่อไปนี้ลงในไฟล์ quartus.ini และวางไฟล์ในไดเรกทอรีโครงการ:
cpll_disable_oport_rotation=on- ระบุตัวนับเอาต์พุตทางกายภาพที่ใช้ในการคอมไพล์
ใช้ Read_PLL_Setting.tcl เพื่ออ่านการตั้งค่าตัวนับ C ทางกายภาพที่ใช้ในการออกแบบ โปรดดูที่ส่วน README ในไฟล์ tcl สําหรับคําแนะนําเกี่ยวกับวิธีการใช้สคริปต์
ดาวน์โหลดไฟล์ Read_PLL_Setting.tcl
- การอ้างอิงไขว้ไปยังรายงานสรุป PLL เพื่อระบุตัวนับทางกายภาพที่ใช้
- สร้าง IP IOPLL ใหม่เพื่อสั่งซื้อนาฬิกาเอาต์พุตอีกครั้งตามตัวนับทางกายภาพที่ระบุไว้ในขั้นตอนที่ 2 ซึ่งไม่จําเป็นบน IOPLL ที่ใช้สําหรับอินเทอร์เฟซหน่วยความจําภายนอก
ตัว อย่าง เช่น:
พิจารณา IP IOPLL ต่อไปนี้และตัวนับทางกายภาพที่ใช้ในการคอมไพล์
IP สัญญาณนาฬิกาออกใน IOPLL | ความถี่ | ตัวนับทางกายภาพ |
Outclk0 | A | C4 |
Outclk1 | B | C5 |
สร้าง IP IOPLL ใหม่ด้วยพารามิเตอร์ต่อไปนี้
IP สัญญาณนาฬิกาออกใน IOPLL | ความถี่ |
Outclk0 | อย่าสนใจ (A หรือ B) |
Outclk1 | อย่าสนใจ (A หรือ B) |
Outclk2 | อย่าสนใจ (A หรือ B) |
Outclk3 | อย่าสนใจ (A หรือ B) |
Outclk4 | A |
Outclk5 | B |
- จํากัดตําแหน่ง IOPLL ตามการคอมไพล์ที่ส่งผ่าน
- ทําการเปลี่ยนแปลงการเชื่อมต่อที่จําเป็นในไฟล์ RTL
- อัปเดตไฟล์ SDC ด้วยชื่อนาฬิกาที่สั่งซื้อใหม่ (หากมี)
- คอมไพล์การออกแบบใหม่
ปัญหานี้จะได้รับการแก้ไขในการเปิดตัวซอฟต์แวร์ Quartus Prime ในอนาคต