[VHDL] 00 Intro
“Während ich studiere, schreibe ich hier kurze Zusammenfassungen für eine längere Erinnerung.”
이전부터 정리해야지 했던건데.. 이제서야 손을 대본다. 공부한 지 시간이 좀 되었기 때문에 시간이 좀 걸릴지도..
VHDL이 뭐야?
VHDL(VHSIC Hardware Description Language)
은 디지털 회로 및 혼합 신호(mixed-signal, 아날로그 신호 포함)를 표현하는하드웨어 기술 언어
이다. FPGA나 집적회로 등의 전자공학 회로를 처리하는 설계 자동화에 사용한다.
주로 디지털 회로 설계에 사용된다. 기존의 심볼에 의한 회로도 작성 대신 언어적 형태로 전자회로의 기능을 표현한다.
VHDL로 표현된 회로는, 실제 동작하는 기능적 소자로 변환하는 합성(synthesis) 과정을 거치면 동작할 수 있는 회로가 완성된다.출처: 위키백과
VHSIC: Very High Speed Integrated Circuit VHDL(VHSIC Hardware Description Language)
위키백과나 관련 PDF자료를 보면 vhdl에 대한 역사 등 더 자세한 내용도 있다.
(이론적인 부분은 정리되면 여기에 추가 기술하겠다.)
요컨대 vhdl은 하드웨어 기술언어이고 이것으로 디지털 회로 설계를 한다는 것.
일단은 아래에서 간단한 예제를 함께 보면서 차차 알아가자.
VHDL코딩의 구조
NOT-Gatter
1
2
3
4
5
6
7
8
9
10
11
12
library ieee ;
use ieee . std_logic_1164 . all ;
entity not1 is
port (i : in std_logic ;
o : out std_logic );
end not1 ;
architecture behavioral of not1 is
begin
o <= not i;
end behavioral ;
(코드블록에 vhdl파일에 대한 하이라이트가 제공되지 않아 아쉽다..)
위의 코드는 not게이트(not-gatter)를 보여주는 예제이다. 일반적으로 하는 c언어 프로그래밍처럼 시작부분에 해당 라이브러리를 명시한다. 그 후에 entity와 architecture 두부분으로 나누어 코딩한다.
01 Entity
entity부분은 쉽게 생각하면 껍데기를 만드는 것이다.
해당 부분에 들어오는 신호(input)이 무엇이고 몇개인지 반대로 나가는 신호(output)은 무엇이고 몇개인지를 표현한다고 생각하면 된다.
예제의 entity부분만 보면 아래와 같다.
1
2
3
4
entity not1 is
port (i : in std_logic ;
o : out std_logic );
end not1 ;
코드만 보고 읽는다면,
not1이라는 이름을 가진 논리회로(여기서는 게이트)의 껍데기는 input신호 i를 받고 output신호 o로 내보낸다.
라고 해석할 수 있다.
02 Architecture
entity에서 껍데기를 만들었으니 architecture에서는 내부에서 어떻게 신호를 처리하는지를 표현하면 된다. architecture부분만 떼서 보면 아래와 같다
1
2
3
4
architecture behavioral of not1 is
begin
o <= not i;
end behavioral ;
역시 코드만 보고 읽는다면,
not1이라는 이름을 가진 논리회로(여기서는 게이트)의 내부는 output인 o에 input의 not값을 보낸다.
라고 해석 할 수 있다.
추가로 아래에 OR-gate(OR-Gatter)를 보고 앞의 내용을 상기 해보자.
OR-Gatter
1
2
3
4
5
6
7
8
9
10
11
12
13
library ieee ;
use ieee . std_logic_1164 . all ;
entity or2 is
port (a : in std_logic ;
b : in std_logic ;
y : out std_logic );
end or2 ;
architecture behavioral of or2 is
begin
y <= a or b;
end behavioral ;
Quelle: TU-Berlin
Leave a comment