有人可以解释一下我之间的区别:
grant_o(1 downto 1) <= grant_s(1);
和
grant_o(1) <= grant_s(1);
第一个没有通过综合工具。
答案 0 :(得分:3)
语法mySignal(index)
访问数组的单个元素。所以表达式的值是元素类型。
语法mySignal(index1 downto index2)
访问数组中的一系列元素。因此表达式的值具有相同的数组类型,但具有更改的范围约束。
如果您使用grant_o(1 downto 1) <= grant_s(1 downto 1);
,那么您的第一个示例就可以使用。
或者
grant_o(1 downto 1) <= (others => grant_s(1));
两个变体在右侧创建一个数组,因此可以将其分配到左侧。您的示例使用长度为1的范围。