VHDL(VHSIC Hardware Description Language)은 디지털 집적 회로를 모델링, 설계, 검증하는 데 사용되는 특수 컴퓨터 언어입니다. Java나 C++ 같은 범용 프로그래밍 언어와 달리, VHDL은 소프트웨어 애플리케이션 구축을 위한 것이 아니라 전자 하드웨어의 구조와 동작을 기술합니다.
VHDL은 이벤트 기반이고 병렬 실행을 지원하므로, 프로세서나 기타 디지털 로직 내부에서 발생하는 동시 연산을 포착하는 데 이상적입니다. 이로 인해 VHDL은 결국 CPU, FPGA, ASIC이 되는 로직을 지정하는 데 사용될 수 있습니다.
기본 VHDL 튜토리얼 시리즈에 액세스하세요!
위 그림을 고려해 보세요. CPU 칩 내부에는 수많은 디지털 회로(가운데)가 산술, 제어, 데이터 이동 작업을 수행합니다. 이러한 회로는 일반적으로 회로도(오른쪽)로 표현됩니다. 하지만 집적 회로를 만드는 첫 단계는 논리 회로도를 텍스트 형식으로 정의하는 것입니다. 여기에 VHDL이 등장합니다.
합성(Synthesis)
모든 게이트를 수동으로 그리는 대신, 엔지니어는 회로의 원하는 동작을 기술하기 위해 VHDL을 작성합니다. 합성 도구는 그 행동적 설명을 구체적인 넷리스트(게이트 레벨 회로 표현)로 변환합니다. 이 과정을 합성이라 하며, 추상적 설계와 물리적 구현 사이의 간극을 메웁니다.
성공적인 합성은 게이트와 상호 연결의 시각적 맵을 제공하는 회로도 편집기에서 검사할 수 있는 넷리스트를 산출합니다.
배치 및 배선(Place and Route)
넷리스트는 논리적 연결성을 정의하지만, 구성 요소가 실리콘 칩이나 FPGA 패브릭의 어디에 위치할지는 지정하지 않습니다. 배치 및 배선(PAR) 단계는 넷리스트 요소를 대상 장치의 물리적 리소스에 할당하고 그 사이의 연결을 라우팅하여 이를 해결합니다. 이는 본질적으로 PAR 도구가 자동으로 해결하는 거대한 최적화 퍼즐입니다.
성공적인 PAR 후, 결과 넷리스트에는 특정 장치에 맞춘 배치 및 라우팅 데이터가 포함됩니다. FPGA의 경우 이 넷리스트는 구성 비트스트림으로 컴파일될 수 있습니다. ASIC의 경우 넷리스트는 추가 제조 단계로 공급됩니다.
요약
VHDL은 엔지니어가 집적 회로를 위한 디지털 로직을 기술, 분석, 생성할 수 있게 하는 강력하고 특수한 프로그래밍 언어입니다. VHDL을 마스터하면 단순한 로직 게이트부터 복잡한 CPU와 고성능 FPGA까지 모든 것을 설계할 수 있습니다.