안녕하세요. 저는 VHDL을 좋아하고 취업을 준비하는 사람입니다. 전자공학과를 다니는 사람도 VHDL이 생소하게 느껴지는 사람이 많은 것입니다. 지금은 교재가 어느 정도 출판되어 있지만 아직도 잘된 책이라고 느끼는 것은 극히 작습니다. 그래서 지금부터 제가 알고 있는 한도에서 강의를 한번 시작해 볼까합니다. 서론을 싫어하는 저지만 서론이 조금 길다고 느껴지네요.

VHDL이 무엇이냐?

조금 방대한 질문이네요. 일단 예제로 시작합시다. 이것을 이해하기 위해서는 Backgroud가 어느 정도 필요합니다. 전자과 3년 과정을 마쳤다면 충분히 이해할 수 있다고 생각되네요.

참고로 제가 사용하는 Tool은 Max Plus Ⅱ입니다.

그럼 2비트 반가산기(Adder)를 설계합시다.

[eqn: S``&= `x`` BIGOPLUS``y #C``&= `xy]

두 개의 입력 x, y를 입력받아 Sum, Carry를 출력합니다.

이것을 먼저 Schmetic으로 구현한다고 생각합시다.

이런식으로 설계하면 되겠지요.

그럼 이것을 VHDL로 구현해 볼까요.

-- adder2.vhd

library ieee;

use ieee.std_logic_1164.all;

entity adder2 is

port ( x, y : in std_logic;

s, c  : out std_logic);

architecture rtl of 2adder is

begin

s <= x xor y;

c <= x and y;

end rtl;

조금 Laguage 비슷하지요. VHDL을 회로 설계하는 언어라고 생각하면 됩니다.

다른 2×1 Mux 예제를 봅시다.

이것을 한 번 구현해 봅시다.

이것을 VHDL로 구현해 봅시다.

-- mux21.vhd

library ieee;

use ieee.std_logic_1164.all;

entity mux21 is

port ( a, b, s : in std_logic;

y    : out std_logic);

end mux21;

architecture rtl of mux21 is

begin

process(a, b, s)

begin

if ( s = '0') then

y <= a;

else

y <= b;

end if;

end process;

end rtl;

구현하는 것이 별로 어렵지는 않을 것입니다. 초보자에게는 어렵겠지만.

VHDL의 장점을 느끼지 못할 것입니다. 예제를 조금 변형해 봅시다.

입력 a, b가 4비트의 입력이라면 오떻습니까?  K-map을 이용해 열심히 그려야지요.

과연 VHDL로는 어떻게 표현할 수 있을까요?

입력과 출력의 비트수만 변형시키면 됩니다.

library ieee;

use ieee.std_logic_1164.all;

entity mux21 is

port ( a, b    : in std_logic_vector(3 downto 0);

s    : in std_logic;

y    : out std_logic_vector(3 downto 0));

end mux21;

architecture rtl of mux21 is

begin

process(a, b, s)

begin

if ( s = '0') then

y <= a;

else

y <= b;

end if;

end process;

end rtl;

이것이 VHDL의 장점입니다. VHDL을 이렇게 보시면 됩니다. 회로 설계를 할 수 있는 표준 언어다. 모든 것은 장점과 단점을 가지고 있습니다. 단점에 비해 많은 장점을 가지고 있습니다. Schemetic으로 구현할 수 있는 회로는 약 5만 게이트 정도입니다. 손으로 직접 그리는 것보다는 VHDL을 이용해 시간과 비용을 줄이는 것이 좋겠지요.

외국 검색 사이트(야후 또는 알타비스타 등등)를 이용해 VHDL을 입력해서 한번 찾아보세요. 얼마나 많은 사이트가 존재하는지. 국내 사이트도 많이 존재하고 있습니다.

새로운 것을 배운다는 것은 힘들지만, 시간이 있는 전자과 3, 4학년에게는 적극 권하고 싶네요. 현실적으로도 펜티엄 칩도 이 VHDL을 이용해 설계하고 있습니다. 고급의 반도체 설계나 회로 설계를 원한다면 제 강의가 아니라도 다른 책을 이용해 한번 시도해 보시기를 바랍니다.

오늘은 개략적인 강의를 했지만 다음 시간에는 VHDL의 개요에 대해서 알아보기로 하겠습니다.