質問

VHDLのビットをどのように連結しますか?次のコードを使用しようとしています:

ケースb0 <!> amp; b1 <!> amp; b2 <!> amp; b3は  ...

そしてエラーがスローされます

ありがとう

役に立ちましたか?

解決

連結演算子「<!> amp;」シグナル割り当て演算子 '<!> lt; ='の右側でのみ使用できます

他のヒント

連結演算子の例を次に示します。

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;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top