6 . vhdl 객체및타입pds4.egloos.com/pds/200704/11/49/ch6.pdf · 2007-04-11 · ii. vhdl...

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

Upload: others

Post on 26-Jan-2020

7 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 6 . VHDL 객체및타입pds4.egloos.com/pds/200704/11/49/ch6.pdf · 2007-04-11 · 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: 6 . VHDL 객체및타입pds4.egloos.com/pds/200704/11/49/ch6.pdf · 2007-04-11 · ii. vhdl 설계부 4장. vhdl 개요 5장 . vhdl 설계설계 구성구성 6장.vhdl 객체및타입

객체 및 타입

어휘 요소 식별자, 리터럴, 예약어, 구분자로 구분되어 지며, 식별자와 예약어의 경우

(Lexical Elements) , , , ,

대소문자의 구별이 없다.

객체

(Objects)데이터를 저장하기 위한 기억 장소를 나타내며, 상수/변수(파일)/신호의 종류가 있다.(Objects) 류가 있다.

타입

(Type) 객체들의 데이터 유형을 선언하여 값의 종류와 특성을 정의한다.

속성

(Attribute) 객체의 추가 정보 및 상태를 표현한다.정의된 속성과 사용자 정의 속성으로 구분된다.

연산자 연산문에서 사용되는 연산 기호로써 피연산자를 입력으로 결과를 출력하연산자

(Operator) 연산문에서 사용되는 연산 기호로써, 피연산자를 입력으로 결과를 출력하는 함수의 역할을 수행한다.

서브프로그램 반복되는 연산 과정 및 수행 절차를 간소화하기 위한 표현 방법으로써, 연산

(Subprogram) 계산 과정은 함수로 나타내며 수행 절차 과정은 프로시쥬어로 기술한다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

어휘 요소(Lexical Elements)어휘 요소의 종류• 식별자(Identifier) 리터럴(Literal) 예약어(Reserved Word) 구분자(Delimiter)• 식별자(Identifier), 리터럴(Literal), 예약어(Reserved Word), 구분자(Delimiter)

대소문자에 대한 구별이 없다.• VHDL Vhdl vhdl : 모두 동일한 이름으로 간주된다• VHDL, Vhdl, vhdl : 모두 동일한 이름으로 간주된다.• VHDL’93의 경우 Extended_Identifier는 대소문자 구별이 가능하다.

주석(comment)는 Double Dash( )로 표시되며 한 줄을 주석화 한다주석(comment)는 Double Dash(--)로 표시되며, 한 줄을 주석화 한다.

선언/문장 단위는 Semicolon(;)으로 구분된다.

모든 선언들은 지역적(Local) 유효 영역(Scope)을 갖는다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

Identifier ExtendedIdentifier

ReservedWord Delimiter

D FF /VHDL/ ENTITY :=D_FFU123

pentium

/VHDL//vhdl//Vhdl/

ENTITYOF

END

:=<=;

D i l Ch Ph i l B dDecimalLiteral

CharacterLiteral

PhysicalLiteral

BasedLiteral

123 ‘A’ 30 2#1011#E22e-212.34_56

‘#’‘a’

30 ns100 pf

2#1011#E216#EF.0A#

Bit StringBit StringLiteral String Literal

B “1010_0101”X“ABCDEF”

O “7654_3210”“Warning !!”

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

6장. VHDL 객체 및 타입

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

객체 및 타입

객체(Objects)데이터를 저장하기 위한 기억 장소

객체의 분류• 상수(Constant)

고정된 데이터를 기록하는 객체로 병행문/순차문에서 사용 가능하다고정된 데이터를 기록하는 객체로 병행문/순차문에서 사용 가능하다.• 변수(Variable)

가변적인 데이터를 기록하는 객체로 순차문에서만 사용 가능하며, 여러

프로세스에서 공유할 수 없다.Shared Variable의 경우 여러 프로세스에서 공유할 수 있으나, 값의 변화에

대한 처리 방법은 정하지 않았다.다수의 프로세스에서 순차적으로 사용하도록 설계해야 한다.

• 파일(File)파일 처리를 위한 변수 객체이다.

신호(Si l)• 신호(Signal)시간에 따른 데이터의 변화를 나타낼 수 있는 객체로 병행문/순차문에서 사용

가능하다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

Object Constant Signal Variable FileObject Constant Signal Variable File

데이터 변경

X O O O변경 X O O O

타이밍 정보

X O X X 정보

Entity Architecture Package Entity

Entity Architecture Package선언

영역

PackagePackage BodyBlock Process

yArchitecture Package Block

Process Subprogram

PackagePackage BodyBlock ProcessProcess

Subprogram ProcessSubprogram

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

6장. VHDL 객체 및 타입

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

객체 및 타입

객체

VHDL 표현• 상수 선언(Constant Declaration)• 상수 선언(Constant Declaration)

초기값을 설정해 주어야 한다.

CONSTANT con : bit := ‘0’;

초기값이 없는 상수 선언은 deferred constant로 구분된다.패키지 선언에서만 가능하며, 초기값은 패키지 몸체에서 정의한다.

변수 선언(V i bl D l i )• 변수 선언(Variable Declaration)

VARIABLE var : bit ;

VARIABLE temp reg : integer := 100;

초기값이 없는 경우 default value로 설정된다.

VARIABLE temp, reg : integer : 100;

