Я разделил 16-битный STD_LOGIC_VECTOR на 3 части. Я хочу оставить первые 8 старших разрядов нетронутыми и разбить 8 младших разрядов на две части, чтобы немного поработать над ними.
Я могу сделать все это, и обработка все в порядке, но когда я пытаюсь собрать их все вместе в 16-битный вывод STD_LOGIC_VECTOR, он просто остается UUUU. Есть ли какой-то особый путь, чтобы собрать его обратно?
signal fullout : std_logic_vector(15 downto 0);
signal Sbox1 : integer;
signal Sbox2 : integer;
signal tophalf : std_logic_vector(7 downto 0);
signal secondnibble, firstnibble : std_logic_vector(3 downto 0); --break the LSH into 2 nibbles
begin
tophalf(7 downto 0) <= LUTin(15 downto 8);
secondnibble(3 downto 0) <= LUTin(7 downto 4);
-- Sbox1 <= to_integer(unsigned(secondnibble));
firstnibble(3 downto 0) <= LUTin(3 downto 0);
-- Sbox2 <= to_integer(unsigned(firstnibble));
p1: process(LUTin)
begin
fullout(15 downto 8) <= tophalf(7 downto 0);
fullout(7 downto 4) <= secondnibble(3 downto 0);
fullout(3 downto 0) <= firstnibble(3 downto 0);