문제

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 명령문과 함께 연결 연산자를 사용할 수 없습니다. 가능한 한 가지 해결책은 프로세스 내에서 변수를 사용하는 것입니다.

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