SHARED VARIABLE stemp, sreg : integer := 100;

Default Value해당 타입의 최소값을 나타낸다. (type_name’LEFT)Shared Variable의 선언 형식은 변수 선언과 동일하다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

• 파일 선언(File Declaration)FILE input : text OPEN read_mode IS “STD_INPUT”;

READ_MODE/WRITE_MODE/APPEND_MODE 형식으로 파일을 처리한다.

• 신호 선언(Signal Declaration)

초기값이 없는 경우 default value로 설정된다.

SIGNAL sig : bit_vector(7 DOWNTO 0) := “00001111”;

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

6장. VHDL 객체 및 타입

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

객체 및 타입

포트(Port) 및 신호(Signal) 포트의 특성• 외부와의 연결 통로/핀의 개념을 갖는다• 외부와의 연결 통로/핀의 개념을 갖는다.• 신호 객체로 분류된다.

포트의 방향성(Mode)입출력 방향을 정의한다• 입출력 방향을 정의한다.

IN : 외부에서 포트로 입력된다.OUT : 포트에서 외부로 출력된다.INOUT : 외부에서 포트로 입출력된다INOUT : 외부에서 포트로 입출력된다.BUFFER : 포트에서 외부로 출력되며, 내부에서 포트의 값을 참조할 수 있다.LINKAGE : VHDL 이외의 설계 데이터와 연결할 경우에 사용된다.

입력 모드(IN) 출력 모드(OUT)

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

입출력 모드(INOUT) 버퍼 모드(BUFFER)

6장. VHDL 객체 및 타입

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

객체 및 타입

포트 및 신호신호 구동 메커니즘• 구동기(Driver) ( )

시뮬레이션 과정에서 신호 객체를 모델링하기 위하여 도입된 개념

구동기는 지연되는 시간동안 신호의 예상 출력 결과를 유지하기 위한

객체이다.구동기는 신호의 데이터를 갱신하는 프로세스마다 독립적으로 관리되며구동기는 신호의 데이터를 갱신하는 프로세스마다 독립적으로 관리되며,시뮬레이션 관리자(Kernel)가 개별적인 구동기들을 중재하여 신호의

데이터를 변경한다.각각의 프로세스 및 신호에서 발생되는 출력 예정 파형(Projected Output Waveform)이다.

시뮬레이션에서의 신호 구동 메커니즘E tSi lR l ti PP D i

11

EventSignal

SignalResolutionfunction

ProcessesProcesses Drivers

1

• • • •

N MN

St≠St-1

ƒ S E

• •

• •

• •

• •- 10 -광 운 대 학 교

전자정보대학

시뮬레이션 수행 사이클 루틴 @ t스케줄링

6장. VHDL 객체 및 타입

스케쥴링 시뮬레이션 수행 사이클 루틴 @t

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

객체 및 타입

신호의 종류• 분해 신호(Resolved Signal)

여러 개의 입력 신호들과 연결되어 있을 때 신호의 값을 결정할 수 있는 기능을 갖고 있다.드라이버들에 대한 중재 방법이 정의된 신호

감시 대상 신호(G d d Si l)• 감시 대상 신호(Guarded Signal)GUARD 조건을 만족하는 경우만 감시 대상 신호의 값을 갱신할 수 있으며,조건을 만족하지 못한 경우에는 신호의 값을 갱신할 수 없다. 연결이 해제되었을 경우에 대한 처리 방법이 정의된 신호 블록문에서만 사용가능 하다연결이 해제되었을 경우에 대한 처리 방법이 정의된 신호 블록문에서만 사용가능 하다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

포트 및 신호

분해 신호의 정의• 분해 기능은 분해함수(Resolution Function)을 이용하여 정의한다• 분해 기능은 분해함수(Resolution Function)을 이용하여 정의한다.

신호 선언문에 분해 기능을 정의한다.분해 기능을 타입에 추가한 종속타입으로써 정의된다.

• 분해 함수의 형태분해 함수의 형태

입력 구동기들은 1차원 배열형이며 출력은 배열형의 인자(Element)로 정의

• 분해 신호를 위한 지원 타입은 STD_LOGIC/STD_LOGIC_VECTOR가 있다.

분해 신호의 모델

Driver A

Driver B

Resolved Signal

Driver C

ResolutionFunction

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

6장. VHDL 객체 및 타입

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

객체 및 타입

분해 신호의 선언

FUNCTION l d ( td l i t ) RETURN td l iFUNCTION resolved ( s : std_ulogic_vector ) RETURN std_ulogic;-- resolution function 선언

SUBTYPE std_logic IS resolved std_ulogic; -- resolved type 선언-- resolved type 선언

SIGNAL resol1 : resolved std_ulogic; -- resolution function을 이용한 resolved signal 선언이용 g

SIGNAL resol2 : std_logic;-- resolved type을 이용한 resolved signal 선언

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

6장. VHDL 객체 및 타입

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

객체 및 타입

포트 및 신호감시 대상 신호의 정의• 신호 선언문에 BUS나 REGISTER로 신호 종류를 정의한다.

감시 대상 신호의 분류• Register

Register 종류 신호의 모든 구동기 리스트들이 연결 해제된 경우에는 분해 함수(Resolution Function)가 호출되지 않는다(Resolution Function)가 호출되지 않는다. 모든 연결이 해제된 경우에 이전 값을 유지하는 레지스터 개념이다.

