VHDL范围分配

时间:2016-03-25 09:34:01

标签: range vhdl

有人可以解释一下我之间的区别:

grant_o(1 downto 1) <= grant_s(1);

grant_o(1) <= grant_s(1);

第一个没有通过综合工具。

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的范围。