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

II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

  • Upload
    others

  • View
    8

  • Download
    1

Embed Size (px)

Citation preview

Page 1: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

II. VHDL 설계부

4장. VHDL 개요

5장. VHDL 설계 구성

6장. VHDL 객체 및 타입

7장. VHDL 모델링

8장. VHDL 구문과 예제

Page 2: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

7장. VHDL 모델링

행위적 모델시스템의 기능적 해석을 기술한다.다수 연산들간의 처리를 표현한다

타이밍 모델자극-응답(stimulus-response) 모델을 기술한다.다수 프로세스들간의 데이터 흐름을 표현한다

구조적 모델

다수의 모델들로 구성된 상위 구조를 기술한다. (Schematic Capture)상위 설계 단위는 하위 설계 단위를 참조할 수 있어도, 하위 설계 단위의 내부는 참조할 수 없다. (설계의 은닉성 : Encapsulation)

혼합적 모델 행위적/타이밍/구조적 모델링을 이용하여 모델을 기술한다.

병행문 프로세스의 동작 및 회로의 구조 정보를 기술한다.

순차문 프로세스 내에서 순차적으로 처리되는 흐름을 기술한다.

Page 3: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

행위적 모델

입력(Inputs)/동작(Operation)/출력(Outputs)으로 표현된다.

시스템은 다수 연산들의 처리 단위로써 표현된다.

DiscreteSystem

Input 1 Output 1

Input n Output m

7장. VHDL 모델링

Page 4: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

행위적 모델을 표현하기 위한 VHDL 개념• Process

VHDL에서 각 동작 Operation 개념을 나타낸다.프로세스들은 병행적으로 수행된다.

• SignalVHDL에서 본 Input/Output 개념을 표현한다.프로세스들 사이의 데이터 이동 경로(Wire)를 나타낸다.

• Sensitivity프로세스의 수행을 활성화 시켜주는 신호들을 나타낸다.감지 신호들 중에서 Event가 발생하면 프로세스가 활성화된다.

• Wait프로세스의 수행 과정을 제어하는 개념을 표현한다.프로세스들간의 동기화를 위하여 이용된다.

Out1 <= In1 XOR In2;

Wait on CLK;

Out1 <= In1 AND In2;

ProcessSignal Signal

In1

In2

Out1

Sensitivity

CLK

Wait

repeat

7장. VHDL 모델링

Page 5: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

행위적 모델

Discrete System의 표현

• 설계 단위(Design Unit)엔티티 선언(Entity Declaration)회로의 입출력에 대한 인터페이스를 정의한다.

아키텍쳐 몸체(Architecture Body)회로를 모델화하기 위하여 다수의 연산들로써 Discrete System을 정의한다.

Out1

Int1 <=In1 AND In2

Int2 <=(not In2) AND (not In1)

In1

In2

Int1

Int2

Out1 <=NOT(Int1 OR Int2)

7장. VHDL 모델링

Page 6: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

타이밍 모델

VHDL의 타이밍 처리 개념

• Drivers신호 값을 변경시킬 데이터들의 집합을 나타낸다.

• Event신호 값의 변경이 발생되었음을 나타낸다.

• Delay 입력 신호 값의 발생에서 실제 출력 신호 값의 변경까지 소요되는 시간

7장. VHDL 모델링

Page 7: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

VHDL의 시뮬레이션 과정• 1) Sensitivity 신호들 중에서 데이터 변경이 발생(Event)에 의하여 프로세

스가 활성화된다.• 2) 활성화된 프로세스들은 신호 데이터 변경을 위한 드라이버(driver)를

생성한다.• 3) 지연 시간이 지난 후 드라이버의 데이터를 신호의 데이터에 갱신한다.

데이터가 갱신된 신호들 중에서 값의 변화가 일어난 경우는 Event 발생 신호로 처리한다.• 1)~3)의 시뮬레이션 주기(Cycle) 과정을 반복하며, Event 발생이 없거나 종료 시간

이 되면 시뮬레이션을 끝낸다.

GenerateDrivers

Update

Start Simulation

End Simulation

Signals Processes

Stimulus

Response ActivateSensitivitylist

Entry

7장. VHDL 모델링

Page 8: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

구조적 모델

구조적 모델을 위한 VHDL 개념

• Port설계 단위(Design Entity)간의 입출력 연결을 정의한다

• Signal두 설계 단위간의 연결을 위하여 신호를 양측 Port에 연결한다.

7장. VHDL 모델링

Page 9: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

Black Box 1 Black Box 2

O1

O2

In1

In2

Out1

O1 <=(not In1) AND In2

O2 <=(not In2) AND In1

Out1 <=In1 OR In2

In1

In2

signal A

signal B

ExternalSignal 1

ExternalSignal 2

ExternalSignal 3

Resource Library

Working Libraryport map

signal

port

7장. VHDL 모델링

Page 10: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

혼합적 모델

실제 설계의 경우 행위적/타이밍/구조적 모델링을 통한 설계가 동시에 고려된다.

구조적 모델링 적용

• 기존 설계된 하위 회로에 대한 재사용을 통한 모델링

행위적/타이밍 모델링 적용

• 하위 회로를 제어하기 위한 처리 메커니즘의 모델링

7장. VHDL 모델링

Page 11: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

Black Box 1

O1

O2

O1 <=(not In1) AND In2

O2 <=(not In2) AND In1

In1

In2

signal A

signal B

ExternalSignal 1

ExternalSignal 2

ExternalSignal 3

Resource Library

Working Libraryport map

signal

port

Out1 <=A OR B

7장. VHDL 모델링

Page 12: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행문과 순차문

병행문

• 프로세스 단위로서 병행적으로 수행되는 최소 단위를 나타낸다.• 기술순서에 따른 수행이 아니며, 시간에 관계되어 수행 및 대기를 진행하는 모델이

