5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부...

23
II. VHDL 설계부 4. VHDL 개요 5VHDL 설계 구성 5. VHDL 설계 구성 6. VHDL 객체 및 타입 7. VHDL 모델링 8. VHDL 구문과 예제 -1- 광운대학교 전자정보대학

Transcript of 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부...

Page 1: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

II. VHDL 설계부

4장. VHDL 개요

5장 VHDL 설계 구성5장. VHDL 설계 구성

6장. VHDL 객체 및 타입

7장. VHDL 모델링

8장. VHDL 구문과 예제

- 1 -광 운 대 학 교전자정보대학

Page 2: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

VHDL 소개

VHDL 특성

구 분 VHDL C구 분 VHDL C

계층적 표현선언과 본체 분리

계층적 모델링 (캡슐화, 사례화, 설계분류)헤더와 C 화일

타이밍객체

객체 및 타입

타이밍객체

다양한 자료형

자료형의 범위 및 제약

자료형의 속성

단순 자료형

단순 리터럴

다양한 리터럴

연산자의 다중 정의

블록 구조언어의 선언 영역 및 가시성

선언영역 및

가시성

선언 영역의 계층성

선언 영역의 중첩

선택적 선언 영역의 확장

동형 이의어의 선택

블록 구조언어의

선언영역 및 가시성

동형 이의어의 선택

하드웨어

모델링

행위/타이밍/구조기술

병행문/순차문 (감지리스트, 델타지연, 대기문)행위 알고리즘

기술 순차문

- 2 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 3: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

설계 단위독립적으로 분석되어 라이브러리화 될 수 있는 구성 단위

(Design Unit) 독립적으로 분석되어 라이브러리화 될 수 있는 구성 단위

설계 라이브러리

(Design Library)기존에 설계되어 분석이 완료된 설계 단위로서

다른 설계에서 재사용할 수 있다. (Design Library) 다른 설계에서 재사용할 수 있다.

패키지 선언

(Package Declaration)/패키지 몸체

패키지 선언은 다른 설계 단위에서 재사용될 공유 선언 정보를 선언한 설계 단위이다.패키지 몸체는 패키지 선언만을 지원하는 정보를 선언한 설계 단위/패키지 몸체

(Package Body) 패키지 몸체는 패키지 선언만을 지원하는 정보를 선언한 설계 단위이다.

엔티티 선언 새로운 회로의 이름, 외부와의 인터페이스 방법 및 특성을 정의한 설

(Entity Declaration) 계 단위이다.

아키텍쳐 몸체

(Architecture Body)엔티티 선언의 내부 회로를 표현하기 위한 동작 및 구조 정보를 기술한 보조 설계 단위로서 단독으로 재사용될 수 없다.(Architecture Body) 한 보조 설계 단위로서 단독으로 재사용될 수 없다.

구성 선언

(Configuration Declaration) 전체적인 회로의 구성을 위하여 계층적 연결 정보를 기술한 설계 단위이다.

- 3 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 4: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

설계 단위(Design Unit)

주요단위 보조단위주요단위

(Primary Unit)보조단위

(Secondary Unit)

공유정보Package Declaration

공유 선언 정보

Package Body비공유 선언 정보

하드웨어

동작/구조

Entity Declaration선언 및 인터페이스 정보

Architecture Body내부 동작 및 구조 정보

하드웨어

구성정보

Configuration Declaration연결 및 결합 정보구성정보 연결 및 결합 정보

- 4 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 5: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

설계 단위의 구성 및 상호 관계

Design File

Design Library

Package Declaration Package Body

Design Library

Architecture Body I

Architecture Body II

Entity Declaration

Design Library

Design Library

Configuration Declaration

Design Library

Primary Unit Secondary Unit

- 5 -광 운 대 학 교전자정보대학

: 주/보조 설계 단위 관계 : Use 문을 이용한 확장

5장. VHDL 설계구성

Page 6: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

설계 라이브러리(Design Library)설계 라이브러리의 분류

• Working Library : 현재 구현중인 설계 라이브러리• Working Library : 현재 구현중인 설계 라이브러리

• Resource Library : 분석이 완료되어 다른 설계 단위에서 재사용되는 라이브러리

라이브러리의 재사용(Use 문)라이브러리의 재사용(Use 문)• STD.STANDARD 패키지의 재사용은 default 처리가 이루어진다.

라이브러리 종류라이브러리 종류

