Não tenho certeza de como esse operador funciona.
Por exemplo, se eu tivesse:
signal vector_a : std_logic_vector(4 downto 0) :=(others => '0');
vector_a <= vector_a(3 downto 0) & '1';
O resultado seria "0 0 0 0 1"
ou "1 0 0 0 0"
?
No caso de usar 3 to 0
em vez de 3 downto 0
, o resultado mudaria?
"&"
é o operador concatenar e concatena itens da esquerda para a direita.Então, no seu exemplo, o resultado
vector_a
seria0 0 0 0 1
Usar um intervalo diferente não faria diferença, o resultado ainda seria
0 0 0 0 1
quando impresso da esquerda para a direita. Mas isso afetaria os valores indexados.