我有四个std_logic_vectors(15 downto 0)并希望将它们堆叠成一个std_logic_vector(63 downt 0)所以我已经找到了一种方法,但它是正确的方式还是有更优化和正确的方法来做到这一点?
signal slv16_1,slv16_2,slv16_3,slv16_4 : std_logic_vector(15 downto 0);
signal slv64 : std_logic_vector(63 downto 0);
slv64(15 downto 0) <= slv16_1;
slv64(31 downto 16) <= slv16_2;
slv64(47 downto 32) <= slv16_3;
slv64(63 downto 48) <= slv16_4;
Run Code Online (Sandbox Code Playgroud)
Rus*_*ell 12
一种简单的方法是使用连接运算符&.它实现了与上面相同的功能,但需要的代码更少.
slv64 <= slv16_4 & slv16_3 & slv16_2 & slv16_1;
Run Code Online (Sandbox Code Playgroud)