VHDLでビットをどのように連結しますか?次のコードを使用しようとしています:
ケースb0&b1&b2&b3は...
そしてそれはエラーを投げます
ありがとう
連結演算子 '&'は、信号割り当て演算子 '<='の右側でのみ使用できます。
次に、連結演算子の例を示します。
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;
Caseステートメントで連結演算子を使用することはできません。 1つの可能な解決策は、プロセス内で変数を使用することです。
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;