VHDL-개요 _ 1
강의계획
강의교재
“VHDL 을 이용한 디지털회로 입문” 출판사 : 한빛미디어 나미키 히데아키 , 나가이 다카미치 지음 김은성 이영희 옮김VHDL-개요 _ 2
강의 개요
디지털 시스템에서의 PLD(Programmable Logic Device)
사용영역의 확대
PLD 의 Gate Size 증가 , 가격저하 , Speed 향상
강의 내용
VHDL (Very High Speed Integrated Circuit Hardware Description Language) 기초 지식 습득
VHDL 을 이용한 PLD(FPGA) 설계
Altera 사의 MAX-PLUS2 또는 Xilinx 사의 ISE CAD tool 사용법 숙지 PLD 구조 및 효율적인 설계 기법 숙지
그래픽 편집기에 의한 설계 (Schematic Editor)
하드웨어 기술 언어 (HDL : Hard Description Language) 에 의한 설계 FPGA 가 내장된 Training Kit 를 사용한 디지털 논리회로 ( 시스템 ) 설계
평가
VHDL-개요 _ 3
회로구현에 이용되는 칩의 주요형태
표준 칩 (Standard Chip)
물리적인 기능과 외형이 고정된 표준으로 합의된 칩 80 년대 중반까지 각각의 칩에 몇 개의 논리게이트를 포함하는 칩들을 여러 개 연결하여 회로를 구성 EX) 7400 series : 7404, 7408, 7432 …VHDL-개요 _ 4
회로구현에 이용되는 칩의 주요형태
프로그래머블 로직 디바이스 (PLD)
고정된 기능을 갖는 표준 칩과 달리 사용자의 의도대로 여러가지 다양한 논리 회로 기능들을 구현할 수 있는 회로소자들을 포함하는 칩 상용제품의 시작품을 테스트 용도 . 또는 실제 상용제품으로도 사용 설계 내용을 재 프로그래밍이 가능한 장점 PLD 의 종류 PLA (Programmable Logic Array) PAL (Programmable Array Logic)
CPLD (Complex Programmable Logic Device) FPGA (Field Programmable Gate Array) 등
VHDL-개요 _ 5
회로구현에 이용되는 칩의 주요형태
주문형 칩 (
ASIC : Application Specific Integrated Circuit)
프로그래머블 스위치들을 사용하는 PLD 에 비해 동작속도가 높고 집적도를 높일 수 있음
PLD 로 성능을 맞추지 못하는 경우 또는 가격경쟁력이 없는 경우 , 설계자료를 기반으로 칩 제조시설이 있는 회사 (Fab) 에서 칩을 제조 제조를 위한 기간이 최소 수개월 소요됨
VHDL-개요 _ 6
PLD 의 주요 형태
PLA
논리함수를 곱의 합 형태로 표현 할 수 있다는 개념을 이용 AND 입력선과 OR 입력선 모두 프로그램 가능
VHDL-개요 _ 7
PLD 의 주요 형태
PAL
논리함수를 곱의 합 형태로 표현 할 수 있다는 개념을 이용 AND 입력선만 프로그램 가능
VHDL-개요 _ 8
PLD 의 주요 형태
CPLD
VHDL-개요 _ 9
PLD 의 주요 형태
FPGA
여러 개의 논리블럭 , 상호연결선들과 스위치 , I/O 블럭들로 구성
VHDL- 개요 _ 10
VHDL 등장 배경
이전의 하드웨어 설계에서는 주로 schematic editor 를 이용해
서 작은
block 을 설계하고 , 이것을 이용하여 큰 block 을 설계
하는 상향식 설계
(bottom-up)
설계해야 할 회로의 규모가 커지고 , 복잡도가 증가함에 따라서 bottom-up 방식의 설계는 한계에 도달하게 됨 . 알고리즘이나 기능레벨에서 설계가 가능하도록 하는 HDL 이 출
현하게 되어
, 하향식 (top-down) 설계 방식이 가능
VHDL- 개요 _ 11
VHDL 의미 및 사용 목적
VHDL 이란 ?
하드웨어 기술 언어 (HDL) 의 일종
직접 회로를 그려서 하드웨어를 설계하는 방식과는 달리 HDL 문법에 따라 합성하여 하드웨어의 동작을 기술하는 high level language 이다 .
IEEE 표준으로 제정된 하드웨어 기술언어
VHDL 의 특징 및 사용목적
하나의 칩에서 디지털 시스템의 기능을 수행할 수 있는 집적회로 설계 설계 변경과 구현이 용이 , 설계 시간의 단축과 비용 절감 ( 설계 재사용가능 ) 특정 기술 및 공정과 무관 이식성이 우수한 하드웨어 개발 빠른 제품 개발에 대응 저속 ~ 고속 디지털 시스템 모델링VHDL- 개요 _ 12
VHDL 역사
1980 년대에 , 미 국방성은 VHSIC(Very High speed Integrated Circuit) 프로그램이라는 이름 하에 프로젝트 착수 VHDL 의 모체가 됨
1983 년에 , Intermetrics, IBM 과 TI 로 구성된 팀이 VHSIC 를 기반으로 VHDL 을 개발하기로 함
1985 년 초반에 , 개발 목적으로 설계의 문서화와 시뮬레이션에 둔 VHDL 버 전 7.2 탄생
1987 년에 , 미 국방성은 모든 디지털 회로를 VHDL 로 기술할 것을 의무화시 켰고 , IEEE 에서 VHDL 을 IEEE standard 1076 으로 인준 함
현재 VHDL 은 산업체 표준이며 , EDA (Electronic Design Automation) 툴 공급업체는 VHDL 을 위한 툴을 개발할 수 있게 되었음
1991 년 IEEE1164 발표
1993 년에는 VHDL 이 IEEE 1076-1993 으로 개정되었음
1996 년에는 상업화된 시뮬레이션 툴과 합성 툴이 IEEE 1076-93 표준을 모 두 지원하게 되었음
VHDL- 개요 _ 13
하드웨어 설계 환경과
VHDL -1/2
70 년대는 트랜지스터 레벨의 레이아웃 (Layout) 편집기와 80 년대부터 지금 까지 사용하는 스키메틱 (Schematic) 편집기가 주를 이루었음 규모 회로 설계와 고도의 기능적 레벨의 회로 설계를 다루기에 적합하지 않았음 VHDL 이 등장하기 이전까지 HDL 로 사용되었던 언어는 AHPL(A Hardware Programming Language), Verilog 및 C 등이 있었음 이후 VHDL 이 개발되어 최초의 표준하드웨어 기술언어로 공인받게 되었음 VHDL 은 소규모 회로에서 대규모 시스템 설계에 이르기까지 문서화 , 검정 및 설계
VHDL- 개요 _ 14
하드웨어 설계 환경과
VHDL -2/2
설계 의뢰자로부터 시스템 설계에 대한 요구가 있으면 의뢰 자의 요구에 맞게 시스템 사양을 결정 시스템 사양은 시스템 모델링을 통해 이루어짐 시스템 모델링은 하드웨어 구현에 염두를 두지 않고 시스템의 알고리즘 을 표현하는 것 모델링의 목적은 형식적 설계 사양으로서 사용할 수 있는 시뮬레이션 모델을 생성하기 위함 시뮬레이션의 수행을 통해 시스템의 기능을 미리 점검하고 확인하게 됨 시스템의 모델링은 최종 하드웨어 합성을 위하여 RTL 설계로 변환 VHDL 을 이용한 설계는 시스템 사양에서부터 최종 합성에 이르기까지 전반적인 하드웨어 설계과정을 다루고 있음 하드웨어 엔지니어는 하드웨어 전반적인 설계과정을 업체와 업체간 , 엔지니어 간의 서로 통용할 수 있는 표준화 된 VHDL 이라는 하나의 언어에 의해 쉽고 편리하게 다룰 수 있 게 되어 있음VHDL- 개요 _ 15
VHDL 표현
설계 시작전에 I/O( 입출력 ) 사양이 정해져야 한다 . 반도체 칩으로 회로 합성이 가능하도록 프로그래밍 해야 한다 . 가능한 작은 단위로 프로그래밍 해야 한다 . 사용자가 VHDL 합성툴이 제공하는 제한요소 (constraints) 를 정확히 파 악하고 있어야 한다 . VHDL 에 의한 기본 설계 구조
1 단계 : 엔티티 선언 (Entity declaration) 표현 하드웨어 외부 입출력 인터페이스를 정의 하드웨어 블록의 이름과 입출력 포트를 선언 2 단계 : 아키텍쳐 선언 (architecture declaration) 표현 하드웨어 내부를 표현 내부회로의 연결 , 동작 또는 구조 등을 표현VHDL- 개요 _ 16
VHDL 를 이용한 디지털 회로 설계 (1/4)
Xilinx ISE 소프트웨어를 이용한 설계 방법
Schematic 에 의한 방법 HDL(VHDL, Verilog) 에 의한 방법 VHDL 의 특징
IEEE 표준으로 공인된 HDL 특정 기술 및 공정에 무관 광범위한 기술 능력 시스템 레벨에서 게이트 레벨까지 다양한 회로 구현 가능VHDL- 개요 _ 17
VHDL 를 이용한 디지털 회로 설계 (2/4)
VHDL 를 이용한 기본 설계 단계
Entity 선언 외부에 나타내는 하드웨어적 블록을 정의 외부와 하드웨어적 인터페이스 담당 Entity 이름과 외부와 연결할 수 있는 입출력 정의 Architecture Body 표현 선언된 entity 의 하드웨어 내부회로의 연결동작을 표현 내부회로 연결 , 동작 또는 구조 등을 표현VHDL- 개요 _ 18
VHDL 를 이용한 디지털 회로 설계 (3/4)
andgate 라는 이름을 가진 AND 게이트 회로 예
Entity 선언 외부 관점에서 기술하는 과정 외부의 하드웨어적 인터페이스 관점 => 하드웨어 블록 Architecture body 정의 Entity andgate 의 내부 동작 정의 a b y andgate a b y andgateentity 선언 Entity andgate is Port(a, b : in bit; y : out bit); End andgate;
a
b y
andgate
sample architecture sample of andgate is
begin
y <= a and b; end sample; Architecture body 정의
VHDL- 개요 _ 19
VHDL 를 이용한 디지털 회로 설계 (4/4)
식별어 (identifier)
VHDL 문법에서 정의한 예약어 (Reserved Word) 가 아니고 사용자가 정 의하는 이름 식별어 사용 규칙 공백을 가지지 않는 문자열로 첫번째 문자는 알파벳이어야 함 . 문자열은 알파벳 문자와 숫자 또는 밑줄 (_) 을 사용 대 . 소문자 구별 없음 연이어 두 밑줄을 사용하지 않으며 , 마지막 문자열에는 밑줄을 사용하지 않음 주석 (Comment) 는 ‘--’ 로 표시하며 ‘--’ 로 시작부터 그 줄 끝가
지는 수행에 무관
VHDL- 개요 _ 20
VHDL 의 기본 활용 (1/6)
2 입력 OR 게이트 설계
entity orgate is port(a, b : in bit; y : out bit); end orgate;architecture sample of orgate is begin y <= a or b; end sample; a b y sampleorgate
VHDL- 개요 _ 21
VHDL 의 기본 활용 (2/6)
4 입력 NOR 게이트 설계
entity norgate is port(a, b, c, d : in bit; y : out bit); end norgate;architecture sample of norgate is begin y <= not(a or b or c or d); end sample; a b y norgate c d sample
VHDL- 개요 _ 22
VHDL 의 기본 활용 (3/6)
간단한 조합논리 회로 설계
entity combi is
port(in1, in2, in3, in4 : in bit; out1, out2, out3 : out bit); end combi;
architecture sample of combi is begin
out1 <= in1 or in2; out2 <= in2 nand in3; out3 <= not(in4); end sample; in1 in2 in3 in4 out1 out2 out3 combi sample
VHDL- 개요 _ 23
VHDL 의 기본 활용 (4/6)
port 와 signal
Port 는 entity 내 외부신호선의 연결상태를 나타냄
Port 문에는 입출력의 방향과 성격을 결정하는 mode 와 자료형 (type) 이 지정됨
architecture a b in inout out buffer c d mode in : 신호가 entity 로 들어가는 입력선 일 경우 사용 out : 신호가 entity 로부터 나가는 출력선 일 경우에 사용하며 외부를 구동 시킬 수 있음 .
inout : in, out의 양방향을 모두 가지는 경우 사용
buffer : out 기능과 동일하나 , 외부 신호를 받을 수 없고 , 단지 자신의 신호를 되 읽는 경우에 사용 entity sample is port( a : in bit; b : inout bit; c : out bit; d : buffer bit); end sample;
VHDL- 개요 _ 24
VHDL 의 기본 활용 (5/6)
Signal 의 Type
Signal 의 개수가 하나인 경우 : bit
Signal 의 개수가 여러 개인 경우 : bit_vector (bus 형태 ) bit_vector(0 to 7) or bit_vector(7 downto 0)
IEEE1164 에 따른 표현
Library ieee 와 use ieee.std_logic_vetor bit => std_logic
VHDL- 개요 _ 25
VHDL 의 기본 활용 (6/6)
a b[7..0] c y[3..0] d 8 3 library ieee; use ieee.std_logic_1164.all; entity block_box is port(a, c : in std_logic; b : in std_logic_vector (7 downto 0); y : out std_logic_vector (3 downto 0); d : out std_logic);end block_box;
downto 와 to 차이점
y=“0011” 인 경우
1) downto 를 사용한 경우 ( 내림 차순 ) y(3)=0, y(2)=0, y(1)=1, y(0)=1
2) to 를 사용한 경우 ( 오름 차순 ) y(0)=0, y(1)=0, y(2)=1, y(3)=1