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

Preview:

Citation preview

II. VHDL 설계부

4장. VHDL 개요

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

6장. VHDL 객체 및 타입

7장. VHDL 모델링

8장. VHDL 구문과 예제

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

VHDL 소개

VHDL 특성

구 분 VHDL C구 분 VHDL C

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

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

타이밍객체

객체 및 타입

타이밍객체

다양한 자료형

자료형의 범위 및 제약

자료형의 속성

단순 자료형

단순 리터럴

다양한 리터럴

연산자의 다중 정의

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

선언영역 및

가시성

선언 영역의 계층성

선언 영역의 중첩

선택적 선언 영역의 확장

동형 이의어의 선택

블록 구조언어의

선언영역 및 가시성

동형 이의어의 선택

하드웨어

모델링

행위/타이밍/구조기술

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

기술 순차문

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

5장. VHDL 설계구성

계층적 표현

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

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

설계 라이브러리

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

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

패키지 선언

(Package Declaration)/패키지 몸체

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

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

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

(Entity Declaration) 계 단위이다.

아키텍쳐 몸체

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

구성 선언

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

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

5장. VHDL 설계구성

계층적 표현

설계 단위(Design Unit)

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

(Primary Unit)보조단위

(Secondary Unit)

공유정보Package Declaration

공유 선언 정보

Package Body비공유 선언 정보

하드웨어

동작/구조

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

Architecture Body내부 동작 및 구조 정보

하드웨어

구성정보

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

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

5장. 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 설계구성

계층적 표현

설계 라이브러리(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 설계구성

계층적 표현

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 설계구성

계층적 표현

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

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

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

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

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

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

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

5장. 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 설계구성

계층적 표현

패키지 선언 및 패키지 몸체

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 설계구성

계층적 표현

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

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 설계구성

계층적 표현

패키지 선언 및 패키지 몸체

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

• 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 설계구성

계층적 표현

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

• 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 설계구성

계층적 표현

엔티티 선언(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 설계구성

계층적 표현

외부 라이브러리의 재사용

• 참조할 라이브러리 및 패키지 이름을 기술한다. (예제 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 설계구성

계층적 표현

엔티티 선언

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

Package

Use Clause

EntityArchitecture

Body

Use Entity(Binding)Use Entity(Binding)

Architecture Body

Configuration Entity

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

5장. 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 설계구성

계층적 표현

아키텍쳐 몸체(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 설계구성

계층적 표현

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

• 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 설계구성

계층적 표현

아키텍쳐 몸체

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

• 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 설계구성

계층적 표현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 설계구성

계층적 표현

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

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

• VHDL’87/93Use ClauseUse ClauseAttribute Specification

• VHDL’93Group Declarationp

구성 선언 내의 문장 내용

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

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

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

5장. 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 설계구성

Recommended