Do có vấn đề trong phần mềm Quartus® II, bạn sẽ nhận được lỗi trên khi mô phỏng sự khởi động VHDL của altera_mult_add megafunction.
Để giải quyết vấn đề này, bạn phải sửa đổi tệp .vhd cho biến thể bạn đã tạo.
Đầu tiên, lưu ý chiều rộng bit của datab_0, ví dụ như sau sử dụng giao thức rộng 17 bit datab_0:
datab_0: trong std_logic_vector(16 downto 0) := (others => \'0\'); -- datab_0.datab_0
Thứ hai, sửa đổi tham số "width_b" để khớp với độ rộng bạn tìm thấy ở trên. Tham số này sẽ xuất hiện ở nhiều nơi và bạn phải sửa đổi tất cả các sự cố:
cấu phần altera_mult_add là
chung ( chung
number_of_multipliers: số nguyên := 1;
width_a: số nguyên := 16;
width_b: số nguyên := 17;
< xuất sắc>: Thành phần altera_mult_add
bản đồ chung (
number_of_multipliers => 1,
width_a => 16,
width_b => 17,-- Thông tin truy xuất:
Thứ ba, bạn phải sửa đổi giá trị đầu vào của scaninb trong khai báo thành phần:
bản đồ cổng (
result => quả của bạn, -- result.result
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 => đồng hồ0, -- clock0.clk
scaninb => "000000000000000000", -- (đã chấm dứt)
Sự cố này đã được khắc phục trong phần mềm Quartus-II phiên bản 13.1