Кажется, вы хотите поместить два (или более) сигнала в один сигнал (или порт).
Для этого нужно не объединить сигналы, а поместить ихв записи.Преимущество заключается в том, что семантика ( означает ) каждой части сигнала четко выражена.Таким образом, вам не нужно кодировать (и позже декодировать) каждый элемент данных.
type state_type is (s0, s1, s2, s3);
signal state : state_type;
signal data : std_logic_vector(3 downto 0);
type data_plus_state_type is record
data : std_logic_vector(3 downto 0);
state: state_type;
end record data_plus_state_type;
signal data_plus_state : data_plus_state_type;
Затем вы можете поместить два сигнала в один сигнал записи:
data_plus_state <= (data, state);
-- or:
data_plus_state.data <= data;
data_plus_state.state <= state;