• STD library : VHDL standard library (STANDARD, TEXTIO)• IEEE library : IEEE standard library ( std_logic_1164, std_logic_arith)

ASIC d lib l i t 를 정의한 tit hit t b d• ASIC vendor library : logic gate를 정의한 entity, architecture body• User-defined library : package, entity, architecture body, configuration • WORK library : 현재 작업중인 directory

- 6 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 7: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

VHDL 표현

• 라이브러리 지정

LIBRARY library_name ;• 패키지 재사용(Use Clause)

USE library_name.package_name.declaration_name ; USE library_name.package_name.ALL ;

• 엔티티와 아키텍쳐 몸체/구성 선언 재사용(Binding Indication)USE ENTITY library_name.entity_name(architecture_body_name) ;USE CONFIGURATION library_name.configuration_name ;

LIBRARY std, ieee, work;

USE std.standard.ALL; -- 생략 가능USE std.standard.ALL; 생략 가능

USE ieee.std_logic_1164.ALL; -- 패키지

USE k k ALL 사용자 정의 라이브러리USE work.my_pkg.ALL; -- 사용자 정의 라이브러리USE ENTITY work.d_flipflop(behavioral) ; -- 엔티티와 아키텍쳐 몸체

USE CONFIGURATION work.dff config ; -- 구성 선언

- 7 -광 운 대 학 교전자정보대학

US CO GU O ff_ f g ; 구성 선언

5장. VHDL 설계구성

Page 8: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

패키지 선언 및 패키지 몸체(Package Declaration & Package Body)패키지 선언(Package Declaration)

• 설계에서 공유될 정보를 정의한다• 설계에서 공유될 정보를 정의한다.공유할 타입/상수/서브프로그램 등을 선언한다.

• USE 문을 통하여 외부에서도 참조 가능하다.

패키지 몸체(Package Body)• 패키지 선언에서의 서브프로그램 몸체와 미정의 상수(Deferred constant)를 정의한

다다.Package내에 사용될 선언 중에서 공유하지 않을 내용 등을 정의한다.

• 패키지와 동일한 이름을 사용한다.• 자신 외의 다른 설계에서는 절대 참조하지 못한다자신 외의 다른 설계에서는 절대 참조하지 못한다.

- 8 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 9: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

주요 패키지 라이브러리

• STD 라이브러리(VHDL 표준 라이브러리)STANDARD; TEXTIO

• IEEE 라이브러리

합성지원 라이브러리 : STD_LOGIC_1164산술연산 라이브러리 : STD_LOGIC_ARITH; STD_LOGIC_UNSIGNEDMicrowave 라이브러리 : WAVES_1164_DECLARATIONS; WAVES_INTERFACE; WAVES_1164_FRAMES;WAVES_1164_UTILITIE; WAVES_OBJECTSVITAL 라이브러리(ASIC용 라이브러리) : VITAL timing; VITAL PrimitivesVITAL 라이브러리(ASIC용 라이브러리) : VITAL_timing; VITAL_Primitives

- 9 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 10: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

패키지 선언 및 패키지 몸체

VHDL 표현

PACKAGE my_pkg IS -- Package DeclarationTYPE ntype IS (lev0, lev1, lev2, lev3);FUNCTION add_ntype (in1, in2 : IN ntype) RETURN ntype;

END my pkg ;END my_pkg ;

PACKAGE BODY my_pkg IS -- Package BodyFUNCTION add_ntype(in1, in2 : IN ntype) RETURN ntype IS

VARIABLE temp : integer;BEGIN

IF(in1 = in2 ) THEN RETURN in1;RETURN in1;

ELSEtemp := ntype’POS(in1) + ntype’POS(in2);temp := temp MOD ntype’RIGHT+1;RETURN ntype’VAL(temp);

END IF;END FUNCTION;

END my pkg;

- 10 -광 운 대 학 교전자정보대학

END my_pkg;

5장. VHDL 설계구성

Page 11: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

패키지 선언 및 패키지 몸체와 다른 설계 단위와의 구성 관계

Package

Use Clause

Package P k B d

Use ClauseDefault

Package Package Body

Not Visible Not VisibleNot Visible

Use Clause Use Clause Default

Architecture Body

Configuration Entity

- 11 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 12: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

패키지 선언 및 패키지 몸체

패키지 선언 내에 정의 가능한 선언 내용

• VHDL’87/93• VHDL 87/93Subprogram Declaration -- 서브프로그램 몸체는 선언불가

