เนื่องจากปัญหาในซอฟต์แวร์ Intel® Quartus® Prime Pro Edition เวอร์ชั่น 20.4 และก่อนหน้า คุณอาจเห็นข้อความแสดงข้อผิดพลาดร้ายแรงในขั้นตอนการสังเคราะห์ เมื่อคุณมีการเรียกฟังก์ชันการทําซ้ํา VHDL ด้วยค่าระดับกลางที่ตั้งค่าเป็นค่าคงที่หรือค่าเริ่มต้นของตัวแปรที่ประกาศไว้ในฟังก์ชัน
ตัวอย่างรหัส:
ฟังก์ชัน function_2
(
RECURSION_DEPTHคงที่ : เป็นธรรมชาติ)
ผลตอบแทนตามธรรมชาติคือ
การปรับปรุงค่าคงที่ :natural := -- ตัวแปรคงที่หรือเริ่มต้น, ผลลัพธ์เดียวกัน
function_1(
RECURSION_DEPTH => RECURSION_DEPTH);
เริ่ม ต้น
การปรับปรุงคืนสินค้า;
สิ้นสุดfunction_2
หากต้องการแก้ไขปัญหานี้ แทนที่จะกําหนดค่าให้กับค่าคงที่ ให้มอบหมายให้กับตัวแปรด้วยการบ้านที่ทําไว้ในเนื้อหาของฟังก์ชัน
โปรดทราบว่าการมอบหมายค่าให้กับตัวแปรต้องทําในเนื้อความของฟังก์ชัน ซึ่งต้องไม่กระทําเป็นการกําหนดค่าเริ่มต้นในส่วนที่ประกาศของฟังก์ชัน ในขณะที่หลังส่งผลให้เกิดความผิดพลาดเช่นเดียวกับการตั้งค่าค่าคงที่
ตัว อย่าง เช่น:
ฟังก์ชัน function_2
(
RECURSION_DEPTHคงที่ : เป็นธรรมชาติ)
ผลตอบแทนตามธรรมชาติคือ
การปรับปรุงผันแปร : ธรรมชาติ;
เริ่ม ต้น
การปรับปรุง := function_1(
RECURSION_DEPTH => RECURSION_DEPTH);
การปรับปรุงคืนสินค้า;
สิ้นสุดfunction_2
ปัญหานี้แก้ไขได้ด้วยซอฟต์แวร์ Intel® Quartus® Prime Pro Edition เวอร์ชั่น 21.3