VHDL コードを設計してテストしました。ISIM (ザイリンクス シミュレータ) を使用してコードをテストしました。ISIM にバグがあったので、modelsim SE 10c に切り替えました。xilinx ise を介して modelsim を実行すると、modelsim で次のエラーが発生します。
致命的: (vsim-3421) 値 -14 は -7 から 7 の範囲外です。
私の関連するVHDLコードは
ライブラリ IEEE;
IEEE.STD_LOGIC_1164.ALL を使用します。
IEEE.NUMERIC_STD.ALL を使用します。
ライブラリUNISIM;
UNISIM.VComponents.all を使用します。
signal img_int : 整数範囲 -7 から 7 ;
信号 add1 : 整数範囲 -7 から 7 ;
信号 add2 : 整数範囲 -7 から 7 ;
プロセス (clk)
始める
if rising_edge(clk) then
add1 <= to_integer( signed(e(0)) ) + to_integer( signed(e(1)) ) +
to_integer( signed(e(2)) ) + to_integer( signed(e(3)) );
add2 <= to_integer( signed(e(4)) ) + to_integer( signed(e(5)) ) +
to_integer( signed(e(6)) ) + to_integer( signed(e(7)) );
end if;
最終過程;
img_int <= add1 + add2;
問題の行は
img_int <= add1 + add2;
modelsim でこのエラーが発生する理由を教えてください。