• BusBus 종류 신호의 모든 구동기 리스트들이 연결 해제된 경우에는 분해함수(Resolution Function)가 호출되어 결정한 값을 신호의 값으로 반영한다.모든 연결이 해제된 경우에 상태를 알 수 없는 3-state 버퍼의 개념이다.Bus의 상태를 알 수 없는 High Impedance를 방지하기 위하여 Pull-up/Pull-down개념을 분해 함수를 통해서 표현한다.

guardedsignal

guardedsignal

resolutionfunction

D Q

resolutionfunction

GUARD

register

GUARD IE

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

function

BUS signalREGISTER signal

6장. VHDL 객체 및 타입

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

객체 및 타입

감시 대상 신호의 선언• Port : Bus만 사용할 수 있다.

in1 in2 : IN std logic BUS := ‘0’ ;

• Signal : Bus/Register를 사용할 수 있다.

in1, in2 : IN std_logic BUS := 0 ;

SIGNAL reg1, reg2 : std_logic BUS := ‘0’;

SIGNAL reg3, reg4 : std_logic REGISTER := ‘0’;

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

6장. VHDL 객체 및 타입

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

객체 및 타입

타입(Types)모든 객체의 데이터 유형을 엄격하게 선언한다.

값의 종류 및 특성(eg 범위 색인 범위 종속관계) 등을 정의한다값의 종류 및 특성(eg. 범위, 색인 범위, 종속관계) 등을 정의한다.

타입의 종류

basetype subtypeBit

Booleanbasetype(기본타입)

subtype(종속타입)

BooleanSeverity_level

Sidestd_logic

std_logicX01

X01ZUX01

Vit lT iti T

Enumeration

UX01ZVitalTransitionTypeVitalTableSymbolType

Time VitalDelayTypePhysicalScalar

PositiveNatural Width

Integeratu a Width

Universal_integerReal

Universal_real

Array

StringBit_vector

Std_ulogic_vector VitalOutputMapTypeStd_logic_vector

Type

유형 분류Composite VitalDelayArrayType

VitalPeriodDataTypeVitalPathType

RecordTextLine

FileA

유형 분류

내재된 선언

Standard Pkg. 정의

Textio Pkg. 정의

Std_logic_1164 Pkg. 정의

Vital Timing Pkg 정의

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

LineVitalTimeArrayType

Access Vital_Timing Pkg. 정의

6장. VHDL 객체 및 타입

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

객체 및 타입

타입의 선언

사용 가능한 선언 지역• 구성 선언(Configuration Declaration)을 제외한 모든 선언 영역• 구성 선언(Configuration Declaration)을 제외한 모든 선언 영역

VHDL 표현정수형 TYPE integer IS RANGE -2147482648 TO 2147483647 ;실수형 TYPE real IS RANGE -1.0E38 TO 1.0E38 ;;열거형 TYPE bit IS (‘0’, ‘1’);물리형 TYPE resistance IS RANGE 1 TO 1E10

UNITSohm;;kohm = 1000 ohm;mohm = 1000 kohm;

END UNITS;레코드형 TYPE date IS RECORD레코드형 TYPE date IS RECORD

hour : integer RANGE 0 TO 23;min : integer RANGE 0 TO 59;sec : integer RANGE 0 TO 59;

END RECORD;END RECORD;배열형 TYPE memory IS ARRAY (0 TO 255, 7 DOWNTO 0) OF bit;

TYPE bit_vector IS ARRAY( natural RANGE <>) OF bit;참조형 TYPE pointer IS ACCESS integer;파일형 TYPE bit file IS FILE OF bit;

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

파일형 TYPE bit_file IS FILE OF bit;

6장. VHDL 객체 및 타입

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

객체 및 타입

종속타입(subtype)의 선언이미 선언된 기본타입(basetype)을 이용하여 새로운 타입을 정의한다.

기본타입에 대한 분해 함수(resolution function) 기능을 추가할 수 있다.기본타입에 대한 분해 함수(resolution function) 기능을 추가할 수 있다.• 참조(Access) 타입과 파일(File) 타입은 제외

종속타입의 구분• Unconstrained Subtypeyp

기본타입의 특성을 그대로 유지한다.• Constrained Subtype

기본타입에 대한 제약 정보를 추가한다.

사용 가능한 선언 지역사용 가능한 선언 지역• 구성 선언(Configuration Declaration)을 제외한 모든 선언 영역

VHDL 표현

SUBTYPE int IS integer ; -- unconstrained subtype

SUBTYPE float IS real RANGE -1.0E10 TO 1.0E10 ; -- constrained range

SUBTYPE td l i IS l d td l i l d btSUBTYPE std_logic IS resolved std_ulogic; -- resolved subtype

SUBTYPE eight_bits_vector IS bit_vector(7 DOWNTO 0); -- constrained index-range

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

6장. VHDL 객체 및 타입

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

객체 및 타입

타입의 이용

이름 표기법• 단순 이름(simple name)• 단순 이름(simple name)

식별자를 이용한 객체 지칭 방법

VARIABLE simple : integer ;

• 선택 이름(selected name)

simple := 100 ;

( )레코드의 인자를 나타내기 위한 객체 지칭 방법

VARIABLE selected : date ;

l d h 10

• 색인 이름(indexed name)

