我是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中的VHDL类型转换错误(45):文本或符号“eleven_samples_in”附近转换的对象类型必须与目标对象的std_logic_vector类型匹配
我搜索了网络,发现没有任何效果。
非常感谢你的帮助。
答案 0 :(得分: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组件的情况下,这就像我可以帮助
一样