เนื่องจากปัญหาในซอฟต์แวร์ Quartus® II คุณจะได้รับข้อผิดพลาดข้างต้นเมื่อจําลองการสร้างอินสแตนซ์ VHDL ของaltera_mult_addเมกะการทํางาน
การแก้ไขปัญหานี้ คุณต้องแก้ไขไฟล์ .vhd สําหรับตัวแปรที่คุณสร้าง
ประการแรก ให้สังเกตความกว้างบิตของdatab_0 เช่น สิ่งต่อไปนี้ใช้datab_0แบบกว้าง 17 บิต:
datab_0 : ใน std_logic_vector(16 downto 0) := (คนอื่นๆ => \'0\'); -- datab_0.datab_0
ประการที่สอง ให้ปรับเปลี่ยนพารามิเตอร์ "width_b" เพื่อให้ตรงกับความกว้างที่คุณพบด้านบน พารามิเตอร์นี้จะปรากฏในหลายจุดและคุณต้องปรับเปลี่ยนการเกิดขึ้นทั้งหมด:
altera_mult_addส่วนประกอบคือ
ทั่วไป (
number_of_multipliers : จํานวนเต็ม := 1;
width_a : จํานวนเต็ม := 16;
width_b : จํานวนเต็ม := 17;
ชื่อ : altera_mult_addส่วนประกอบ
แผนที่ทั่วไป (
number_of_multipliers => 1
width_a => 16
width_b => 17-- ข้อมูลการเรียกข้อมูล:
ประการที่สาม คุณต้องปรับเปลี่ยนค่าอินพุตของ scaninb ในการประกาศส่วนประกอบ:
แผนผังพอร์ต (
ผลลัพธ์ =ผลลัพธ์>, -- ผลลัพธ์
dataa(15 downto 0) => dataa_0(15 downto 0), -- dataa_0.dataa_0
datab(15 downto 0) => datab_0(15 downto 0), -- datab_0.datab_0
clock0 => clock0, -- clock0.clk
scaninb => "00000000000000000" -- (ยกเลิก)
ปัญหานี้ได้รับการแก้ไขในซอฟต์แวร์ Quartus-II เวอร์ชั่น 13.1