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 类型转换错误:文本或符号“11_samples_in”附近对象的转换类型必须匹配目标对象的 std_logic_vector 类型

我在网上搜索并没有发现任何有用的东西。

非常感谢你的帮助 。

4

1 回答 1

2

你创建一个类型 11_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 回答