Type DeclarationSubtype DeclarationypConstant DeclarationSignal DeclarationFile DeclarationAlias DeclarationComponent DeclarationAttribute Declaration/Attribute SpecificationDisconnection DeclarationDisconnection DeclarationUse Clause

• VHDL’93Shared Variable Declaration -- 동작 특성은 보장되지 않는다. (사용 주의)동작 특성 장되지 다 (사용 주의)Group Template DeclarationGroup Declaration

- 12 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 13: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

패키지 몸체 내에 정의 가능한 선언 내용

• VHDL’87/93Subprogram Declaration/Subprogram BodyType DeclarationSubtype DeclarationConstant DeclarationFil D l iFile DeclarationAlias DeclarationUse Clause

• VHDL’93• VHDL 93Shared Variable Declaration -- 동작 특성은 보장되지 않는다. (사용 주의)Group Template DeclarationGroup Declarationp

- 13 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 14: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

엔티티 선언(Entity Declaration) Entity 내의 선언(Declaration) 내용

• Generics (예제 line 4~8)• Generics (예제 line 4~8)외부에서 설정 가능한 특성 값으로 타이밍 특성 및 Bit Size의 설정에 사용된다.내부적으로는 상수로 사용되어 데이터를 변경할 수 없다.

• Port (예제 line 9~14)o (예제 e 9 )외부와의 인터페이스 정의하며, 입출력 경로를 나타낸다.

• 기타 선언문들을 포함할 수 있다.

Entity 내의 문장(Statement) 내용

• Passive Concurrent Statement (예제 line 16~17)신호 값을 갱신하지 않는 병행 문장을 기술할 수 있다.eg. Concurrent Assertion Statement/Concurrent Procedure call Statement (Passive)

/Process Statement (Passive)

- 14 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 15: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

외부 라이브러리의 재사용

• 참조할 라이브러리 및 패키지 이름을 기술한다. (예제 line 1~2)

1 LIBRARY work;2 USE work.timings.ALL;

3 ENTITYd ff ISD_FF_VEC

3 ENTITY d_ff_vec IS4 GENERIC (5 width : integer := 8;6 setup : time := 10 ns;7 pwidth : time := 50 ns

Din

Load7 pwidth : time := 50 ns8 ) ;9 PORT (10 din : IN bit_vector (width -1 DOWNTO 0) ;11 load : IN bit ;

Clk Dout

11 load : IN bit ;12 clk : IN bit ;13 dout : OUT bit_vector (width -1 DOWNTO 0)14 ) ;15 BEGIN16 ASSERT clk ='1' OR clk 'DELAYED'STABLE( pwidth ) ;17 checkingtiming(setup, din, load, clk) ;18 END d_ff_vec ;

- 15 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 16: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

엔티티 선언

엔티티와 다른 설계 단위와의 구성 관계

Package

Use Clause

EntityArchitecture

Body

Use Entity(Binding)Use Entity(Binding)

Architecture Body

Configuration Entity

- 16 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 17: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

엔티티 선언 내에 정의 가능한 선언 내용

• VHDL’87/93Subprogram Declaration/Subprogram BodyType DeclarationSubtype DeclarationConstant DeclarationSi l D l iSignal DeclarationFile DeclarationAlias DeclarationAttribute Declaration/Attribute SpecificationAttribute Declaration/Attribute SpecificationDisconnection DeclarationUse Clause

• VHDL’93Shared Variable Declaration -- 동작 특성은 보장되지 않는다. (사용 주의)Group Template DeclarationGroup Declaration

• 정의 불가능한 선언

Component Declaration; Configuration Specification

- 17 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 18: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

아키텍쳐 몸체(Architecture Body)아키텍쳐 몸체와 엔티티의 구성 관계

• 하나의 엔티티에 대하여 다수의 아키텍쳐 몸체를 정의할 수 있다• 하나의 엔티티에 대하여 다수의 아키텍쳐 몸체를 정의할 수 있다.

Package I Package II EntityArchitecture

B dPackage I Package II

Use Clausedefault

EntityBody

Architecture Body I

Use Clause

default

Use Entity(Binding)

Entity

Body I

Architecture Body II

- 18 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 19: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

아키텍쳐 몸체 내에 정의 가능한 선언 내용

