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

튜토리얼 - 조합 및 순차 코드 작성

VHDL 프로세스 또는 Verilog Always Blocks 사용

이 튜토리얼은 Process에 포함된 VHDL 또는 Verilog 블록을 작성하는 방법을 보여줍니다. 또는 항상 차단 각기. 프로세스(VHDL에서) 및 항상 차단(Verilog에서)은 기본이며 잘 이해해야 합니다. 그것들은 정확히 같은 방식으로 작동하므로 둘 다 여기에서 소개됩니다. 지금 한 언어만 배우고 있다면 해당 특정 언어에 초점을 맞춘 예제에 주의를 기울이십시오. 프로세스 또는 항상 차단은 두 가지 주요 시나리오에서 사용됩니다.

  1. 조합 블록을 정의하려면 논리
  2. 순차적 블록을 정의하려면 논리

첫 번째 시나리오는 새 학생에게 프로세스 또는 항상 차단을 소개할 때 교과서에서 흔히 볼 수 있는 시나리오입니다. 그것은 당신이 그것의 존재를 인식할 수 있도록 당신을 위해 여기에 제시됩니다. 그러나 실제로 조합 논리 블록을 정의하는 데 사용되는 프로세스/항상 블록은 순차 논리를 정의하는 데 사용되는 프로세스/항상 블록보다 "실제" 코드에서 훨씬 덜 자주 표시됩니다.

스스로에게 물어볼 수 있는 첫 번째 질문은 조합 논리와 순차 논리의 차이점이 무엇입니까? 조합(또는 조합) 논리는 작동하는 데 클록이 필요하지 않은 논리입니다. 이전에 and-gate의 예는 조합 예입니다. 순차 논리는 ​​작동하는 데 클럭이 필요한 논리입니다. 순차 논리의 가장 기본적인 구성 요소는 D 플립플롭(아래 그림)입니다.

D 플립플롭!

D Flip-Flop이 어떻게 작동하는지 모른다면 즉시 이 글을 읽지 마세요! 계속 읽기 전에 FPGA 내부에서 플립플롭이 어떻게 사용되는지 이해해야 합니다. 모든 설정? 좋습니다.

VHDL의 조합 프로세스:

process (input_1, input_2)
begin
    and_gate <= input_1 and input_2;
end process;

Verilog의 조합 항상 차단:

always @ (input_1 or input_2)
  begin
    and_gate = input_1 & input_2;
  end

위의 VHDL 및 Verilog 코드에서 input_1 및 input_2는 민감도 목록이라고 하는 항목에 있습니다. . 민감도 목록은 프로세스/항상 차단을 실행하게 하는 모든 신호의 목록입니다. 위의 예에서 input_1 또는 input_2를 변경하면 Process/Always Block이 실행됩니다. 이 프로세스/항상 블록은 두 개의 입력을 가져와서 "and" 연산을 수행하고 결과를 신호 and_gate에 저장합니다. 이것은 이 코드와 똑같은 기능입니다:

-- VHDL:
and_gate <= input_1 and input_2;
// Verilog:
assign and_gate = input_1 & input_2;

두 코드 예제 모두 and_gate 신호를 할당하는 동일한 목적을 수행합니다. 차이점은 하나는 결합된 프로세스/항상 차단에 있고 다른 하나는 그렇지 않다는 것입니다. 따라서 Process/Always Block 조합을 사용하지 않고도 동일한 결과를 얻을 수 있으므로 초보 디지털 디자이너가 이러한 구문을 사용하는 것은 권장하지 않습니다.

Process 또는 Always Block을 사용할 수 있는 두 번째 방법(그리고 훨씬 더 흥미로운 예)은 순차 논리 블록을 정의하는 것입니다. 다시 말하지만, 순차 논리는 ​​클럭되는 논리입니다.


VHDL

  1. 튜토리얼 - 조합 및 순차 코드 작성
  2. 코드로서의 인프라의 장단점
  3. 조합 논리 함수 소개
  4. 코딩이란 무엇인가 :작업, 언어 및 그 과제
  5. 통합 로직 분석기(ILA) 및 가상 입출력(VIO) 사용
  6. Java 스택 및 힙:Java 메모리 할당 자습서
  7. Python에서 CSV 파일을 읽는 방법 | CSV 파일 읽기 및 쓰기
  8. 래더 논리 102:찬반 양론
  9. 작성 절차:디지털화하여 간단하고 효율적
  10. G 코드와 M 코드의 차이점