21

我正在用 VHDL 开发一个小东西,而且对它很陌生。我无法弄清楚如何将较大的 std_logic_vector 切成较小的。

例如,我有 3 个信号:

signal allparts: std_logic_vector(15 downto 0);
signal firstpart: std_logic_vector(7 downto 0);
signal secondpart: std_logic_vector(7 downto 0);

基本上,我想要的是将 15 到 8secondpart位和 7 到 0 位分配给firstpart. 在不分配单个位的情况下,我将如何“切片”这样的向量

4

1 回答 1

34

您可以直接分配它们:

firstpart <= allparts(15 downto 8);
secondpart <= allparts(7 downto 0);

...或者如果 firstpart 和 secondpart 只是引用部分 allparts 信号的替代方式,您可能需要使用别名:

alias firstpart is allparts(15 downto 8);
alias secondpart is allparts(7 downto 0);
于 2012-04-29T22:05:56.540 回答