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

마스터 VHDL:FPGA 및 ASIC 설계에 대한 종합적인 소개

튜토리얼 – VHDL 소개

VHDL은 끔찍한 약어입니다. V를 의미합니다. HSIC H 하드웨어 D 설명 L 언어. 약어 안의 약어, 대단해요! VHSIC은 V를 나타냅니다. 에리 H 으아 내가 오줌을 싸다 통합된 C 회로. 따라서 확장된 VHDL은 V입니다. ery 고속 집적 회로 H 하드웨어 D 설명 L 언어. 휴, 한 입이군요. VHDL은 교육 및 비즈니스에서 FPGA 및 ASIC을 설계하는 데 사용되는 두 가지 언어 중 하나입니다. 이러한 매력적인 회로에 익숙하지 않은 경우 먼저 FPGA 및 ASIC 소개를 통해 이점을 얻을 수 있습니다. VHDL과 Verilog는 디지털 설계자가 회로를 설명하는 데 사용하는 두 가지 언어이며 C 및 Java와 같은 기존 소프트웨어 언어와는 디자인이 다릅니다.

아래 예에서는 설명하는 VHDL 파일을 생성합니다. 앤 게이트. 복습하자면, 간단한 And Gate에는 2개의 입력과 1개의 출력이 있습니다. 두 입력이 모두 1일 때만 출력이 1이 됩니다. 아래는 VHDL로 설명할 And Gate의 그림입니다.

앤 게이트

시작해 봅시다! VHDL의 기본 단위는 신호라고 합니다. . 지금은 신호가 0 또는 1일 수 있다고 가정해 보겠습니다(실제로 다른 가능성이 있지만 그에 대해 알아보겠습니다). 다음은 몇 가지 기본 VHDL 논리입니다.

signal and_gate : std_logic;
and_gate <= input_1 and input_2;

코드의 첫 번째 줄은 std_logic 유형의 신호를 정의하며 이를 and_gate라고 합니다. Std_logic은 신호를 정의하는 데 가장 일반적으로 사용되는 유형이지만, 배우게 될 다른 유형도 있습니다. 이 코드는 단일 출력(and_gate)과 2개의 입력(input_1 및 input_2)이 있는 AND 게이트를 생성합니다. 키워드 "and"는 VHDL에 예약되어 있습니다. <=연산자는 할당 연산자로 알려져 있습니다. 위의 코드를 구두로 구문 분석할 때 "신호 and_gate GETS input_1 and-ed with input_2"라고 큰 소리로 말할 수 있습니다.

이제 input_1과 input_2가 어디서 왔는지 스스로에게 물어볼 수 있습니다. 이름에서 알 수 있듯이 이 파일에 대한 입력이므로 도구에 이에 대해 알려주어야 합니다. 파일에 대한 입력과 출력은 엔티티에 정의됩니다. . 엔터티에는 파일에 대한 모든 입력과 출력을 정의하는 포트가 포함되어 있습니다. 간단한 엔터티를 만들어 보겠습니다:

entity example_and is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic
 );
end example_and;

이것이 귀하의 기본 엔터티입니다. 이는 example_and라는 엔터티와 3개의 신호, 2개의 입력 및 1개의 출력을 정의하며 모두 std_logic 유형입니다. 이를 완료하려면 또 다른 VHDL 키워드가 필요하며 이는 아키텍처입니다. . 아키텍처는 특정 엔터티의 기능을 설명하는 데 사용됩니다. 논문이라고 생각하면 됩니다. 엔터티는 목차이고 아키텍처는 내용입니다. 이 엔터티에 대한 아키텍처를 만들어 보겠습니다:

architecture rtl of example_and is 
 signal and_gate : std_logic;
begin
 and_gate <= input_1 and input_2;
 and_result <= and_gate;
end rtl;

위 코드는 example_and 엔터티의 rtl이라는 아키텍처를 정의합니다. 아키텍처에서 사용되는 모든 신호는 "is"와 "begin" 키워드 사이에 정의되어야 합니다. 실제 아키텍처 논리는 "begin"과 "end" 키워드 사이에 있습니다. 이 파일 작업이 거의 완료되었습니다. 도구에 알려주어야 할 마지막 사항은 사용할 라이브러리입니다. 라이브러리는 특정 키워드가 파일에서 작동하는 방식을 정의합니다. 지금은 파일 상단에 다음 두 줄이 있어야 한다는 점을 당연하게 생각하세요:

library ieee;
use ieee.std_logic_1164.all;

축하합니다! 첫 번째 VHDL 파일을 만들었습니다. 여기에서 완성된 파일을 볼 수 있습니다:

library ieee;
use ieee.std_logic_1164.all;
entity example_and is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic
 );
end example_and;
architecture rtl of example_and is
 signal and_gate : std_logic;
begin
 and_gate <= input_1 and input_2;
 and_result <= and_gate;
end rtl;

멍청이와 게이트를 만들기 위해 많은 코드를 작성해야 했던 것 같나요? 우선, 게이트는 바보가 아닙니다. 둘째, 당신 말이 맞습니다. VHDL은 매우 장황한 언어입니다. 소프트웨어에서 아주 쉬운 일을 Verilog나 VHDL과 같은 HDL에서는 훨씬 더 오랜 시간이 걸린다는 사실에 익숙해지세요. 하지만 소프트웨어 전문가에게 Conway의 Game of Life를 표시하는 VGA 모니터에 이미지를 생성하도록 요청하고 놀라서 머리가 회전하는 것을 지켜보세요! 그런데 해당 영상은 VHDL과 FPGA로 제작되었습니다. 곧 그렇게 하실 수 있을 것입니다!

다음으로 또 다른 기본 VHDL 키워드인 프로세스에 대해 논의하겠습니다.


VHDL

  1. 튜토리얼 - 조합 및 순차 코드 작성
  2. VHDL에서 프로시저를 사용하는 방법
  3. 기본 VHDL 퀴즈 – 파트 1
  4. 기본 VHDL 퀴즈 – 파트 2
  5. FPGA 핀에서 PWM을 사용하는 RC 서보 컨트롤러
  6. VHDL에서 난수를 생성하는 방법
  7. Tcl을 사용한 대화형 테스트벤치
  8. VUnit 시작하기
  9. VHDL에서 민감도 목록을 사용하여 프로세스를 만드는 방법
  10. VHDL에서 서명된 것과 서명되지 않은 것