2008-10-16 8 views

Répondre

20

L'opérateur de concaténation '& 'est autorisé du côté droit de l'opérateur d'assignation de signaux' < = ', seulement

+2

Il fonctionne pour les affectations de variables ':' = .. et voir d'autres réponses –

8

Voici un exemple de l'opérateur de concaténation:

architecture EXAMPLE of CONCATENATION is 
    signal Z_BUS : bit_vector (3 downto 0); 
    signal A_BIT, B_BIT, C_BIT, D_BIT : bit; 
begin 
    Z_BUS <= A_BIT & B_BIT & C_BIT & D_BIT; 
end EXAMPLE; 
6

Vous n'êtes pas autorisé à utiliser l'opérateur de concaténation avec la déclaration de cas. Une solution possible est d'utiliser une variable dans le processus:

process(b0,b1,b2,b3) 
    variable bcat : std_logic_vector(0 to 3); 
begin 
    bcat := b0 & b1 & b2 & b3; 
    case bcat is 
     when "0000" => x <= 1; 
     when others => x <= 2; 
    end case; 
end process; 
Questions connexes