selected.hour := 10 ;

배열의 인자(element)를 나타내기 위한 객체 지칭 방법

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

6장. VHDL 객체 및 타입

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

객체 및 타입

• 슬라이스 이름(slice name)1차원 배열에서 연속된 인자들의 열(sequence)을 나타내기 위한 객체 지칭 방법

SIGNAL indexed slice : bit vector(7 DOWNTO 0 );SIGNAL indexed , slice : bit_vector(7 DOWNTO 0 );

indexed(0) := ‘0’; -- 색인 이름

slice(3 DOWNTO 0) := “0001”; -- 슬라이스 이름

• 속성 이름(attribute name)객체의 속성을 나타내기 위한 지칭 방법

SIGNAL reg : std_logic ;

SIGNAL target : boolean ;

target <= reg’EVENT ;

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

6장. VHDL 객체 및 타입

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

객체 및 타입

특별한 타입들 (합성 대상 설계에서는 사용불가!!)

참조형(Access)• 소프트웨어 개발 언어의 포인터와 같은 개념을 표현한다• 소프트웨어 개발 언어의 포인터와 같은 개념을 표현한다.• 동적 메모리 할당을 위하여 할당 함수 new를 사용한다.• 참조 타입을 선언하면 할당된 메모리를 소멸하는 Deallocate 프로시저가 자동적으

로 선언된다로 선언된다.• 합성되지 않는 소프트웨어 모델링 방법이다.

TYPE int IS ACCESS integer ;

VARIABLE start : int := NEW integer’(100); -- start : 100

VARIABLE finish : int = start; -- start : 100, finish : start’s value = 100

Deallocate(start); -- start : null, finish : start’s value = null

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

6장. VHDL 객체 및 타입

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

객체 및 타입

파일형(File)

• 외부 환경과의 입출력을 위해서 사용된다외부 환경과의 입출력을 위해서 사용된다.• 합성되지 않는 소프트웨어 모델링 방법이다.• 파일 타입을 선언하면 해당 파일 타입의 FILE_OPEN/FILE_CLOSE/READ/WRITE

프로시저와 ENDFILE 함수가 자동 선언된다. (LRM 정의)시저와 수가 자동 다 ( 정의)• 합성되지 않는 소프트웨어 모델링 방법이다.

시뮬레이션 입력 데이터 및 출력 결과 저장등에 이용된다.

TYPE text IS FILE OF line ;

FILE fptr : text OPEN read_mode IS “stimulus.dat”;

VARIABLE buffer : line; -- 파일의 데이터를 저장하기 위한 변수 선언VARIABLE buffer : line; -- 파일의 데이터를 저장하기 위한 변수 선언

Read(fptr, buffer); -- fptr 파일의 데이터를 읽어서 buffer에 저장함

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

6장. VHDL 객체 및 타입

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

객체 및 타입

특별한 타입들 (합성 대상 설계에서는 사용불가!!)

미정의형(Incomplete Type)• 이름만 타입으로 선언 하며 이에 대한 제약 정보(값의 범위/색인 범위 등)는 나중• 이름만 타입으로 선언 하며, 이에 대한 제약 정보(값의 범위/색인 범위 등)는 나중

에 재선언하여 사용한다.• 일반적으로 참조형과 같이 사용된다.

TYPE ll i l t t d l tiTYPE cell ; -- incomplete type declaration

TYPE link IS ACCESS cell;

TYPE cell IS RECORD -- full type declarationyp

val : integer;

suc : link;

pre : link;

END RECORD;

VARIABLE head : link := NEW cell’(0, NULL, NULL);

VARIABLE next node : link := head.suc;

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

_ ;

6장. VHDL 객체 및 타입

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

객체 및 타입

속성(Attribute)객체에 대한 추가 정보 및 상태를 표현한다.

속성의 분류속성의 분류• 정의된 속성(Pre-defined Attribute)

상수/변수/범위/함수/타입 유형의 정보를 표현한다.모든 선언들은 정의된 속성을 내부적으로 소유하게 된다모든 선언들은 정의된 속성을 내부적으로 소유하게 된다.

• 사용자 정의 속성(User-defined Attribute)상수 정보를 갖는 속성을 정의할 수 있다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

타입에 대하여 정의된 속성T’BASE T의 base-type을 나타낸다.

T’LEFT T의 왼쪽 경계(left bound)를 나타낸다.

T’RIGHT T의 오른쪽 경계(right bound)를 나타낸다.

T’HIGH T의 가장 큰 값 즉 위쪽 경계(high bound)를 나타낸다.

T’LOW T의 가장 작은 값 즉 아래쪽 경계(low bound)를 나타낸다.( )

T’POS(X) T에서 X의 위치를 값으로 나타낸다.

T’VAL(X) T에서 X로 주어진 위치에 있는 값을 나타낸다.

T’SUCC(X) T에서 X보다 하나 큰 위치에 있는 값을 나타낸다.( )

T’PRED(X) T에서 X보다 하나 작은 위치에 있는 값을 나타낸다.

T’LEFTOF(X) T에서 X보다 하나 왼쪽에 있는 값을 나타낸다.

T’RIGHTOF(X) T에서 X보다 하나 오른쪽에 있는 값을 나타낸다.

타입 속성의 예