다.순차문

• 기술순서에 따라서 순차적으로 수행되는 문장이다.• 하나의 프로세스에 대한 내부적인 처리 절차 과정을 기술한다.

7장. VHDL 모델링

Page 13: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

콤포넌트 사례화문(component instantiation statement)

생성문(generate statement)

구조 병행문

병행 단언문(concurrent assertion statement) 신호 검출 기능

병행문(concurrent statements)

블럭문(block statement)

병행 절차 호출(concurrent procedure call)

병행 신호 지정문(concurrent signal assignment statement)

프로세스문(process statement)

대기문(wait statement)

신호 지정문(signal assignment statement)

변수 지정문(signal assignment statement)

절차 호출문(procedure call statement)

단언문(assertion statement)

조건 제어문(if statement, case statement)

반복 제어문(loop statement)

기타제어문(exit statement, next statement, null statement, return statement)

순차문(sequential statements)

타이밍 모델링

행위 병행문

구조/행위 병행문

7장. VHDL 모델링

Page 14: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행문프로세스

• 외부적으로는 병행적으로 수행되는 최소 단위

• 내부적으로는 순차적으로 수행되는 최대 단위

동작 메커니즘

• 서브프로그램처럼 수행이 완료된 후 복귀(Return)하는 개념이 아니라 시뮬레이션이 완료될 때까지 반복 수행하는 개념이다.

• 신호에 의해서 활성화(Activation) 되어지며, 대기문(Wait)에 의해서 대기상태(Suspend)되어 다음 활성화를 기다리게 된다.

• 프로세스를 활성화시키는 신호들은 감지 리스트(Sensitivity list)라고 지칭하며, 리스트에 등록된 신호들 중에서 하나라도 Event가 발생하면 활성화가 된다.

• 감지 리스트가 없는 경우 프로세스 내부에 1개 이상의 대기문을 포함해야 한다.• 감지 리스트/대기문이 없는 경우는 시뮬레이션이 불가능한 설계 오류이다.

7장. VHDL 모델링

Page 15: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

d_ff: PROCESS ( clk, din, clr_b) -- sensitivity list

CONSTANT clr_value : BIT := ‘0’;

BEGIN

IF clr_b = ‘1’ THEN

IF clk’EVENT AND clk=‘1’ THEN

dout <= din;

END IF;

ELSE

dout <= clr_value;

END IF;

END PROCESS;

7장. VHDL 모델링

clk

din

clr_b

dout

Activation of Process

Page 16: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

순차문대기문(Wait)

• 프로세스의 수행 과정을 제어하는 표현이다.• 각 프로세스들간의 동기화를 위한 메커니즘을 제공한다.• 대기문에 기술된 신호들은 프로세스의 다음 수행 재개를 위한 감지 리스트

(Sensitivity list)를 구성한다.

표현 종류

• 신호 대기문 Wait-on• 조건부 대기문 Wait-until• 시간 대기문 Wait-for

7장. VHDL 모델링

Page 17: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

• 1) 10 ns 동안 대기하라

• 2) 신호 A, B, C 중에서 하나라도 Event가 발생할 때까지 대기하라.• 3) 신호 Z가 Event가 발생하고 그 값이 ‘0’일 때까지 대기하라.• 4) 신호 A, B에서 Event가 발생하거나 대기 시간이 100 ns가 될 때까지 대기하라.• 5) 신호 X, Y에서 Evnet가 발생하거나 신호 Z 값이 ‘0’이 될 때까지 대기하라.• 6) 시뮬레이션이 완료될 때까지 대기하라.• 모든 대기문은 시뮬레이션 종료 시간이 되면 활성화될 수 있도록 설정된 것으로 간

주한다.

1) WAIT FOR 10 ns ;2) WAIT ON a, b, c ; -- Wait on A, B, C for EndSimulationTime3) WAIT UNTIL z = ‘0’; -- Wait on Z until Z=‘0 for EndSimulationTime4) WAIT ON a, b FOR 100 ns ;5) WAIT ON x, y until z = ‘0’; -- Wait on X, Y until Z=‘0’ for EndSimulationTime6) WAIT; -- Wait for EndSimulationTime

WAIT FOR (time’RIGHT - NOW()); -- 종료 시간이 time’RIGHT일 경우

7장. VHDL 모델링

Page 18: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

순차문신호 지정문(Signal Assignment Statement)

• 대상 신호의 값을 새롭게 지정하기 위하여 사용된다.• 값의 갱신 메커니즘은 지정문의 위치에 따르지 않고 현재의 시뮬레이션 시간으로

부터 정해진 시간 지연 후에 발생한다. (시간적 의미)

targetsignal <= sourcesignal AFTER 10 ns ; -- 10 ns delaytargetsignal <= sourcesignal ; -- delta delay

7장. VHDL 모델링

Page 19: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

시간 지연(Delay)• 사용자 지정 시간 지연 : AFTER

사용자 지정 시간 지연은 현재 합성되지 않는다.물리적 특성을 반영하기에 임의 설정을 불허한다.

• 시뮬레이션 메커니즘에서의 지연 : 델타 지연(Delta Delay)델타 지연은 일정한 시간 구간마다 신호의 Event 확인 및 프로세스 활성화

과정을 진행하기 위하여 도입된 개념이다.델타 지연 시간의 총합은 시뮬레이션 시간 단위(resolution) 구간보다 작다.

Simulation Time Interval T

A

B

C

D

tΔtΔtΔ

tnT ∆*=

B <= A;

C <= B;

D <= C;

병행문 예제

7장. VHDL 모델링

Page 20: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

델타지연 (Delta Delay) 예제

• 예제 1

• 예제 2

7장. VHDL 모델링

two_reg: PROCESSBEGIN

