Syntax 如何";切片;VHDL中的标准逻辑向量?

Syntax 如何";切片;VHDL中的标准逻辑向量?,syntax,vhdl,Syntax,Vhdl,我正在用VHDL开发一个小东西,对它很陌生。我很难弄清楚如何将一个更大的std_逻辑_向量分割成一个更小的 例如,我有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到8分配给secondpart,将位7到0分配给fi

我正在用VHDL开发一个小东西,对它很陌生。我很难弄清楚如何将一个更大的std_逻辑_向量分割成一个更小的

例如,我有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到8分配给
secondpart
,将位7到0分配给
firstpart
。在不分配单个位的情况下,如何准确地“切片”这样的向量

您可以直接分配它们:

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

啊。我越来越多地看到VHDL是一种非常一致的语言。另外,别名解决方案更干净,因此我将使用它,注意例如
std\u logic\u vector([some expression])(15到8)
将不起作用。有关此语法适用时的更多详细信息,请参阅。
alias firstpart is allparts(15 downto 8);
alias secondpart is allparts(7 downto 0);