TYPE nine IS (‘0’, ‘1’, ‘X’, ‘Z’, ‘-’, ‘H’, ‘L’, ‘T’, ‘F’ );

T RIGHTOF(X) 에서 다 하나 쪽에 있 나타 다

SUBTYPE t IS nine;

t’BASE : nine 타입 t’BASE’LEFT : nine 타입의 ‘0’ 리터럴

타입의 ‘ 리터럴

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

nine’POS(‘X’) : integer 3 nine’VAL(9) : nine 타입의 ‘F’ 리터럴

6장. VHDL 객체 및 타입

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

객체 및 타입

속성배열형 객체에 대하여 정의된 속성• 다차원 배열의 경우 합성이 지원되지 않는 툴들이 많다.• 배열형의 상수/신호/변수 모두 배열형에 정의된 속성을 사용할 수 있다.• 가변적인 Bit Size인 경우 LENGTH 속성을 사용하면 재설계의 부담을 덜 수 있다.

A’LEFT[(N)]N은 선택적이며 없을 경우(default)에는 1로 간주

A’LEFT[(N)]( )

이 속성은 N번째 색인의 왼쪽 배열 경계를 표현한다

A’RIGHT[(N)]N은 선택적이며 없을 경우(default)에는 1로 간주

이 속성은 N번째 색인의 오른쪽 배열 경계를 표현한다.

A’HIGH[(N)]N은 선택적이며 없을 경우(default)에는 1로 간주

이 속성은 N번째 색인의 가장 큰 배열 경계를 표현한다.

A’LOW[(N)]N은 선택적이며 없을 경우(default)에는 1로 간주

이 속성은 N번째 색인의 가장 작은 배열 경계를 표현한다( )

이 속성은 N번째 색인의 가장 작은 배열 경계를 표현한다.

A’RANGE[(N)]N은 선택적이며 없을 경우(default)에는 1로 간주

이 속성은 N번째 색인의 범위를 표현한다.

N은 선택적이며 없을 경우(default)에는 1로 간주A’REVERSE_RANGE[(N)]

N은 선택적이며 없을 경우(default)에는 1로 간주

이 속성은 N번째 색인 범위의 역을 표현한다.

A’LENGTH[(N)]N은 선택적이며 없을 경우(default)에는 1로 간주

이 속성은 N번째 색인에 있는 값의 수를 표현한다.

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

6장. VHDL 객체 및 타입

* [(N)] : (N)은 생략 가능함

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

객체 및 타입

배열 속성의 예

VARIABLE reg : bit_vector(7 DOWNTO 0);

sum’LEFT(1) : 7 -- 1차원 색인의 Left 경계 값

sum’RANGE : 7 DOWNTO 0 -- 1차원 색인 범위

차원 색인 범위의 반전sum’REVERSE_RANGE : 0 TO 7 -- 1차원 색인 범위의 반전

sum’LENGTH : 8 -- 1차원 색인 구간의 길이

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

6장. VHDL 객체 및 타입

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

객체 및 타입

속성신호에 대하여 정의된 속성• DELAYED/STABLE/QUIET/TRANSACTION 속성은 신호 객체이다.Q• 나머지 신호 속성은 함수이다.

S’DELAYED[(T)]Time타입을 가지는 T가 없을 경우에는 0ns로 간주

S가 시간 T만큼 지연된 신호가 되도록 나타낸다

S’STABLE[(T)] Time타입을 가지는 T가 없을 경우에는 0ns로 간주Event가 발생한 후 T 시간동안 FALSE가 되고, 이후 시간에는 TRUE를 표시.

S’QUIET[(T)]Time타입을 가지는 T는 경우에는 0ns로 간주

Active가 발생한 후 T 시간동안 FALSE가 되고, 이후 시간에는 TRUE를 표시.

S’TRANSACTION Bit 형으로서 Active가 일어날 때마다 결과가 반전된다.

S’EVENT Event가 있으면 TRUE, 아니면 FALSE를 표시한다.

S’ACTIVE 현재의 시뮬레이션 사이클 동안에 갱신의 유무를 나타낸다.

S’LAST EVENT 마지막으로 Event가 발생한 이후 경과한 시간을 나타낸다._

S’LAST_ACTIVE 마지막으로 트랜잭션이 일어난 이후 경과한 시간을 나타낸다

S’LAST_VALUE S의 값이 마지막으로 변하기 이전 값을 나타낸다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

• Active새로운 값으로 갱신되는 경우를 의미한다.값의 변화가 없어도 해당된다.

Event• Event새로운 값으로 갱신되어 값의 변화가 발생된 경우를 의미한다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

속성

신호에 대하여 정의된 속성• 신호 속성의 예• 신호 속성의 예

10, 30, 50 ns에 새로운 값이 신호 S에 입력된 경우

s <= ‘0’ , ‘0’ AFTER 10 ns, ‘1’ AFTER 30 ns, ‘0’ AFTER 50 ns ;

10 ns 30 ns 50 ns 70 ns

Signal S

S'EVENTS V NT

S'STABLE

S'ACTIVE

S'DELAYED(5 ns)

S'TRANSACTION

S'QUIET(5 ns)

5 1510 20 25 0 0105 15 5 10 15 20

S'LAST_VALUE

S'LAST_EVENT

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

5 50 15 20 0 0105 15 5 10 15 20S'LAST_ACTIVE

6장. VHDL 객체 및 타입

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