WAIT UNTIL clk = ‘1’;reg1 <= a_in ;reg2 <= reg1 ;

END PROCESS ;

bad_proc: PROCESS (a_in, b_in, c_in)BEGIN

y_out <= a_in AND b_in ;x_out <= y_out OR c_in ;

END PROCESS ;

y_out <= a_in AND b_in ;x_out <= y_out OR c_in ;

Page 21: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

순차문시뮬레이션 메커니즘(Simulation Mechanism)

시뮬레이션 종료

N M

1 1

Event Signal

Signal Resolution Function

Processes Processes Drivers

1

N

St ≠St-1

ƒ S E

시뮬레이션 수행 사이클 루틴 타임 휠 스케줄링

• • •

• • •

• • •

• • •

Eventdetect

Function

활성화된 프로세스가

있는가 ?

타임 휠에 등록된

구동기가 있는가 ?

시뮬레이션 시간이

종료 시간과 같은가 ?

활성화된 프로세스들을 수행시킨다.

델타지연 시간을 증가 시킨다.

시뮬레이션 사이클 시간을 증가 시킨다. Y

Y

Y

Y

N

N

7장. VHDL 모델링

Page 22: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

지연 메커니즘(Delay Mechanism)

• 하나의 프로세스에서 발생되는 목적 신호에 대한 출력 파형은 하나라고 하는 개념을 바탕으로 목적 신호(Target Signal)에 대한 프로세스 내의 구동기(Driver)만을 1차적으로 스케줄링하게 된다.

⇒ 한 프로세스에서 하나의 신호에 동시에 여러 값을 출력할 수 없다는 점

• 지연 모드를 이용하여 스케줄링 과정에서 요구되는 처리 메커니즘을 사용자가 설정할 수 있다.

7장. VHDL 모델링

Page 23: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

순차문지연 모드의 종류

• Transport현재의 입력 구동기보다 큰 지연시간을 갖는 구동기들은 제거된다.이전에 입력된 구동기 중에서 현재 입력된 구동기보다 큰 지연 시간을 갖는

경우에 발생할 수 있는 문제점을 방지한다.하드웨어 디바이스(Hardware Device)의 특성을 표현한다.eg. IOPATH delay

• Transport 지연 예제

PROCESS (clk)

line1: s <= 1 AFTER 10 ns, 2 AFTER 20 ns ;

line2: s <= TRANSPORT 2 AFTER 15 ns ;

END PROCESS;

1, 10 NS 2, 20 NS

1, 10 NS 2, 20 NS 2, 15 NS

1, 10 NS 2, 15 NS

LINE1: s

LINE2: s

FINAL: s

7장. VHDL 모델링

Page 24: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

프로세스의 최종 출력 파형

1 2

1 2

2

10 ns 15 ns 20 ns

rejected waveform

LINE1WAVEFORM

LINE2WAVEFORM

FINALWAVEFORM

7장. VHDL 모델링

Page 25: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

순차문지연 모드의 종류

• Inertial (default mode)기준 구동기보다 이후에 처리될 구동기를 제거하고, 이전에 처리될 구동기

들 중 값이 다른 구동기들을 제거한다. 스위칭 회로(Switching Circuit)의 특성을 표현한다.스위칭 시간보다 짧은 파형은 무시된다.

• Inertial 지연의 예제

PROCESS (clk)

line1: s <= 1 AFTER 10 ns, 2 AFTER 20 ns, 1 AFTER 40 ns ;

line2: s <= 2 AFTER 30 ns ;

END PROCESS;

1, 10 NS 2, 20 NS

1, 10 NS 2, 20 NS 1, 40 NS

2, 20 NS 2, 30 NS

LINE1: s

LINE2: s

FINAL: s

2, 30 NS

1, 40 NS

1, 10 NS 2, 20 NSLINE2: s 2, 30 NS

7장. VHDL 모델링

Page 26: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

프로세스의 최종 출력 파형

LINE1WAVEFORM

LINE2WAVEFORM

FINALWAVEFORM

2

1 1

2

10 ns 20 ns 30 ns

rejected waveform

40 ns

2

2

rejected waveform

7장. VHDL 모델링

Page 27: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

순차문지연 모드의 종류

• Reject Inertial (VHDL’93)기준 구동기보다 이후에 처리될 구동기들을 제거하고, 이전에 처리될

구동기들 중 기준 구동기 보다 Reject 시간만큼 빠르지 않는 구동기들을

제거한다. 단, 바로 직전에 처리될 구동기가 기준 구동기와 값이 갖으면

보존된다.스위칭 회로의 특성을 표현한다.출력 파형을 기준으로 스위칭 시간 안에서 발생될 파형들을 제거한다

• Reject Inertial 지연의 예제

PROCESS (clk)

line1: s <= 3 AFTER 10 ns, 2 AFTER 20 ns, 1 AFTER 40 ns, 3 AFTER 50 ns ;

line2: s <= REJECT 30 ns INERTIAL 1 AFTER 45 ns ;

END PROCESS;

1, 40 NS

3, 10 NS 2, 20 NS

3, 10 NS 2, 20 NS 1, 40 NS

3, 20 NS

LINE1: s

LINE2: s

FINAL: s

1, 45 NS

1, 40 NS

3, 10 NS 2, 20 NSLINE2: s

3, 50 NS

3, 50 NS

1, 45 NS

1, 40 NS 1, 45 NS

7장. VHDL 모델링

Page 28: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

프로세스의 최종 출력 파형

1

3 3

1

10 ns 20 ns 40 ns

rejected waveform

45 ns

LINE1WAVEFORM

LINE2WAVEFORM

FINALWAVEFORM

2

3

rejected waveform

15 ns 50 ns

1

Reject Time

1

7장. VHDL 모델링

Page 29: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

