0

次のように TOP ファイルで行列とシグナルを宣言しました。

type scanImage is array (0 to 7,0 to 7) of std_logic_vector(2 downto 0);
signal image_matrix : scanImage;

さて、上記の信号を、マトリックス内の「000」ではないセルの数を計算する関数に送信したいと思います。

私のパッケージは次のようになります。


library IEEE;
use IEEE.std_logic_1164.all;
 use IEEE.std_logic_unsigned.all;
 use IEEE.std_logic_arith.all;
use IEEE.NUMERIC_STD.ALL;
 USE IEEE.NUMERIC_BIT.ALL;


PACKAGE my_pack IS

type double_array is array (0 to 7,0 to 7) of std_logic_vector(2 downto 0);

--------------------square calculation declaration--------------------------
 function square_calculation(matrix : double_array) return integer;


 ---------------------------------------------------------------------
 function square_calculation(matrix : double_array) return integer IS
 variable tmp: integer range 0 to 64;
 begin
  tmp:=0;
  for i in 0 to 7 loop

            for j in 0 to 7 loop
                if matrix(i,j)/="000" then
                    tmp:=tmp+1;
                end if;
            end loop;

end loop;
return tmp;

end function square_calculation;


 END my_pack;

コンパイル後、次のエラーが表示されます: エラー (10476): Vision_ctrl.vhd(112) での VHDL エラー: タイプの識別子 "image_matrix" は、"double_array" タイプとしての使用法に同意しません

私を助けてくれてありがとう。

4

1 に答える 1