객체 및 타입

사용자 정의 속성

속성 선언(Attribute Declaration)• 사용자가 새로운 속성을 선언한다• 사용자가 새로운 속성을 선언한다.• 속성의 객체 특성은 상수만 가능하다.

ATTRIBUTE instance : integer ;

속성 명세(Attribute Specification)• 사용자가 정의한 속성을 특정 객체에게 첨가한다.

속성을 부여 받을 수 있는 객체들의 종류• 속성을 부여 받을 수 있는 객체들의 종류

Entity / Architecture / Configuration / PackageProcedure / Function / Type / SubtypeConstant / Signal / Variable / ComponentConstant / Signal / Variable / ComponentLabel / Literal / Units / File / Group

ATTRIBUTE instance OF d_ff : ARCHITECTURE IS 255;

d_ff’instance -- integer 타입의 255를 의미한다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

서브프로그램(Subprogram)절차 함수(Procedure)• 순차적 처리 흐름을 기술한다• 순차적 처리 흐름을 기술한다.• IN 모드의 파라메터는 내부 상수로 간주한다.• BUFFER/INOUT 모드의 파라메터는 내부 변수로 간주한다.

연산 함수(Function)• 연산 과정을 기술한다.

모든 파라메터가 IN 모드로 동작한다• 모든 파라메터가 IN 모드로 동작한다. • 출력 값은 RETURN 문을 통하여 전달된다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

서브프로그램 선언 및 서브프로그램 몸체 선언

FUNCTION "NOT" ( l : std_ulogic ) RETURN ux01;입력은 출력은 타입을 갖는 함수-- 입력은 std_ulogic, 출력은 ux01 타입을 갖는 함수

PROCEDURE proc (l : IN std_uligic ; r : OUT std_ulogic);

-- 서브프로그램 선언

FUNCTION "NOT" ( l : std_ulogic ) RETURN ux01 ISBEGIN

RETURN (not table(l )) ; -- 함수에는Return 문이 있어야 한다.( _ ( )) ; 수에 이 있어야 다END "NOT";

PROCEDURE proc (l : IN std_uligic ; r : OUT std_ulogic ) ISBEGINBEGIN

r := l ;END proc; -- 서브프로그램 몸체 선언

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

6장. VHDL 객체 및 타입

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

객체 및 타입

서브프로그램

서브프로그램의 호출• 서브프로그램을 사용하는 경우 정의된 객체 입출력 종류 및 타입 종류에 일치해야• 서브프로그램을 사용하는 경우 정의된 객체, 입출력 종류 및 타입 종류에 일치해야

한다. (signature 정보)• 서브프로그램의 경우는 다중정의가 가능하다.

동일한 이름을 갖으면서 서로 다른 타입의 파라메터를 사용하는 서브프로그램동 이 갖 서 서 다 타 의 파라메터 사용하 서

들이 선언될 수 있다.

서브프로그램의 다중정의(Overloading)• 동일한 이름의 두 서브프로그램을 선언할 수 있다.• 다중정의된 서브프로그램은 서로 다른 signature 정보를 가져야 한다.• 동일한 signature 정보를 갖는 경우는 중복 오류에 해당된다.

타입이 기본타입과 종속타입 관계이면 동일한 타입으로 간주된다.• 연산자(Operator)의 경우도 다중정의가 가능하다.• Signature 정보

파라메터의 갯수 및 위치, 이름

파라메터의 타입

함수의 경우는 결과 타입

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

6장. VHDL 객체 및 타입

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

객체 및 타입

다중정의의 예

FUNCTION "NOT" ( l : td l i ) RETURN td l i ; 1FUNCTION "NOT" ( l : std_ulogic ) RETURN std_ulogic ; -- 1FUNCTION "NOT" ( l : bit ) RETURN bit ; -- 2

PROCEDURE (l IN td l i OUT td l i ) 3PROCEDURE proc (l : IN std_ulogic ; r : OUT std_ulogic ) ; -- 3PROCEDURE proc (l : IN bit ; r : OUT bit ) ; -- 4

VARIABLE a, b, c : std_ulogic;b := NOT a; -- 1 연산자 호출

시저 출proc(b, c); -- 3 프로시저 호출

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

6장. VHDL 객체 및 타입

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

객체 및 타입

연산자(Operator)기본 연산자 종류

구분 종류 우선순위구분 종류 우선순위

논리 연산자 and, or, nand, nor, xor 6 관계 연산자 =, /=, <, <=, >, >= 5

가감산 연산자 +, -, & 4 부호 + - 3

추가 VHDL 연산자(VHDL’93)

부호 +, - 3승제산 연산자 *, /, mod, rem 2 기타 연산자 **, abs, not 1

추가 VHDL 연산자(VHDL 93)• 논리 연산자

xnor 연산자가 추가되었다.• Shift 연산자

우선 순위는 논리 연산자보다는 높고 관계 연산자보다는 낮다.SLL

SRL

--Shift Left Logical

--Shift Right Logical

SLA

SRA

ROL

ROR

--Shift Left Arithmetic

--Shift Right Arithmetic

--Rotate Left Logical

--Rotate Right Logical

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

ROR Rotate Right Logical

6장. VHDL 객체 및 타입

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

객체 및 타입

연산자의 특성

• 우 결합 법칙