• VHDL’87/93Subprogram Declaration/Subprogram BodyType DeclarationSubtype DeclarationConstant DeclarationSi l D l iSignal DeclarationFile DeclarationAlias DeclarationComponent DeclarationComponent DeclarationAttribute Declaration/Attribute SpecificationConfiguration SpecificationDisconnection DeclarationUse Clause

• VHDL’93Shared Variable Declaration -- 동작 특성은 보장되지 않는다. (사용 주의)Group Template DeclarationGroup Declaration

- 19 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 20: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

아키텍쳐 몸체

아키텍쳐 몸체 내의 문장 내용

• Concurrent Statements• Concurrent Statements각각의 병행문장은 독립된 프로세스로서 동시 수행되는 단위이다.모델링 방법에 따라서 행위적/구조적/타이밍 모델을 기술한다.엔티티 내의 모든 선언들을 참조할 수 있다.

• VHDL’87/93Block StatementProcess StatementConcurrent Procedure Call StatementConcurrent Assertion StatementConcurrent Signal Assignment StatementComponent Instantiation StatementComponent Instantiation StatementGenerate Statement

- 20 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 21: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현1 LIBRARY ieee ;2 USE ieee.std_logic_1164.ALL34 ENTITY d_ff IS5 PORT (din, clk : IN std_logic;6 dout : BUFFER std logic);

Din

D_FF

BehavioralModeling

6 dout : BUFFER std_logic);7 END d_ff ;

8 ARCHITECTURE behav OF d_ff IS9 BEGIN10 PROCESS (clk, din) ;11 BEGIN

Clk

Dout

Modeling 11 BEGIN12 IF clk’ EVENT AND clk = ‘1’ THEN13 dout <= din ;14 END IF15 END PROCESS16 END behav ;

StructuralModeling

17 ARCHITECTURE struc OF d_ff IS18 SIGNAL sig1, sig2, sig3, sig4 : std_logic ;19 COMPONENT or2 IS20 PORT ( in1, in2 : IN std_logic ;21 out1 : OUT std_logic );22 END COMPONENT22 END COMPONENT ;23 BEGIN24 u11 : or2 USE ENTITY work.ttl_or(behav) 25 PORT MAP (din, clk, sig1) ;26 u2 : inv USE ENTITY work.ttl_inv(behav)27 PORT MAP (din, sig2) ;28 12 2 USE ENTITY k l (b h )28 u12 : or2 USE ENTITY work.ttl_or(behav)29 PORT MAP (sig2, clk, sig3) ;30 u13 : or2 USE ENTITY work.ttl_or(behav)31 PORT MAP (sig1, sig4, dout) ;32 u14 : or2 USE ENTITY work.ttl_or(behav)33 PORT MAP (sig2, dout, sig4) ;

- 21 -광 운 대 학 교전자정보대학

( g g )34 END struc ;

5장. VHDL 설계구성

Page 22: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

구성 선언(Configuration Declaration)전체적인 회로의 구성을 위한 계층적 연결 정보를 표현한다.

구성 선언 내에 정의 가능한 선언 내용

• VHDL’87/93Use ClauseUse ClauseAttribute Specification

• VHDL’93Group Declarationp

구성 선언 내의 문장 내용

• Block ConfigurationBlock Configuration내부 구조를 표현하기 위하여 실제 하위 설계 단위와 컴포넌트와의 구성

관계를 기술한다.아키텍쳐/블록/생성문을 지칭하기위한 표현이다.컴포넌트 구성(Component Configuration)을 내부에 기술한다.컴포넌트와 실제 Entity(Architecture)/Configuration과의 구성 관계를 표현한다.

- 22 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성

Page 23: 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부 4장. vhdl 개요 5장. vhdl 설계설계 구성구성 6장. vhdl 객체및타입

계층적 표현

LIBRARY ttl;

CONFIGURATION config OF system IS

FOR t t bl k fi ti ( hit t )

system(struct)

FOR struct -- block configuration (architecture)

FOR u1 : alu -- component configuration

USE CONFIGURAITON ttl.sn74ls181 ;

END FOR;U21 : MUX

FOR u21, u22, u23 : mux

USE ENTITY work.multiplex (behav);

END FOR;

FOR ALL : l t h

U1 : ALU

U22 : MUX

U31: LATCH

FOR ALL : latch

-- DEFAULT BINDING

END FOR;

END FOR;

U23 : MUX

U32: LATCH

END;config

- 23 -광 운 대 학 교전자정보대학

5장. VHDL 설계구성