0

VHDLは初めてです。私の問題は、std_logic_vector の配列から書き込みまたは読み取りを行うための正しい構文が見つからないように見えることです。私はそのように配列を初期化します:

 TYPE eleven_samples_in IS ARRAY ( 0 TO 10 ) OF STD_LOGIC_VECTOR( 87 DOWNTO 0 );

そして、私はそれをそのように対処しようとします:

odd: for i in 1 to 6 generate
   node: compare_level
       port map(
                input  => eleven_samples_in(i*2 - 1)(79 DOWNTO 0),
                output  => eleven_samples_out(i*2 - 1)(79 DOWNTO 0 )
               );
end generate odd;

または :

 port map(
           input  => eleven_samples_in(i*2 - 1,79 DOWNTO 0),
           output  => eleven_samples_out(i*2 - 1,79 DOWNTO 0 )
         );
 end generate odd;

しかし、次のようなエラーが発生します。

エラー (10409): Median_Filter.vhd(45) での VHDL 型変換エラー: テキストまたはシンボルに近いオブジェクトの変換された型 "eleven_samples_in" は、ターゲット オブジェクトの std_logic_vector 型と一致する必要があります

私はウェブを検索しましたが、うまくいくものは何も見つかりませんでした。

助けてくれてどうもありがとう。

4

1 に答える 1

2

タイプ eleven_samples_in を作成し、それを直接使用します。これは正しくありません。

その代わり:

type eleven_samples_in_type is array (0 to 11) of std_logic_vector(89 downto 0);
signal eleven_samples_in : eleven_samples_in_type;

...

あなたのcompare_levelsコンポーネントについて何も知らなくても、それは私ができる限りの助けになります

于 2013-06-16T21:25:27.623 に答える