q <= r NOR nq AFTER 1ns;nq <= s NOR q AFTER 1ns;

q <= TRANSPORT r NOR nq AFTER 1ns;nq <= TRANSPORT s NOR q AFTER 1ns;

Page 30: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

순차문변수 지정문(Variable Assignment Statement)

• 변수에 새로운 값을 입력시킨다.• 대입문이 수행되면 변수의 값은 바로 변경된다. (위치적/순차적 의미)

절차 호출문(Procedure Call Statement)• 프로시저를 호출하여 사용한다.• 다중 정의(Overload)된 프로시저를 구별하기 위하여 파라메터와의 객체,입출력 모

드 및 타입 종류를 일치시켜 기술하여야 한다.

vari := (a AND b) OR (c AND d);

PROCEDURE add_procedure ( in1, in2 : IN bit ; out1 : OUT bit ); -- 1PROCEDURE add_procedure ( in1, in2 : IN bit ; out1 : OUT integer ); -- 2

VARIABLE in1, in2, out3 : bit ;add_procedure( in1, in2, out1); -- 1 procedure 호출

7장. VHDL 모델링

Page 31: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

단언문(Assertion Statement)• 시뮬레이션 동안 주어진 조건이 일치하는 지를 검색하여 일치하지 않는 경우 메시

지를 출력하고 필요한 조치를 취한다. (Violation Checking)• Reporting할 메시지를 문자열(String)로써 기술한다.• Severity 값은 STANDARD에 선언된 SEVERITY_LEVEL 타입으로 표현한다.

NOTE : 메시지만 출력한다.WARNING : 메시지 출력 및 발생 시간, 발생 위치를 출력한다.ERROR : 메시지 출력 후 시뮬레이션을 중지한다.FAILURE : 메시지 출력 후 시뮬레이션을 종결한다.

• 테스트를 위한 신호 감시 기능으로 합성이 되지 않는다.

ASSERT ( clk’STABLE(5 ns) = true ) -- clk의 stable 상태가 5 ns 동안 유지되지 않은 경우

REPORT “WARNING : CLK is UNSTABLE !!”

SEVERITY warning ;

7장. VHDL 모델링

Page 32: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

순차문조건 제어문

• 조건부 제어문(If)임의의 상태 조건에 해당된 경우만 실행하게 한다.Dangling Else-If 문의 경우는 순차회로가 구성되어 전체 시스템의 성능을

저하시킬 수 있다.Level/Edge 검출 회로를 표현하는데 사용한다. (Clock 신호)

IF clk’EVENT AND clk=‘1’ THENdout <= din ;

END IF;

IF sel = “00” THENdout <= ‘L’;

ELSIF sel = “10” OR sel = “01” THENdout <= ‘H’;

ELSEdout <= ‘X’;

END IF;

7장. VHDL 모델링

Page 33: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

• 선택적 제어문(Case)포괄적인 제어 상태를 분석하여 해당 내용을 실행한다.

CASE sel IS

WHEN “00” => dout <= ‘L’;

WHEN “10” | “01” => dout <= ‘H’;

WHEN OTHERS => dout <= ‘X’;

7장. VHDL 모델링

Page 34: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

순차문반복 제어문(Loop)

• 반복 수행될 내용을 기술한다.• 무한 반복 제어문 (Loop)• 제한 반복 제어문 (For Loop)

Loop 변수는 별도의 선언을 하지 않는다.반복 횟수가 변수일 경우 시뮬레이션만 가능하며, 합성은 불가능하다.

• 조건부 반복 제어문 (While Loop)조건을 만족하는 동안에만 반복 수행한다.

7장. VHDL 모델링

Page 35: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

기타 제어문Exit 문

• 조건을 만족하면 Loop 수행을 종료한다.• Multi-Level Exit : 하나 이상의 Loop를 종료할 수 있다.

Next 문• 조건을 만족하면 한번 건너뛰며(Skip), Loop 수행은 계속 진행된다.• Multi-Level Next : 하나 이상의 Loop를 건너뛸 수 있다.

Null 문• No-operation 을 나타낸다.

l1 : WHILE con = 17 LOOP -- 조건부 반복 제어문

l2 : FOR i IN 0 TO 10 LOOP -- 제한 반복 제어문

l3 : LOOP -- 무한 반복 제어문

tar := tar +1;EXIT l2 WHEN tar = 15; -- tar = 15 이면 l3, l2 loop를 종료한다

END LOOP l3 ;NEXT l2 WHEN i = 5; -- i = 5일때는 밑에 문장을 건너뛴다. var := var + tar ;

END LOOP l2 ;tar := tar + 2;

END LOOP l1 ;

7장. VHDL 모델링

Page 36: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행문행위 병행문

• 프로세스 문을 한 문장으로 기술하는 간결한 표현이다.• 수행 메커니즘은 프로세스와 동일하다.• 감지 리스트나 대기문이 없어도 입력 신호를 감지 신호로 간주하여 처리한다.

병행 신호 지정문(Concurrent Signal Assignment Statement)• 단순 신호 지정문

순차 신호 지정문과 동일한 개념이다.

s <= d ;

PROCESS (d)

BEGIN

s <= d ;

END PROCESS;

7장. VHDL 모델링

Page 37: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

• 조건부 신호 지정문(Conditional Signal Assignment)조건이 일치하는 Waveform만을 신호에 입력한다.If 문과 결합된 신호 지정문의 간결한 표현이다.

• 선택적 신호 지정문(Selected Signal Assignment)포괄적 선택 조건을 기술한다.Case문과 결합된 신호 지정문의 간결한 표현이다.

s <= ‘1’ WHEN set = ‘0’ ELSE -- conditional signal assignment

d WHEN (clk’EVENT AND clk=‘1’);

sel <= set & clk & d ;

WITH sel SELECT -- selected signal assignment

s <= ‘1’ WHEN “100”|”101”|”110”|”111”,

d WHEN “010”|”011”,

s WHEN OTHERS;

7장. VHDL 모델링

Page 38: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행문병행 신호 지정문

• Unaffected Waveform이전 신호 값을 유지하기 위한 입력 표현이다.목적 신호(Target Signal)는 Unaffected Waveform에 의하여 Event 및 Active가 발생되지 않는다.(Null Transaction과 구별됨)

s <= d AFTER 10 ns WHEN (clk’EVENT AND clk=‘1’) ELSE

UNAFFECTED ;

PROCESS (d, clk )BEGIN

IF(clk’EVENT AND clk=‘1’) THENs <= d AFTER 10 ns ;

ELSENULL; -- Null Statement

END IF;END PROCESS;

7장. VHDL 모델링

Page 39: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

NULL Transaction의 경우

s <= d AFTER 10 ns WHEN (clk’EVENT AND clk=‘1’) ELSE

NULL ;

PROCESS (d, clk)BEGIN

IF(clk’EVENT AND clk=‘1’) THENs <= d AFTER 10 ns ;

ELSEs <= NULL; -- Null Transaction

END IF;END PROCESS;

7장. VHDL 모델링

Page 40: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행문병행 절차 호출문(Concurrent Procedure Call Statement)

• 순차문의 절차 호출문과 동일하게 프로시저를 호출하여 사용한다.• 입력 모드인 파라메터에 연결된 신호들로 감지 리스트를 구성한다.

PROCEDURE add ( in1, in2 : IN bit ; out1 : OUT bit );

add(in1, in2, out3 );

PROCESS (in1, in2 )

BEGIN

add(in1, in2, out1 );

END PROCESS;

7장. VHDL 모델링

Page 41: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행 단언문(Concurrent Assertion Statement)• 순차문의 단언문과 동일하게 주어진 조건이 일치하는 지를 검색하여 일치하지 않

는 경우 메시지를 출력하고 필요한 조치를 취한다.• 조건에 사용된 신호를 감지 리스트로 구성한다.

ASSERT (detect = ‘1’)

REPORT “DETECT Signal is set”

SEVERITY failure ;

PROCESS (detect)

BEGIN

ASSERT (detect = ‘1’)

REPORT “DETECT Signal is set”

SEVERITY failure ;

END PROCESS;

7장. VHDL 모델링

Page 42: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행문블록문(Block Statement)

• 아키텍쳐 몸체내의 문장 표현의 구조화를 위하여 사용된다.• 특정 기술 내용을 블록화하여 감시 신호(Guarded Signal)를 이용하여 동기를 맞추

는데 사용한다. (BLOCK 예약어 다음에 조건을 기술해야 한다.)• 블록문의 내용에 따라서 구조적/행위적 블록으로 구분할 수 있다.

• 감시 대상 신호(Guarded Signal)블록내의 병행문들의 수행 동기화를 위하여 사용되는 신호들을 나타낸다.GUARD 신호가 내재적으로 선언되어 감지 신호의 역할을 수행한다.Register나 Bus로 설정된 신호에 대하여 처리한다.

7장. VHDL 모델링

Page 43: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

blk : BLOCK (clk = ‘1’) -- guarded conditionBEGIN

s1 <= GUARDED d WHEN enable=1 ELSE‘0’ ; -- Guarded Signal Assignment

END BLOCK;

blk : BLOCK (clk = ‘1’)BEGIN

PROCESS (GUARD, d, enable)BEGIN

IF(GUARD = true) THENIF(enable = 1) THEN s1 <= d ;ELSE s1 <= ‘0’ ;END IF;

ELSE-- Disconnection Statement

END IF;END PROCESS;

END BLOCK;

7장. VHDL 모델링

Page 44: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행문사용자 분해 기능 지정 방법

• 정의 가능한 대상

감시대상 분해 신호(Guarded Resolved Signal)• 정의 가능한 선언 지역

블록문 안에서만 기술할 수 있다.

• 연결 해제 명세문(Disconnection Specification)하나의 프로세서에서 출력되는 구동기 리스트(Driver list)를 완전히 끊어

버리기 위하여 사용한다.연결 해제 명세문이 없는 모든 감시 대상 신호들은 0 ns에서 연결 해제 된다고

내부적으로 정의된다.

7장. VHDL 모델링

Page 45: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

• Null 출력(Null Transaction)출력되는 구동기 리스트 중에서 특정한 구동기만 Null 값으로 설정하기 위하여 사용한다.사용자가 반드시 명시해야만 한다.

• 감시 대상 분해 신호의 입력이 모든 입력 구동기에 대하여 연결이 해제되거나 입력구동기가 모두 NULL 값인 경우

BUS로 선언된 신호의 경우

분해 함수를 이용하여 처리 방법을 결정한다.High-Impedance를 방지하기 위한 처리 방법을 분해 함수로 정의한 결과이다.REGISTER로 선언된 신호의 경우

분해 함수를 호출하지 않고 현재 기억된 신호 값을 유지하게 된다.입력이 없는 경우 기존 출력 값을 유지하는 Register의 개념이다.

7장. VHDL 모델링

Page 46: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

사용자 분해 기능 지정 방법연결 해제 명세문(Disconnection Specification)

ARCHITECTURE disconn OF counter ISSUBTYPE resolvebit IS wire_or bit_vector ;SIGNAL count : resolvebit REGISTER := ‘0’;SIGNAL cnt : resolvebit BUS := ‘0’;DISCONNECT count : resolvebit AFTER 10 ns;

BEGINcblk : BLOCK (intsig = ‘1’ AND sel = ‘0’)

-- guard 조건을 만족하지 못한 경우 연결 해제됨

BEGINcount <= GUARDED ‘1’ ;cnt <= GUARDED ‘1’;

END BLOCK;

iblk : BLOCK (intsig = ‘0’)-- guard 조건을 만족하지 못한 경우 연결 해제됨

BEGINcount <= GUARDED ‘0’ ;cnt <= GUARDED ‘0’ ;

END BLOCK;END;

7장. VHDL 모델링

Page 47: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

동작 예

'0' DISCONNECTION

SEL

INTSIG

COUNT

CNT

'1'

'1'

'0''0'

RESOLUTION FUNCTION

10 ns

7장. VHDL 모델링

Page 48: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

사용자 분해 기능 지정 방법

Null 출력(Null Transaction)

ARCHITECTURE disconn OF counter ISSUBTYPE resolvebit IS wire_or bit_vector;SIGNAL stat1 : resolvebit register := ‘0’;SIGNAL stat2 : resolvebit bus := ‘0’;

BEGINcblk : BLOCK (cycle = ‘1’)BEGIN

stat1 <= ‘0’ AFTER 10 ns, NULL AFTER 20 ns, NULL AFTER 30 ns ;stat1 <= NULL AFTER 10 ns, ‘1’ AFTER 20 ns, NULL AFTER 30 ns ;stat2 <= ‘0’ AFTER 10 ns, NULL AFTER 20 ns, NULL AFTER 30 ns ;stat2 <= NULL AFTER 10 ns, ‘1’ AFTER 20 ns, NULL AFTER 30 ns ;

END BLOCK;END;

7장. VHDL 모델링

Page 49: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

동작 예

'1' DISCONNECTION

CYCLE

STAT1

STAT2

'0'

'0' '0''1'

RESOLUTION FUNCTION

10 NS 20 NS 30 NS

7장. VHDL 모델링

Page 50: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

구조 병행문

구조 병행문을 위한 선언

• 컴포넌트 선언(Component Declaration) : Socket의 정의

사례화 병행문(Instantiation 병행문)• Net 정보를 정의한다.• 컴포넌트 사례화문(Component Instantiation Statement) : Socket과 신호와의 연결

아키텍쳐 병행문

• 실체 회로의 결합을 정의한다.• 생성문(Generate Statement)• 구성 명세문(Configuration Specification) : Socket과 실체와의 연결

7장. VHDL 모델링

Page 51: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

구성 병행문(Binding 병행문)• 실체 회로의 결합을 정의한다.• 블록 구성(Block Configuration)• 컴포넌트 구성(Component Configuration) : Socket과 실체와의 연결

구조 기술 방법의 분류

• 변경을 고려한 구조 기술Net 정보와 실체 회로의 연결을 분리하여 기술하는 방법

• 고정된 구조 기술Net 정보와 실체 회로의 연결을 같이 기술하는 방법

7장. VHDL 모델링

Page 52: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

구조 병행문

구조적 모델링을 위한 설계 방법

Working Unit

Architecture Body

Component Instantiation

Statement

Component Declaration

Configuration Specification

Entity(Architecture)/Configuration

GenerateStatement

고정된 구조

Net 정보와실체 회로의결합을 기술

7장. VHDL 모델링

Page 53: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

Entity(Architecture)/Configuraiton

Component Declaration

Block Configuration

ConfigurationDeclaration

Architecture Body

Component Instantiation

Statement

Working Unit

GenerateStatement

ComponentConfiguration

실체 회로의결합을 기술

Net 정보 기술

변경 가능한 구조

7장. VHDL 모델링

Page 54: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행문구조 병행문을 위한 선언(Declaration)

• 컴포넌트 선언(Component Declaration)하드웨어 컴포넌트(모듈)의 인터페이스 및 특성을 정의한다.선언은 Port/Generic의 정의로 구성된다.

COMPONENT buf3slGENERIC (tlh: time := 0 ns;

thl: time := 0 ns ); PORT (input: IN std_logic;

enable: IN std_logic; output: OUT std_logic);

END COMPONENT;

7장. VHDL 모델링

Page 55: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

사례화 병행문(Instantiation)• 컴포넌트 사례화문(Component Instantiation Statement)

컴포넌트와 외부 신호와의 연결 정보를 표현한다.연결 정보 표시는 이름 연관과 위치 연관으로 구분된다.

이름 연관(Named Association)실제 신호(Actual)와 컴포넌트의 Port(Formal)과의 연결을 이름간의

연관으로써 기술한다.컴포넌트의 Port 이름을 알아야 한다.

formal_name => actual_name

위치 연관(Positional Association)실제 신호(Actual)와 컴포넌트의 Port(Formal)과의 연결을 선언 위치대로

기술한다.컴포넌트의 선언 구조를 알아야 한다.

u2 : buf3slGENERIC MAP (tlh => setup, thl => hold) -- 이름 연관

PORT MAP ( in1, csel, out1 ); -- 위치 연관

7장. VHDL 모델링

Page 56: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행문아키텍쳐 병행문

• 생성문(Generate Statement)규칙적인 반복 구조를 갖는 하드웨어 설계의 경우를 표현한다.(Data Path 회로 설계)기술의 간결성을 위하여 사용된다.Generate 변수는 별도의 선언을 필요로 하지 않는다.합성을 위해서 생성문의 반복 횟수는 고정 값이어야 한다.

temp(0) <= in1 ;

dff4 : FOR I IN 3 DOWNTO 0 GENERATE dff : d_ff PORT MAP( temp(i +1), clk, temp(i ));

END GENERATE dff4;

out1 <= temp(4) ;

7장. VHDL 모델링

Page 57: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

생성문을 사용하지 않은 등가 표현

temp(0) <= in1 ;

dff4_1 : d_ff PORT MAP( temp(1), clk, temp(0));dff4_2 : d_ff PORT MAP( temp(2), clk, temp(1));dff4_3 : d_ff PORT MAP( temp(3), clk, temp(2));dff4_4 : d_ff PORT MAP( temp(4), clk, temp(3));

out1 <= temp(4) ;

D Q

CLK

D Q

CLK

D Q

CLK

D Q

CLK

TEMP(0) TEMP(1) TEMP(2) TEMP(3) TEMP(4)

CLK

7장. VHDL 모델링

Page 58: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

병행문아키텍쳐 병행문

• 구성 명세문(Configuration Specification)아키텍쳐 몸체에서의 표현

컴포넌트와 실제 Entity(Architecture)/Configuration과의 연결을 표현한다.

1) Use Entity 문 : 지정 Entity와 Architecture를 연결한다.2) Use Configuration : 지정 Configuration을 연결한다.3) 지정된 Entity와 최근 분석된 Architecture를 연결한다.

1) FOR u2 : d_ff USE ENTITY work.d_flipflop(behav);2) FOR u3 : d_ff USE CONFIGURATION work.config ;3) FOR u4 : d_ff USE ENTITY work.d_flipflop;

7장. VHDL 모델링

Page 59: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

구성 병행문

• 블록 구성(Block Configuration)구성 선언에서의 표현

아키텍쳐/블록/생성문을 지칭하기위한 블록 구성 표현이다.

• 컴포넌트 구성(Component Configuration)컴포넌트와 실제 Entity(Architecture)/Configuration과의 연결을 표현한다.

CONFIGURATION config of system ISFOR struc -- architecture에 대한 블록 구성

FOR blk1 -- block에 대한 블록 구성FOR u2 : d_ff USE ENTITY work.d_flipflop(behav);END FOR; -- 컴포넌트 구성

END FOR;FOR u3 : d_ff USE CONFIGURATION work.config ;END FOR; -- 컴포넌트 구성

END FOR;END;

FOR u2 : d_ff USE ENTITY work.d_flipflop(struc); -- 컴포넌트 구성FOR subblk -- 블록 구성

FOR u21 : latch USE CONFIGURATION work.config ; END FOR;

END FOR;

7장. VHDL 모델링

Page 60: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

구조 병행문고정된 구조 기술의 예

• 기술 순서실체 회로 설계 단위아키텍쳐 몸체

» 컴포넌트 선언문» 구성 명세문» 생성문» 컴포넌트 사례화문

LIBRARY ieee ;USE ieee.std_logic_1164.ALL ;ENTITY jk_ff IS -- 실체 회로 설계 단위

PORT ( odin, oclk, oclr : IN std_logic ;odout : OUT std_logic );

END;ARCHITECTURE behav of jk_ff ISBEGIN

PROCESS (odin, oclk, oclr )BEGIN

IF(oclr = ‘1’ ) THENELSE

IF(oclk’EVENT AND oclk = ‘1’) THENodout <= odin ;

END IF;END IF;

END PROCESS;END;

LIBRARY ieee ;

USE ieee.std_logic_1164.ALL ;

ENTITY jk_vector IS

PORT ( din : IN std_logic_vector ( 3 DOWNTO 0 );

clk, clr : IN std_logic ;

dout : OUT std_logic_vector ( 3 DOWNTO 0 ) );

END;

ARCHITECTURE struct of jk_vector IS -- 아키텍쳐 몸체

COMPOMENT jkcomp -- 컴포넌트 선언문

PORT ( cdin, cclk, cclr : IN std_logic ;

cdout : OUT std_logic );

END COMPONENT;

FOR u1 : jkcomp USE ENTITY work.jk_ff(behav ) -- 구성 명세문

PORT MAP ( odin => cdin, oclk => cclk, oclr => cclr,

odout => cdout );

BEGIN

g1 : FOR i IN 3 DOWNTO 0 GENERATE -- 생성문

u1 : jkcomp PORT MAP (din(i), clk, clr, dout(i)); -- 사례화문

END GENERATE;

END;

Net 정보

실체결합(Binding)

7장. VHDL 모델링

Page 61: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

하드웨어 모델링

구조 병행문

변경 가능한 구조 기술의 예• 기술 순서

실체 회로 설계 단위

» 아키텍쳐 몸체

» 컴포넌트 선언문

» 생성문

» 컴포넌트 사례화문

구성 선언

» 블록 구성

» 컴포넌트 구성

LIBRARY ieee ;USE ieee.std_logic_1164.ALL ;ENTITY jk_vector IS

PORT ( din : IN std_logic_vector ( 3 DOWNTO 0 );clk, clr : IN std_logic ;dout : OUT std_logic_vector ( 3 DOWNTO

0 ) );END;

ARCHITECTURE netlist of jk_vector IS -- 아키텍쳐 몸체

COMPOMENT jkcomp -- 컴포넌트 선언문PORT ( cdin, cclk, cclr : IN std_logic ;

cdout : OUT std_logic );END COMPONENT;

BEGINg1 : FOR i IN 3 DOWNTO 0 GENERATE -- 생성문

u1 : jkcomp PORT MAP (din(i), clk, clr, dout(i)); -- 사례화문END GENERATE;u2 : jkcomp

PORT MAP (din(i), clk, clr, dout(i)); -- 사례화문END;

CONFIGURATION config of jk_vector IS -- 구성 선언

FOR netlist -- 아키텍쳐 몸체에 대한 블록 구성FOR g1(3 DOWNTO 0) -- 생성문에 대한 블록 구성

FOR u1 : jkcomp -- 컴포넌트 구성USE ENTITY work.jk_ff(behav)PORT MAP(cdin,cclk, clr, cdout );

END FOR;END FOR;FOR u2 : jkcomp USE ENTITY work.jk_ff(struc)

PORT MAP(cdin,cclk, clr, cdout );FOR blk

FOR sub1 : nandUSE CONFIGURATION work.nconf;