같은 순위를 가진 연산자들인 경우 왼쪽에서 오른쪽의 순으로 수행된다.

우선순위를 바꾸고자 하는 경우 괄호를 사용된다

z := a + b + c ; -- (1) a+b (2) (1)의 결과 + c

우선순위를 바꾸고자 하는 경우 괄호를 사용된다.

z := a + (b + c) ; -- (1) b + c (2) a + (1)의 결과

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

6장. VHDL 객체 및 타입

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

객체 및 타입

연산자

연산자의 특성

• + - 는 가감산 연산자와 부호로 사용된다• +, 는 가감산 연산자와 부호로 사용된다.

NOT은 논리 연산자이지만 우선순위가 다른 연산자보다 높다

z := (-a) - b ; -- (1) -a : 부호 (2) - b : 가감산 연산자

• NOT은 논리 연산자이지만 우선순위가 다른 연산자보다 높다.

z := a XOR NOT b ; -- (1) not b (2) a xor (1)의 결과

• 논리 연산자의 경우 두 피연산자의 타입이 같아야 하며, 연속적인 사용에 제한이있으므로 괄호를 사용해야 한다.

z := a AND b AND c ; -- illegal; gz := ( a AND b ) AND c ; -- legal

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

6장. VHDL 객체 및 타입

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

객체 및 타입

• AND, OR, NAND, NOR는 Short Circuit 연산을 수행한다.

z := a AND b;-- a가 ‘0’ 인 경우 b 값에 상관 없이 결과는 ‘0’이다a가 0 인 경우 b 값에 상관 없이 결과는 0 이다.-- 이와 같이 왼쪽에서 오른쪽 순으로 처리가 진행됨에 따라서-- 왼쪽 피연산자만으로 결과가 결정되는 연산을 Short Circuit -- 연산이라 한다.

a='0' a='0'

AND

z='0' a='0' a='0'

XOR

z='1'a='0'

XOR

b='1'

• 연산자의 다중정의에 따라서 피연산자의 타입에 의한 다른 연산 함수의 호출이

Short Circuit 연산 일반 연산

• 연산자의 다중정의에 따라서 피연산자의 타입에 의한 다른 연산 함수의 호출이발생할 수 있다.

• 입력 b가 ‘X’일 경우 결과가 다르다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

분해 함수(Resolution Function)분해 함수의 특징• 다수의 입력 신호에 대한 결과 값을 결정하기 위하여 정의한다• 다수의 입력 신호에 대한 결과 값을 결정하기 위하여 정의한다.• 입력은 1차원 무제한 배열형만 가능하다. 출력은 배열형 요소(Element)의 타입으로

부터 결정된다.• 시뮬레이션 주기(Cycle)에서 내부적으로 해당 신호가 활성(Active)되면 자동으로시뮬레이션 주기(Cycle)에서 내부적으로 해당 신호가 활성(Active)되면 자동으로

호출되어 신호의 값을 갱신 과정에 사용된다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

분해 함수의 예

FUNCTION wired_or (inputs : bit_vector ) RETURN bit ISCONSTANT floatvalue : bit = ‘0’;CONSTANT floatvalue : bit 0 ;

BEGINIF inputs’LENGTH = 0 THEN

-- THIS IS A BUS WHOSE ALL DRIVERS ARE OFFRETURN floatvalue ;RETURN floatvalue ;

ELSEFOR i IN inputs’RANGE LOOP

IF inputs(i) = ‘1’ THENRETURN ‘1’;RETURN 1 ;

END IF;END LOOP;RETURN ‘0’;

END IF;

• 입력이 존재하지 않을 경우는 floatvalue를 출력한다

END IF;END wired_or ;

• 입력이 존재하지 않을 경우는 floatvalue를 출력한다.• 다수 입력의 경우는 입력 값 중에서 하나만이라도 ‘1’이면 ‘1’을 출력한다.• 모든 입력이 ‘0’인 경우는 ‘0’을 출력한다.

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

6장. VHDL 객체 및 타입

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

객체 및 타입

분해 함수의 예

SIGNAL line: wired_or bit;

BEGINP1: PROCESSBEGIN

line <= ‘1’;line < 1 ;END PROCESS;

P2: PROCESSBEGINBEGIN

line <= ‘0’;END PROCESS;

END Example ;

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

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

객체 및 타입

단축 이름 달기(Alias Declaration: VHDL’93)객체 단축 이름

VARIABLE d bi ( 0 TO 31)VARIABLE data : bit_vector( 0 TO 31);ALIAS mantissa : bit_vector(23 DOWNTO 0) IS data( 8 TO 31);

mantissa := “000011110000111100001111” ;

비객체 단축 이름

mantissa : 000011110000111100001111 ;-- data(8 TO 31) := “111100001111000011110000” (동일 표현)

ALIAS std_bit IS std.standard.bit ;

VARIABLE reg : std bit := ‘1’ ;VARIABLE reg : std_bit : 1 ;-- VARIABLE reg : bit := ‘1’ (동일 표현)

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

6장. VHDL 객체 및 타입

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

객체 및 타입

그룹(Group : VHDL’93)특성한 객체들의 집합을 간편하게 기술하기 위해서 이용한다.

그룹 예제 선언(Group Template Declaration)• 그룹을 형성 할 수 있는 객체들의 종류

