Devido a um problema no software Quartus® II, você receberá o erro acima ao simular uma instantação vhdl de altera_mult_add Megafunção.
Para resolver este problema, você deve modificar o arquivo .vhd para a variante que você criou.
Primeiro, note a largura de bits da datab_0, por exemplo, o seguinte usa uma datab_0 de 17 bits:
datab_0: em std_logic_vector(16 downto 0) := (outros => \'0\'); -- datab_0.datab_0
Em segundo lugar, modifique o parâmetro "width_b" para corresponder à largura que você encontrou acima. Este parâmetro aparecerá em vários lugares e você deve modificar todas as ocorrências:
componente altera_mult_add é
genérico (
number_of_multipliers: inteiro := 1;
width_a: inteiro := 16;
width_b: inteiro := 17;
< de instance>: componente altera_mult_add
mapa genérico (
number_of_multipliers => 1,
width_a => 16,
width_b => 17,-- Informações de recuperação: nome
Em terceiro lugar, você deve modificar o valor de entrada da scaninb na declaração do componente:
mapa de porta (
resultado =>, -- resultado.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 => clock0, - clock0.clk
scaninb => "0000000000000", -- (encerrado)
Este problema é corrigido no software Quartus-II versão 13.1