END FOR;END FOR;

END;

Net 정보

실체결합(Binding)

7장. VHDL 모델링

Page 62: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

합성을 위한 VHDL 모델링

합성을 위한 고려 사항들

에지 검출(Edge-Detect) 을 모델화 할 경우, 반드시 값도 표현해야 한다.• Rising Edge

• Falling Edge

IF ( clk’EVENT AND clk = ‘1’) THEN:

IF ( clk’EVENT AND clk = ‘0’) THEN:

7장. VHDL 모델링

Page 63: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

합성을 위한 VHDL 모델링

설계 기술에 따라서, 툴에 따라서 합성된 결과가 다를 수 있다.

• 최적화된 합성 결과

ARCHITECTURE behav OF d_flipflop ISBEGIN

d_ff: PROCESS (clk, din, set)CONSTANT s_val : std_logic := '0';

BEGINIF clk'EVENT AND clk = '1' THEN

IF set = '1' THENdout <= din ;

ELSEdout <= s_val ;

END IF;END IF;

END PROCESS;END;

ARCHITECTURE behav2 OF d_flipflop ISBEGIN

d_ff2: PROCESS (clk, din, set)CONSTANT s_val : std_logic := '0';

BEGINIF set = '1' THEN

IF clk'EVENT AND clk = '1' THEN

dout2 <= din ;END IF;

ELSEdout2 <= s_val ;

END IF;END PROCESS;

END;

set

din

clk

IN1

IN2 ATBL_3YD

dout 17

CLK

DFFS

doutQ

din

clk

set

CLK

D

CLRN

DFFdout2

Q

n45PRN

7장. VHDL 모델링

Page 64: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

합성을 위한 VHDL 모델링

합성을 위한 고려 사항들

조건부 제어문(병행 조건부 신호 지정문)과 선택적 제어문(병행 선택적 신호지정문)을 이용한 설계는 합성의 결과에 차이가 있다.

예문

ARCHITECTURE behav OF decoding ISBEGIN

selec: PROCESS (clk, sel)BEGIN

IF clk'EVENT AND clk = '1' THENIF sel = "00" AND sel = "11" THEN

dout <= din;ELSIF sel = "10" THEN

dout <= '0';ELSE

dout <='1';END IF;

END IF;END PROCESS;

END;

ARCHITECTURE behav2 OF decoding ISBEGIN

selec: PROCESS (clk, sel)BEGIN

IF clk'EVENT AND clk = '1' THENCASE sel ISWHEN "00"|"11” => dout <= din;WHEN "10” => dout <= '0';WHEN OTHERS => dout <= '1';END CASE;

END IF;END PROCESS;

END;

7장. VHDL 모델링

Page 65: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

합성을 위한 VHDL 모델링

최적화된 합성 결과

• 조건부 제어문의 결과

• 선택적 제어문의 결과

7장. VHDL 모델링

Page 66: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

합성을 위한 VHDL 모델링

합성을 위한 고려 사항들행위적 모델 및 구조적 모델의 차이점

• 행위 기술의 경우 기술은 간편하나, 불필요한 컴포넌트들이 중복될 수 있다.• 잦은 서브프로그램의 호출 및 연산자의 이용은 회로의 크기에 영향을 준다.

행위적 모델의 예 (최적화하지 않은 경우)

LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;

ENTITY adding ISPORT ( in1, in2, in3 : IN std_logic_vector(3 DOWNTO 0);

clk : IN std_logic;out1 : OUT std_logic_vector(3 DOWNTO 0));

END;

ARCHITECTURE behav OF adding ISSIGNAL count : std_logic := '0';SIGNAL temp : std_logic_vector(3 DOWNTO 0);

BEGINPROCESS (clk, in1, in2, count)BEGIN

IF count = '0' THENIF(clk'EVENT AND clk = '1') THEN

temp <= in1 + in2 ;count <= '1';

END IF;END IF;

END PROCESS;PROCESS (clk, temp,count)BEGIN

IF count = '1' THENIF(clk'EVENT AND clk = '1') THEN

out1 <= temp + in2 ;count <= '0';

END IF;END IF;

END PROCESS;END;

7장. VHDL 모델링

Page 67: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

합성을 위한 VHDL 모델링

7장. VHDL 모델링

Page 68: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

합성을 위한 VHDL 모델링

합성을 위한 고려 사항들

구조적 모델의 예 (최적화하지 않은 경우)ARCHITECTURE struc OF adding IS

SIGNAL count : std_logic := '0';SIGNAL temp1 : std_logic_vector(3 DOWNTO 0);SIGNAL temp2 : std_logic_vector(3 DOWNTO 0);SIGNAL tout1 : std_logic_vector(3 DOWNTO 0);

COMPONENT addPORT ( in1, in2 : IN std_logic_vector(3 DOWNTO 0)

;out1 : OUT std_logic_vector(3 DOWNTO 0));

END COMPONENT;

FOR alu : addUSE ENTITY work.adder(behav) ;

BEGINPROCESS (clk)BEGIN

IF(clk'EVENT AND clk = '1') THENIF count = '0' THEN

count <= NOT count;temp1 <= in1 ;temp2 <= in2 ;

ELSEcount <= NOT count;temp1 <= tout1;temp2 <= in3;

END IF;END IF;

END PROCESS;

PROCESS (count)BEGIN

IF(count = '1') THENout1 <= tout1;

END IF;END PROCESS;alu : add PORT MAP (temp1, temp2, tout1);

END;

7장. VHDL 모델링

Page 69: II. VHDL 설계부 - Egloospds5.egloos.com/pds/200704/11/49/ch7.pdf광운대학교-1-전자정보대학 II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계구성 6장. VHDL 객체및타입

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

합성을 위한 VHDL 모델링

7장. VHDL 모델링