티스토리 뷰
VHDL이란?
VHSIC Hardware Description Language의 약자로 VHSIC은 또 Very High Speed Integrated Circuits의 약자이다. 디지털 회로를 표현하는 하드웨어 기술 언어이다.
탄생배경
VHDL은 미국 국방부에서 주문형 집적회로(ASIC = Application Specific Integrated Circuit)를 문서화하기 위해 제안되었다. 처음엔 동작을 기술하는 데에서 시작하였지만 반대로 기술된 문서로 회로를 디자인할 순 없을까? 생각하게 되었고 이를 통해 동작할 수 있는 회로를 구성할 수 있게 되었다. 오늘날에는 검증, 시연 등의 다양한 기능을 내포하게 되었다.
특징
특정 기술이나 공정에 대해 독립적
- 공통된 기술 언어로 특정 기술이나 공정에 관계없이 설계가 가능
표준화 및 문서화
- IEEE에 의해 표준화 되어 있으며 기술적 특징을 문서화 할 수 있음
VHDL로 완전한 회로 시뮬레이션은 가능하지만 모든 구성이 합성되진 않음
-
일반적인 컴퓨터 프로그램에 비해 병렬적으로 동작함.
- 순차적 실행이 아닌 동시에 동작하는 방식이다. 전류가 모든 회로에 동시에 흐르듯 VHDL로 구술한 프로그램 또한 같은 특성을 지닌다.
많은 시간과 노력이 필요
- VHDL 자체의 하드웨어적인 특징으로 Flow 대로 구현하다 보면 시간이 많이 소요되고 복잡하다.
합성 툴에 따라 회로 성능이 좌우 됨
- 합성 툴에 따라 VHDL 구문의 지원여부가 달라져 성능상의 문제가 발생
Design Flow
Design Entry : Schemetic 또는 VHDL로 회로를 구성하는 단계
Synthesis : 파형으로 입력레벨을 설정하는 단계
Functional Simulation : 입력레벨에 따른 출력레벨을 시뮬레이션 하는 단계
Design Correct? : 출력레벨을 확인
Fitting : Quartus 2 프로그램 내 Full Compilation, Programmer
Timing Analysis and Simulation : 회로의 물리적 특징에 의한 time delay를 시뮬레이션
Timing Requirements Met? : 적정 수준의 time delay인지 확인
Pragramming and Configuration : 물리적인 동작을 확인한다.
VHDL의 구조
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | library ieee; -- VHDL은 IEEE 국제 표준을 사용한다. use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity and_gate is -- Entity 선언부 는 설계하고자 하는 시스템의 외적 연결을 담당 한다. -- 회로의 내부적인 구조나 연결등을 고려할 필요가 없으며, -- 여기서 정의한 것을 통해 다음 Architecture Body 에서 내부적 동작을 표현한다. -- 즉, 입출력 선을 정의 하는 부분이다. port( A : in std_logic; B : in std_logic; Y : out std_logic -- 선언부 마지막 문장에 세미콜론이 없음에 유의하자. ); end and_gate; architecture BEH of and_gate is -- 시스템의 동작을 세부적으로 정의한다. begin Y <= A and B; end BEH; | cs |
'프로그래밍 > Quartus 2' 카테고리의 다른 글
[VHDL] COUNTER 설계 (0) | 2018.03.26 |
---|---|
[VHDL] 논리 게이트 (0) | 2018.03.16 |
[VHDL] 간단한 프로그램 만들기(VHDL) (0) | 2018.03.16 |
[VHDL] 간단한 프로그램 만들기(Schematic) (0) | 2018.03.12 |
[VHDL] Quartus2 설치방법 (0) | 2018.03.12 |
- Total
- Today
- Yesterday
- PostgreSQL
- DevOps
- Azure
- oracle
- nuxt.js
- REACT
- Next.js
- node.js
- vue
- hoisting
- JavaScript
- gcp
- Quasar
- aws
- RDBMS
- MySQL
- 이진탐색 #중복
- SQLite
- nosql
- alpine.js
- Cloud
- Gatsby.js
- svelte
- vue.js
- Angular
- Remix
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |