산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> VHDL

VHDL에서 동시 문을 만드는 방법

VHDL의 동시 명령문은 아키텍처 내에서 신호 할당이지만 정상적인 프로세스 구성 외부에 있습니다. 동시 명령문은 동시 할당 또는 동시 프로세스라고도 합니다.

동시 명령문을 생성할 때 실제로는 명확하게 정의된 특정 특성을 가진 프로세스가 생성됩니다. 동시 명령문은 항상 민감도 목록을 사용하는 프로세스와 동일하며, 여기서 신호 할당 연산자의 오른쪽에 있는 모든 신호는 민감도 목록에 있습니다.

이러한 속기 표기법 프로세스는 단일 신호를 할당하는 간단한 논리를 생성하려는 경우에 유용합니다. 민감도 목록과 그 모든 것이 포함된 전체 프로세스 구성을 입력하는 대신 아키텍처에서 직접 대상 신호에 간단히 할당할 수 있습니다.

이 블로그 게시물은 기본 VHDL 자습서 시리즈의 일부입니다.

올바르게 사용하면 코드의 의도가 여전히 명확합니다. 뒤집고자 하는 모든 비트에 대해 프로세스를 생성할 필요가 없습니다.

운동

이 비디오에서는 동시 명령문을 만드는 방법을 배웁니다.

이 튜토리얼에서 만든 최종 코드:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity T13_ConcurrentProcsTb is
end entity;

architecture sim of T13_ConcurrentProcsTb is

    signal Uns :  unsigned(5 downto 0) := (others => '0');
    signal Mul1 : unsigned(7 downto 0);
    signal Mul2 : unsigned(7 downto 0);
    signal Mul3 : unsigned(7 downto 0);

begin

    process is
    begin

        Uns <= Uns + 1;

        wait for 10 ns;
    end process;

    -- Process multiplying Uns by 4
    process is
    begin

        Mul1 <= Uns & "00";

        wait on Uns;

    end process;

    -- Equivalent process using sensitivity list
    process(Uns) is
    begin

        Mul2 <= Uns & "00";

    end process;

    -- Equivalent process using a concurrent statement
    Mul3 <= Uns & "00";

end architecture;

실행을 누르고 타임라인을 확대한 후 ModelSim의 파형 창:

분석

파형에서 Mul1 , Mul2 , 및 Mul3 똑같이 행동하십시오. 이는 동시성 문과 우리가 만든 두 프로세스가 동일하기 때문입니다.

동시성 문은 프로세스처럼 작동합니다. <= 오른쪽의 모든 신호 민감도 목록에 자동으로 추가됩니다. 이것은 <=의 왼쪽에 있는 신호를 의미합니다. 평가된 신호 중 하나가 변경될 때마다 업데이트됩니다.

VHDL에서 숫자를 곱하는 방법에는 여러 가지가 있습니다. 이 연습에서는 Uns를 곱했습니다. 비트 시프팅을 사용하여 4만큼 신호를 보냅니다. 모든 신호는 unsigned입니다. 유형, 즉 숫자로 해석됩니다. 이진수 오른쪽에 0을 붙이면 2를 곱한 것과 같다.

다음은 파형의 커서에서 일어나는 일을 보여줍니다.

테이크아웃

다음 튜토리얼로 이동 »


VHDL

  1. 절차문 - VHDL 예
  2. VHDL에서 문자열 목록을 만드는 방법
  3. VHDL 코드 잠금 모듈을 위한 Tcl 기반 테스트벤치를 만드는 방법
  4. VHDL 테스트벤치에서 시뮬레이션을 중지하는 방법
  5. VHDL에서 PWM 컨트롤러를 만드는 방법
  6. VHDL에서 링 버퍼 FIFO를 만드는 방법
  7. 자가 점검 테스트벤치를 만드는 방법
  8. VHDL에서 연결 목록을 만드는 방법
  9. VHDL의 프로세스에서 프로시저를 사용하는 방법
  10. VHDL에서 함수를 사용하는 방법