W jaki sposób łączysz bity w VHDL? Próbuję użyć następującego kodu:Bity łączące w języku VHDL
Case b0 & b1 & b2 & b3 jest ...
i zgłasza błąd
Dzięki
W jaki sposób łączysz bity w VHDL? Próbuję użyć następującego kodu:Bity łączące w języku VHDL
Case b0 & b1 & b2 & b3 jest ...
i zgłasza błąd
Dzięki
Operator konkatenacji "& "jest dozwolone po prawej stronie operatora przypisania sygnału" < = ", tylko
Tutaj jest przykład operatora konkatenacji:
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;
Nie można używać operatora konkatenacji z opisem sprawy. Jednym z możliwych rozwiązań jest użycie zmiennej w procesie:
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;
Działa dla zmiennych przypisania ': =' również .. zobacz inne odpowiedzi –