私は VHDL を学習していますが、境界チェック例外を満たすために記述しようとしているコードに問題があります。
これが私の基本的な要約コードです。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_arith.all;
use IEEE.NUMERIC_STD.ALL;
use ieee.std_logic_unsigned.all;
...
port(
Address: in std_logic_vector(15 downto 0);
...
constant SIZE : integer := 4096;
variable addr: integer range 0 to SIZE-1 := 0;
...
process ...
addr := conv_integer(Address) and (SIZE-1); --error here
私が得るエラーメッセージは
src/memory.vhd:37:35: 演算子「and」の関数宣言がありません
基本的に、私の目標は 16 ビット アドレス バスを作成し、メモリを 4096 バイトだけで参照することです。この奇妙なエラーが発生するのはなぜですか? ライブラリインクルードか何かがありませんか?