티스토리 뷰
VHDL이란 무엇인가?
VHDL(VHSIC Hardware Description Languate)이란 1980년대 초부 터 미국방성에 사용하기 시작한 새로운 HDL이다.
VHDL의 첫 약자 "V"는 VHSIC인데 이는 Very High Speed Integrated Circuit를 나타내는 말로써, 고 속의 IC Chip을 만들려는 미 국방성의 첨단계획으 로 VHDL은 바로 이 계획에 사용되는 기본 HDL인 것이다.
또한 미 국방성은 매년 많은 양의 전자장치를 구매하는데 해마다 달 라지는 전자기술 때문에 구매하는 전자장치의 효율적인 관리와 운용에 애를 먹고 있었다. 이러한 이유로 미국방성은 변화되는 기술에 관계없이 항상 오랫동안 사용할 수 있는 Universal한 HDL을 찾고 있었으며, VHDL이 그러한 가능성을 갖고 있다고 생각하였 다.
미 국방성의 첨단 반도체 제조계획과 함께 시작된 VHDL은 VHDL이 갖는 여러 진보된 특성과 여러 HDL들이 난립하는 중에서 표준되는 것이 있어야 되겠다는 전자업계의 의견이 일치하여 마침내 표준 HDL로 등장하게 되었다.
미 국방성뿐아니라 IEEE가 공식적으로 표준 HDL로 정하고 미국내 대부분의 EDA(Electronic Design Automation)회사들이 VHDL을 지지하고 나섬에 따라 많 은 전자업계들이 사용하게 되었다. 사실 초기에 미국방성은 VHDL을 Documentation용으로 만 표준화하려 했으나 대부분의 EDA회사들이 VHDL을 회로합성이라는 Logic Synthesis로 까지 응용하면서 이 H/W기술언어는 전자업계 기술자들에게 많은 편리함을 가져다 주게 된 다.
VHDL의 발전 역사
VHDL이 발전하는데 중요했던 사항들은 다음과 같다.
▷ 미 국방성은 1970년 초부터 싹튼 VHSIC 계획동안 그들이 구입하 는 전자장비의 효율적인 관리를 위하여 기술이나 Design의 변화에 관계없는 강력한 HDL을 찾아오고 있었다.
▷ 1983년 7월 Intermetrics, IBM, TI의 합동개발팀은 정부로부터 공 식적으로 VHDL을 개발할 것을 허락받았다.
▷이 개발팀은 VHDL Version 7.2를 1987년 2월에 완성했 다.
▷ IEEE는 1986년 3월에 자체에 VHDL Analysis and Standardization Group(VASG)을 형성하여 VHDL을 연구, 발전시키도록 했다.
▷ IEEE는 1987년에 "IEEE Standard_1076_1987"을 만들어 미 국방성의 인정을 받고 각 EDA 회사들의 지지를 받으면서 표준 VHDL을 내놓게 된다. IEEE는 또한 Language Reference Manual(LRM)을 발간하여 이 VHDL의 사용을 적극 장 려하고 있다.
▷ 1992년에 IEEE는 다시 "IEEE std_1164_1992"를 내놓는데 이것은 Std_1076판의 수정, 발간본이다. IEEE는 매 5년단위로 수정 VHDL판을 내놓을 예정이 다.
VHDL의 장점
VHDL이 갖고 있는 장점을 열거하면 다음과 같다.
▷ VHDL은 매우 넓은 범위의 Design을 가능하게 해 준다. 이범위는 위로는 System Level의 행위적 기술(Behavioral Description)로부터 밑으로 Gate Level까지 포함된다. 즉, VHDL을 이용하여 Behavioral 기술, RTL(Register Transfer Level) 기술 및 Gate Level의 기술을 할 수 있다.
▷ VHDL은 특정 Simulator, Technology, Manufacturing 및 Process 와 부관하다. 이는 VHDL이 여러 가지의 서로 다른 Simulator, Technology나 Favrication Process로 구현될 수 있다는 뜻이다. VHDL 사용자는 얼마든지 다른 Technology를 선택하 여 자기의 Design을 구현할 수 있다.
▷ VHDL은 미국 정부나 IEEE, 그리고 대부분의 미국 EDA업계의 지지를 받고 있으므로 VHDL을 사용한 Design은 많은 다른 회사들간의 호환성이 보장된 다.
▷ VHDL을이용한 Top-Down 방식의 Design이 가능하여 설계기간이 훨씬 단축되고, 설계자가 놓치기 쉬운 많은 단계에서의 Error요인들을 철저히 검증(또는 초기에 수정)할 수 있다. 이는 시장에 적기에 제품을 내 놓을 수 있으며 제품 설계 비용이 줄어들 수 있다는 것을 뜻한다.
VHDL의 단점
위와 같은 많은 장점 이외에도 단점도 적지 않다.
▷ VHDL 언어 자체가 복잡하다. VHDL을 공학자(특히 미국 대학 교 수)들이 개발함으로 인해 이 언어 자체가 문학성, 학문성 및 진보성을 지니는 까닭에 실제 언어를 이해하고 원할히 사용하는데에는 많은 시간과 노력이 필요하다. 사실 현재 미국의 경우에 VHDL Training 자체가 굉장히 큰 Business이다.
▷ Synthesizalbe한 VHDL Command는 실제 VHDL(100% Simulatable)의 10%정도밖에 안된다. 즉 Simulatable한 많은 구문들이 H/W로 만들기 (Synthesis)에는 적합하지 않다는 것이다. 이런 구문들은 상당히 높은 Level의 추상적인 개 념들을 지니고 있다.
▷ Logic Value System에 문제가 있다. IEEE에서 표준이 되는 Logic Value System을 제안했음에도 많은 S/W 판매사들은 각각의 Logic Value Systme을 작고 있어서 그 Value들을 설계자는 잘 이해하여야 한다.
▷ VHDL을 사용한 Top-Down 방식으로의 의식전환이 전통적이고 보수적인 전자 기술자들에게는 어려운 것이 사실이다. 이들은 이제까지 Bottom-Up 방식의 System 설계에 익숙해져 있기 때문이다.
▷ VHDL Code를 회로합성 (Logic Synthesis)해 보면, 생성된 회로는 상당히 난해하고 Gate들간의 연결이 상당히 복잡하다. 이는 회로를 Computer가 생성하다보 니 어쩔수 없이 생기는 문제이다. 이 회로는 나중에 Layout 과정에서 Routing(배선-Gate들 간의 연결)에 상당한 어려움을 초래한다.
지금까지 VHDL의 장·단점에 대해서 살펴보았다. VHDL 사용자가 잊지말아야 할 것은 VHDL이 "Push Button"이 아니라는 것이다. 즉 VHDL로 어떤 Algorithm을 Coding한 후 Button만 누르면 곧 바로 System 또는 ASIC Chip이 되는 것은 아니라는 것이다. 여기에는 넘어야 할 산이 아직도 많이 있다. 그러나 VHDL을 사용하 는 쪽이 전통적인 Schematic Capture(회로 직접 그리기)보다 설계기간이 30∼50%정도 단축 되고 First Success 확률이 월등히 높은 것으로 업계에 보고되고 있다.
VHDL Synthesis를 위한 Modeling Technique
VHDL이 순수한게 coding만 끝나면 "Push Button"처럼 곧 바로 반도체 Chip이 나오는 것이 아니다.
VHDL Modeling
VHDL을 이용하여 coding을 할 때에는 다음과 같은 사항을 고려해야 한다.
첫째 : 설계 시작전에 입/출력 사양이 확실 정해져야한다. Coding이 시작되고 Synthesis할때에 사양이 변하면, Debug에 상당한 노력과 시간이 소요된 다.
둘째 : 목표는 반도체이다. 즉 VHDL은 마치 S/W처럼 보이고 그 언 어내용들도 H/W화하기 어려운 것도 많이 있으므로, Codeing할 때 Synthesizalbe한 code로 구성되어야한다.
셋째 : 늘 작은 단위의 Entity를 생각해야 한다. 작은 Entity들로 구성 된 coding일수록 Synthesis의 시간이 줄어들고 회로의 신뢰도가 높으며, 다음 project 수행 시 재사용 가능한 Entity들도 많이 있을 수 있기 때문이다. 또한 Test나 Debugf를 용이하게 할 수 있다.
넷째 : Tool이 제공하는 Constraints를 적절히 사용하여야 한다. Coding하면서 Synthesizer가 제공하는 사용주파수, Ramp-Delay, 온도, 공정 및 Setup Time 등을 고려해야 Back-Annotation에서 어려움을 피할 수 있다. 즉 VHDL이 순순하게 Coding 만 끝나면 "Push Button" 처럼 곧 바로 반도체 Chip이 나오는 것이 아님을 잊지말아 야 한다.
//------------------------------------------------------------------------//
VHDL이란 : Very high speed integrated circuit Hardware Description Language의 약자로서 상위의 동작 레벨에서부터 하위의 게이트 레벨까지 하드 웨어를 기술하고 설계하도록 하는 CAD 업계 및 IEEE 표준언어이며 미국 정부가 지원을 공인한 하드웨어 설계 언어.
1. 하드웨어 설계 환경
과거에는 보드상에 여러개의 범용의 칩을 삽입하여 원하는 기능을 얻 었으나 최근에는 반도체 공학과 컴퓨터 기술의 발달로 간단히 하나의 칩 내에서 모든 기능 을 수행할 수 있는 집적회로(integrated circuit)를 필요에 따라 쉽게 구현할 수 있게 되었다. 또한 집적회로의 용도가 다양해지고 그 기능이 확장됨에 따라 해가 갈수록 집적회로는 복잡 해지는 반면에 그 크기는 작아지는 추세이다.
예) Intel 8088 : 약 2만 6천개의 트 랜지스터
Intel 80486 : 약 100만개의 트랜 지스터
Intel 80586 : 약 310만개의 트랜 지스터
Intel 80686 : 약 5백 55만개의 트 랜지스터
마이크로유니티 미디어프로세서 : 약 1천 50만개의 트랜지스터
이렇게 집적도가 증가함에 종래의 게이트회로를 회로도면을 입력하 는 기법의 논리회로를 설계해 왔으나 설계 과정에서 칩의 크기, 집적도, 수행시간, 시뮬레이 션등 고려해야할 사항들이 많아지며 이로인하여 설계가 복잡해지고 어려워짐에따라 이러한 방법으로는 대규모의 논리를 통일적으로 설계 및 검증하기에는 한계가 있다. 그래서 회로도 입력을 대신하는 새로운 설계 기법, 하드웨어 기술언어에 의한 설계에 관심이 집중되었고 이러한 문제들을 해결하기 위해서 등장한 것이 HDL(Hardware Description Language)이 다.
단계 구분 |
제 1 단계 (60년∼70년) |
제 2 단계 (80년대) |
제 3 단계 (90년대) |
설계 방법 |
트랜지스터 레벨의 레이아웃 설계 (상향식 설계) |
게이트나 RTL 레벨의 논리설계 |
알고리듬이나 기능 레벨의 고급 설계 (하향식 설계) |
설계 도구 |
레이아웃 편집기 |
스키메틱 편집기 |
HDL과 합성 (실리콘 컴파일러) |
설계 범위 |
SSI, MSI (103 게이트 이 하) |
LSI, VLSI (103∼105 게 이 트) |
VLSI, GSI (105 게이트 이 상) |
설계 예 |
게이트, 카운터, 멀티플렉서, 가산 기 |
마이크로프로세서, 주변장치 |
고성능 마으콜프로세서, 실시간 영상처리 기 |
▷ 상향식 설계 : 하드웨어를 적은 컴포넌트부터 설계하기 시작하 여 큰 블록을 구성하고 마지막으로 원하는 시스템을 설계하는 방법
▷ 하향식 설계 : 전체 시스템에 대한 설계를 먼저하고 이어서 이 를 분해하여 서브 시스템으로 설계하며 계속 분리하여 설계를 마치는 방법
▷ SSI : Small Scale Integration
▷ MSI : Midium Scale Integration
▷ RTL : Register Transfer Level
▷ LSI : Large Scale Integration
▷ VLSI : Very Large Scale Integration
▷ GSI : Giant Scale Integration
☞ HDL을 사용한 경우에는 설계를 보다 낮은 레벨로 변환해 주는 실 리콘 컴파일러(silicon compiler) 또는 합성(synthesis)이 필요하다.
2. 하드웨어 기술 언어
하드웨어 기술 언어(HDL)는 하드웨어를 기술 또는 표현하는 언어이 다. 다시 말하면, 디지털 시스템의 기능 및 하드웨어적 특징을 컴퓨터의 고급언어에 접합하 여 원하는 회로를 기술할 수 있도록 하는 언어를 말한다. 또한 우리는 지금까지 흔히 하드 웨어를 스키메틱 다이어그램으로 나타냈지만 이를 대신하여 하드웨어를 표현할 수 있도록 하는 언어적 기능을 가진 것을 말한다. HDL을 사용하여 디지털 시스템의 모델링을 비롯하 여 시뮬레이션, 설계, 문서화, 검증, 합성을 할 수 있으며, 게이트 레벨 뿐만 아니라 동작적 및 구조적 레벨에서 하드웨어를 표현할 수 있다.
일부 설계자들이 지금까지 사용 해 오던 설계 스키메틱 도구대신에 HDL 도구를 사용하는 것으로 전환하는 것을 망설이고 있지만, 설계의 크기가 5만 게이트 이상이면 스키메틱으로 설계하는 것이 어려워지므로 HDL로 전환해야 하는 것은 시대적 요 구라 할 수 있다. HDL을 사용함에 있어서 장점은 간결한 하드웨어 표현, 편리한 문서화, 시 뮬레이션의 용이성, 설계정보 교환 등이 있다.
☞ VHDL이 나오기 이전까지 주로 사용했던 HDL
▷ AHPL(A Hardware Programming Language)
▷ CDL(Computer Design Language)
▷ C 언어
▷ IDL(Interactive Design Language)
▷ ISPS(Instruction Set Processor Specification)
▷ TDL(TEGAS HDL or Texas Instrument HDL)
▷ UDL/I(Unified Design Language for IC)
▷ Verilog-HDL
▷ ZEUS
▷ HILO
3. VHDL의 출현
앞에서 살펴본 것과 같이 여러 가지 HDL이 있지만 적은 집적회로에 서부터 대형 디지틀 시스템에 이르기까지 하드웨어를 모델링, 설계, 문서화, 검증, 제작을 위 해서 사용할 수 있는 표준화된 HDL이 없었기에 하드웨어 설계 및 관리에서 상당한 불편과 문제점이 있었고, 이것이 VHDL 출현의 직접적인 동기라고 할 수 있다.
▷ 1981년 6월 부터 VHDL 개발
▷ 1983년 7월 Intermetrics사, IBM, Texas Instruments사의 VHDL 을 이용하기 위한 환경, 지원 소프트웨어 구현을 위한 계약
▷ 1982년 VHDL 2.0
▷ 1985년 VHDL 7.2
▷ 1987년 7월 VHDL을 위한 완벽한 소프트웨어 도구
▷ 1987년 12월 IEEE-1076이라는 IEEE 표준 VHDL 탄생
▷ 1991년 IEEE-1164발표 9개의 표준 논리 레벨 MVL9('U', 'X', '0', '1', 'Z', 'W', 'L', 'H')
▷ 1992년 미국정부지원공인 HDL로 정해짐
▷ 1993년 IEEE 1076-1987의 새로운 버전인 IEEE 1076-1993개 발
4. VHDL의 특징
4.1. 표준화된 HDL : 지금까지 여러 가지 HDL이 존재하였으나 모두 가 해당 설계 도구 전용, 특정 시뮬레이터, 특정 기술 또는 특정 설계 방법을 위해 만들어졌 으므로 디지털 하드웨어의 개발, 정보교환, 기록 등에 문제가 있어왔다. 그러나 표준화된 VHDL의 등장으로 이러한 문제들이 모두 해결되었다. 즉 하향식이나 라이브러리 위주와 같 은 설계 방법론과 무관하며 기술된 내용을 시뮬레이션 하여 구현하는데 있어서 CMOS, nMOS, 또는 GaAs에 상관없이 사용할 수 있다. VHDL로 기술한 것을 시뮬레이션하고 합성 하여 반도체 공급업체의 라이브러리와 상관없이 실제의 회로를 쉽게 얻을 수 있다. HDL이 표준화됨으로써 사용자가 가지는 장점은 CAD 소프트웨어를 제공한 회사의 특정 라이브러 리만을 사용할 필요가 없이 다른 회사의 라이브러리도 사용할 수 있으므로 보다 쉬운 정보 교환 등으로 설계상의 오류 및 기간을 단축할 수 있으므로 전체적인 설계 비용을 줄일 수 있다.
4.2. 이용의 확대 : IEEE가 지원하는 표준일 뿐만 아니라 미국 정부에 서 인정한 공인 HDL이다. 즉 미국 국방성 뿐만 아니라 미국의 모든 공공 기관과의 하드웨 어 관련 문서화를 위해서는 VHDL을 사용해야 한다. 또한 유럽 연합(EU)이 결성되기 전, 각 나라가 사용하던 하드웨어 표현 및 문서화를 위한 언어의 표준화에 대해서 고민하던 차 에 VHDL이 출현하자 유럽에서 적극적으로 사용하기 시작하였으며 이것이 전세계적으로 확 대되는 계기가 되었다. 또한 일본을 비롯하여 우리나라에서도 그 사용이 점점 증가하고 있 다. VHDL을 이용하여 국가간이나 회사간에 설계 정보를 교환할 수 있으며 대규모의 설계 를 하기에 용이하고 이미 설계한 것을 재사용하기 쉬우므로 VHDL의 사용은 점점 확대되고 있다.
4.3. 설계를 위한 우수한 하드웨어 기술 능력 : VHDL은 우리가 흔히 사용하고 있는 고급 프로그래밍 언어와 같은 원리에 기초를 두고 있으며 하드웨어적인 특징 을 추가하여 표현 능력을 향상시켰다. VHDL은 원래 시스템 레벨에서부터 게이트 레벨까지 의 하드웨어의 동작적(behavioral)레벨 및 구조적(structural)레벨에서 기술을 할 수 있도록 만들어졌다. 또한 시뮬레이션 등을 위해서 여러 레벨의 기술을 혼합해서 사용할 수 있다. 다 양한 지연(delay), 물리적인 량의 표현, 병행 신호 할당문, 분해 함수(resoluton function) 등 의 기술이 가능하다(이들에 대해서는 제 2장에서 설명된다). 또한 스위치 수준의 기술 및 시 뮬레이션이 가능하나 이것은 사용하는 CAD 소프트웨어의 의존도가 높다. 그리고 일부에서 는 아날로그 또는 아날로그-디지털 혼합 VHDL을 위한 제한적인 시도를 하고 있 다.
4.4. 언어로서 다양한 기능 제공 : 회로의 문서화 및 시뮬레이션을 위 한 언어이며 합성을 위한 언어이기도 하다. 또한 언어 사용상에 상당한 융통성을 부여할 수 있다. 그 예로서 연산자, 함수, 문자등(예를 들어 AND, OR, + 등)이 여러 가지 다른 의미를 가지도록 프로그래밍 할 수 있다. 또한 사용자가 정의한 자료형(user defined data type)과 속성(attribute)을 허용한다.
4.5. 디지털 설계 : 집적회로는 아날로그 회로(analog circuit)와 디지 털 회로(digital circuit)로 나눌 수 있다. 아날로그 회로는 전압이 변화하면서 연속적으로 연 결되는 신호에 따라 동작하는 회로이며 디지털 회로는 2개의 전압값 0과 1에 기초를 두고 있다. 디지털 회로는 여러 가지 장점을 가지고 있으므로 최근에는 거의 모든 회로의 설계는 디지털 회로에 기초를 두고 있다.
4.6. 문제점 : VHDL은 하드웨어를 기술하여 시뮬레이션 하기 위해 만들어진 언어이므로 설계 자체를 위한 것들을 위해서는 적합치 않은 점들이 다수 있다. 예 를 들면 정확한 타이밍 검증, 임계경로(critical path)의 계산등이 어렵다. 무엇보다도 가장 큰 문제는 합성도구(synthesis tool)에 대한 지원이 부족하다. 또한 느린 구조적 레벨의 시뮬 레이션, 설계 도구들간의 호환성 결여, 라이브러리의 지원 및 표준화 결여, 하드웨어 엔지니 어의 소프트웨어적 설계 기법에 익숙지 못함, 아날로그 시스템 모델링의 어려움 등을 들 수 있다. 그러나 최근에는 CAD업체들의 많은 노력으로 이러한 문제들이 부분적으로 극복되어 가고 있다.
5. VHDL의 표현방법
같은 회로에 대해서 여러 가지 방법으로 스키메틱 표현이 가능하며 또한 부울대수(boolean algebra)를 사용한 경우에도 여러 가지로 기술이 가능한 바와같이 VHDL을 이용하여 기술하는 경우에도 마찬가지로 여러 가지 표현을 사용할 수 있다. 즉 하 드웨어를 표현하는 레벨 즉 모델링(modeling)에는 여러 가지가 있다. 일반적으로는 크게는 동작적 모델링(behavioral modeling)과 구조적 모델링(structural modeling) 두가지로 나눈 다. 또한 이 모델링 사이의 중간적 모델링 방법으로서 자료흐름(dataflow modeling)을 사용 한다. 사람에 따라서는 이를 동작적 모델링으로 분류하기도 한다. 또한 이 세가지를 혼합해 서 모델링 할 수도 있다.
5.1. 동작적 모델링 : 동작적 모델링은 세가지 모델중에서 가장 높은 레벨의 추상적인 표현으로서 시스템이 내부적으로 어떠한 구조를 가지고 있는 지에 대해서 는 상관없이 설계자가 원하는 것을 기능적 또는 수학적인 알고리듬을 사용해서 시스템의 기 능(function)을 기술한 것을 말한다. 즉 입력에 따른 출력결과에 대한 표현을 가리킨다. 하드 웨어에 대한 지식이 별로 없는 사람이 설계하거나 회로의 문서화를 하는 경우에 좋으며 빠 른 시뮬레이션 결과를 얻기 위해서 이용하는 것이 바람직하다.
5.2. 자료흐름 모델링 : 자료흐름 모델링은 자료의 흐름 즉, 신호 및 제어의 흐름을 나타낸다. 주로 부울대수, 함수, RTL 또는 연산자(AND, OR 등)를 사용하여 입력으로부터 출력까지의 경로 표현을 위주로 한다. VHDL의 병행문(concurrent statement) 을 사용하여 주로 표현하며 표현상의 모든 문장들이 순차적(sequential)으로 작동(active)하 는 것이 아니라 항상 작동하게 한다. 이는 디지털 회로의 각 컴포넌트(component)가 항상 작동하고 있으므로 이를 표현하고 있다는 의미이다. 여기서는 버스, 레지스터 전달 등을 잘 표현할 수 있으므로 동작적 모델링 보다는 하드웨어에 가깝게 접근할 수 있다.
5.3. 구조적 모델링 : 구조적 모델링은 세가지 모델링 중에서 하드웨 어에 가장 가까운 하위레벨의 표현으로서 모든 컴포넌트 뿐만 아니라 이들의 상호연결도 나 타낸다. 즉 컴포넌트와 게이드들과 연결 상태를 나타낸다. 설계자가 합성을 고려하여 컴포넌 트를 표현할 수 있다. 레지스터와 버스뿐만 아니라 게이트 수준의 설계를 가능하게 한다. 하 나의 시스템을 설계하기 위해서 필요한 컴포넌트(or 서브시스템)들과 이들의 인터페이스를 정의할 수 있으며 이미 설계된 컴포넌트를 불러서 사용할 수 있도록 한다.
이러한 세가지의 모델링을 혼합하여 하드웨어를 표현할 수도 있으며 이를 시뮬레이션 하거나 합성하는 것 또한 가능하다. 다른 모델링들 간에 상호 작용을 하는 것은 실제로 신호(signal)이며 상호 작용을 위해서는 자료형 변환합수(data convertion function)이나 분해함수(resolution function)를 사용할 수 있다.
동작적 모델링 |
설계 계층 |
구조적 모델링 |
설계 명세 알고리듬 표현 RTL 부울 함수 미분 방정식 |
시스템 칩 레지스터 게이트 회로 |
컴퓨터, 디스크 장치 마이크로프로세서, RAM, ROM 레지스터, MUX, ALU, 카운터 AND, NAND, OR 등의 게이트 TR, R, L, C |
발췌:http://soclab.khu.ac.kr/Lecture/asic_vhdl.htm
'VHDL' 카테고리의 다른 글
4bit Carry Lookahead Adder (CLA) (0) | 2010.07.03 |
---|---|
[VHDL] Signal, Variable, Constant (0) | 2010.07.03 |
VHDL 세미나를 위해서 만들었던 자료 (0) | 2010.06.22 |