E i / A hi / C fi i / P k / P d / F i /Entity / Architecture / Configuration / Package / Procedure / Function / Type / Subtype / Constant / Signal / Variable / Component Label / Literal / Units / File / Group

그룹 선언(Group Declaration)

GROUP pin2pin IS (SIGNAL, SIGNAL) ;

그룹 선언(Group Declaration)

GROUP c2q : pin2pin (clk, dout ) ;

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

6장. VHDL 객체 및 타입

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

선언영역 및 가시성

선언 영역(Declarative Region)선언 영역의 종류• 설계 단위(Design Unit)• 설계 단위(Design Unit)• 블록 문/프로세스 문/생성 문

• 컴포넌트 선언/레코드 타입 선언

• 서브프로그램 선언 및 서브프로그램 몸체• 서브프로그램 선언 및 서브프로그램 몸체

• 반복 제어문

선언 영역의 의미선언 영역의 의미• 타입 및 객체, 속성 등의 선언이 가능하다.• 선언된 내용에 대한 유효 범위를 형성하게 된다.

선언 영역은 하위 선언 영역을 내포할 수 있다• 선언 영역은 하위 선언 영역을 내포할 수 있다.

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

6장. VHDL 객체 및 타입

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

선언영역 및 가시성

Declarative Region

Entity Package Configuration

Architecture body Package body

Block Statement

ProcessStatement

ComponentDeclaration

GenerateStatement

SubprogramDeclaration

SubprogramBody

Use

use entity/configuration

Body

Record TypeDeclarationLoop Statement

hierarchicalRegion

block configuration

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

6장. VHDL 객체 및 타입

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

선언영역 및 가시성

선언 영역

선언 영역의 확장• Default 확장• Default 확장

상위 선언 영역에 내포된 하위 선언 영역은 유효범위를 상위 선언 영역까지

확장한다.현재 선언 영역을 내포한 모든 상위 선언 영역은 선언 영역으로 확장된다.

• USE 문에 의한 확장

USE 문을 사용한 패키지 확장

USE 문 사용 가능 지역

상위 선언 지역이 이용한 패키지는 자동으로 하위 지역으로도 확장된다.패키지 선언/엔티티 선언/구성 선언/패키지 몸체/아키텍쳐 몸체/블록문/프로세스문프로세스문 .

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

6장. VHDL 객체 및 타입

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

선언영역 및 가시성

• Binding 문에 의한 확장

USE ENTITY/CONFIGURATION문일 사용한 확장

해당 하위 설계 단위인 엔티티(아키텍쳐) 및 구성 선언의 Port와 Generic을이용할 수 있다.블록 구성문/컴포넌트 구성문을 이용한 확장

구성 선언의 경우 블록 구성문/컴포넌트 구성문을 이용하여 하위 설계 단위의

아키텍쳐 몸체/블록문/생성문들 이용할 수 있다아키텍쳐 몸체/블록문/생성문들 이용할 수 있다.

• Nested된 확장

동일한 구조의 선언 영역이 내재적으로 선언된 경우동일한 구 의 선언 영역이 내재적 선언된 경우

Nested될 수 있는 선언 영역

블록문/생성문/반복문/서브프로그램

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

6장. VHDL 객체 및 타입

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

선언영역 및 가시성

가시성(Visibility)가시성의 의미• 선언 내용이 참조 가능한 유효 범위 안에 위치하고 있음을 의미한다• 선언 내용이 참조 가능한 유효 범위 안에 위치하고 있음을 의미한다.

• 동형이의어(Homograph) 계층적 선언 영역의 경우 내/ 외부 선언 영역에서 동일한 이름의 선언이

가능하다가능하다.내부 선언 영역의 선언은 직접 참조 가능하며, 외부 선언은 hidden되어 진다.hidden된 선언을 참조하려는 경우는 선택적 이름을 통해서 해결한다.

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

6장. VHDL 객체 및 타입

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

선언영역 및 가시성

Visible by selection

선언 지역의

유효범위

-- full adder : behavioral description

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY f dd b h ISENTITY f_addr_beh IS

PORT( in1, in2, carry_in : IN std_logic ;

carry_out, sum_out : OUT std_logic);

END f_addr_beh;

ARCHITECTURE f_addr_beh_a OF f_addr_beh IS

BEGIN

선언 지역

선언 지역

directly visible(프로세스 변수)

BEGIN

p: PROCESS( in1, in2, carry_in )

VARIABLE data_in : std_logic_vector( 2 DOWNTO 0);

VARIABLE cnt : integer;

BEGIN

cnt := 0;

선언 지역

선언 지역

homograph 발생

directly visible(반복문 변수)

visible by selection

(프로세스 변수)

data_in := in1 & in2 & carry_in ;

FOR cnt N 0 TO 2 LOOP

IF data_in(cnt) = '1' THEN

p.cnt := p.cnt + 1;

END IF;

END LOOP;

선언 지역

(프로세스 변수)

homograph 소멸

directly visible

(프로세스 변수)

CASE cnt IS

WHEN 0 => carry_out <= '0';

sum_out <= '0';

WHEN 1 => carry_out <= '0';

sum_out <= '1';

WHEN 2 => carry_out <= '1';

sum_out <= '0';

WHEN OTHERS => carry_out <= '1';

sum_out <= '1';

END CASE;

END PROCESS;

END f_addr_beh_a ;

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

6장. VHDL 객체 및 타입