78
SungKyunKwan Univ . 1 VADA Lab. Introduction 집집집집 집집집 집집집집 집집 집집 집집 집집 집집 집집 집집 집집 집집집 집집 (집 집집) 집집집 10 집집 3 , 집 집집, , 집 집집 RTL집 집 집 집집집집 집집 집집집집 (집 집집) H D L집 집집집 집집집 10 10 집집 5 5 집집집집집집집집, 집집집집 집집집집집집 집집, 집집집집집 70 집 80 집 90 집

목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

  • Upload
    lythu

  • View
    215

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

1VADA Lab.

Introduction◈ 집적회로 설계의 변천과정

시 기

설 계방 법

설 계예

설 계범 위

설 계도 구

트 랜 지 스 터 레 벨 의 레 이 아 웃 설 계

( )상 향 식 설 계

레 이 아 웃 편 집 기

10 게 이 트 이 하3

, , 게 이 트 카 운 터, 멀 티 플 렉 서 가 산 기

RTL 게 이 트 나 게 벨 의논 리 설 계

알 고 리 듬 이 나 기 능 레 벨 의 고 급 설 계

( )하 향 식 설 계

HDL 과 합 성 기 스 키 메 틱 편 집 기

10 게 이 트 이 하 10 게 이 트 이 상55

,마 이 크 로 프 로 세 서주 변 장 치

고 성 능 마 이 크 로 프 로,세 서

실 시 간 영 상 처 리 기

70 년 대 80 년 대 90 년 대

Page 2: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

2VADA Lab.

Introduction◈ HDL 설계와 컴퓨터 프로그래밍과의 비교

하 드 웨 어 설 계 컴 퓨 터 프 로 그 래 밍

게 이 트 레 벨 설 계( )구 조 적 기 술

합 성

실 리 콘컴 파 일 러

HDL ( )설 계 동 작 기 술

레 이 아 웃 설 계

어 셈 블 리 어프 로 그 램

고 급 언 어컴 파 일 러

어 셈 블 러

기 계 어 프 로 그 램

고 급 언 어 프 로 그 램

Page 3: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

3VADA Lab.

Introduction◈ WHAT IS VHDL?

▶ VHDL(Very high speed integrated circuit Hardware Description Language)

▶ 회로설계에서 상위의 동작 레벨에서부터 하위의 게이트 레벨까지 하드웨어를 기술하고 설계하도록 하는 언어 .

▶ CAD 업계 및 IEEE 의 표준 언어 .▶ 미국 정부가 지원 및 공인한 하드웨어 설계 언어 .

◈ VHDL 의 출현▶ 하드웨어의 모델링 , 문서화 , 합성 , 검증 , 제작 등의 하드웨어

설계 및 관리에서 상당한 불편과 문제점=> 표준화된 HDL 이 없었기 때문 (VHDL 출현의 직접적인 동기 )

Page 4: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

4VADA Lab.

Introduction▶ 미국 국방성의 VHSIC(Very High Speed Integrated Circuit) 프로젝트 일부로 만든 것이 VHDL 이다 .▶ 1986 년 3 월부터 시작하여 1987 년 12 월에 IEEE-1076 이라는 IEEE 표준 VHDL 이 탄생 .▶ 1991 년 IEEE-1076 에 합성기능의 강화를 위해 9 개로 구성된 표준 논리 레벨 (‘U’, ‘X’,’0’,’1’,’Z’,’W’,’L’,’H’,’-’) 를 정의한 IEEE-

1164 를 발표 .

◈ VHDL 을 이용한 회로 설계의 장점▶ VHDL 을 사용하게 되면 EDA Software 나 ASIC Library 에 상관없이 설계를 할 수 있다 .▶ VHDL 을 이용하여 반도체 내부 회로에 대한 검증부터 System 설계까지 할 수 있다 .

Page 5: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

5VADA Lab.

Introduction▶ VHDL 로 회로 설계한 것을 Synthesis Software 를 이용하여

실제 반도체 회로를 얻을 수 있다 .

◈ VHDL 의 표현방법▶ 동작적 모델링 (Behavioral Modeling)

― 고급 컴퓨터 언어를 사용해서 프로그램을 작성하는 것과 비슷함 .― 시스템의 하드웨어 구조와는 상관없이 표현― 입력에 따른 출력 결과만을 고려한 기술 .

▶ 구조적 모델링 (Structural Modeling)― 모든 회로의 컴포넌트 (Component) 뿐만 아니라 이들의

상호연결을 나타냄 .― Component 와 gate 와의 상호연결을 나타냄 .

Page 6: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

6VADA Lab.

Introduction

Design Entry

Timing simulation

Synthesis

Function Simulation

VHDL 동 작 표 현

VHDL 동 작 검 증

Netlist

◈ VHDL 을 이용한 설계 과정

Page 7: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

7VADA Lab.

Introduction

°¢ Design Block VHDL Ç¥Çö

Top-LevelÀÇ È¸·Î ±×¸²

▶ Design Entry

Page 8: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

8VADA Lab.

Introduction

°¢ Design BlockÀÇ VHDL °ËÁõ

Top-LevelÀÇ VHDL °ËÁõ

▶ Function Simulation

Page 9: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

9VADA Lab.

Introduction

Read VHDL (Design Block)

회 로 에 대 한 고 려 사 항 선 택

Optimize

Report

Area, Speed,Technology

▶ Synthesis

Page 10: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

10VADA Lab.

Introduction

Library ¹× ȸ·Î Á¡°Ë

Design Block¿¡¼ ÀÇ Á¡°Ë

Top-Level¿¡¼ ÀÇ Á¡°Ë

▶ Timing Simulation(Gate-level Simulation)

▶ VHDL 을 이용한 방법▶ Verilog-HDL 을 이용한 방법▶ EDIF 를 이용하는 방법

Page 11: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

11VADA Lab.

VHDL 의 구조◈ VHDL 의 기본구조

▶ ENTITY DECLARATION― 설계하고자 하는 회로의 이름과 입출력 인터페이스 정의― 하드웨어의 검사 및 동작에 필요한 design parameter 선언

Entity entity_ 이름 is <generic(generic_list); > <port(port_list);> { 선언문 } <begin { 문장 }; >end <entity_ 이름 >;

☞ Generic― 회로 동작 표현을 위한 design parameter 를 선언― Entity 나 ARCHITECTURE 에서 사용할 임의의 값을 선언

Page 12: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

12VADA Lab.

VHDL 의 구조― 일단 generic 으로 선언된 generic_list 는 상수 (constant) 가 된다― 회로 표현에 대한 편의성과 공정성을 도모

entity sample is generic(B : integer := 3); port(Sel : in std_logic_vector(1 to B);

Dout : out std_logic_vector(1 to 2**B);end sample;

☞ Port― 지정어로 시작하며 괄호 안의 port_list 를 통하여 외부와 연결― port_list : mode, data type― data type : std_logic, std_logic_vector, integer 등― mode : signal 의 방향 (in, out, inout, buffer)

― In : signal 이 entity 로 들어오는 (input) 경우에 사용 .― Out : entity 로부터 나가는 (output) 경우 사용 .

Page 13: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

13VADA Lab.

VHDL 의 구조― Inout : 위의 두 가지 모두가 가능한 (bidirectional) 경우 사용 .― Buffer : out 기능에 signal 을 entity 내에서 다시 읽는 기능을 추가 .

☞ 선언문― 하나의 Entity 는 복수개의 Architecture 를 사용할 수 있다 . ― 이런 여러 종류의 Architecture 에서 공용으로 사용할 선언관련 Paramete

r 를 선언해 주는 역할 .― 일반적으로 선언문은 Package 나 Architecture 에서 선언― Package 에서는 공통으로 사용하게 될 선언을 한다

In Out

BufferInout

Page 14: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

14VADA Lab.

VHDL 의 구조― 선언문으로 올 수 있는 것

― ALIAS ,ATTRIBUTE, CONSTANT, DISCONNECTION, FILE ― SIGNAL, Subprogram 선언 및 동작 표현 , SUBTYPE, TYPE, USE

entity sample is port(…….); type three_level_logic is (‘0’,’1’,’X’); use WORK.SPECIALS.all; ……end sample;

☞ 문장― 값의 설정이나 소거와 같은 assertion― Setup/hold time 이나 펄스폭 등의 검사 (check).― 허용되는 문장

― concurrent assertion 문 , concurrent procedure call, process 문

Page 15: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

15VADA Lab.

VHDL 의 구조 entity rsff is

port(s,r : in std_logic; q,q_bar : buffer std_logic);

constant setup : Time := 10 ns; begin ….. Assert not (s=‘1’ and r=‘1’) <= 조건이 만족하지 않을때 report “s&r are ‘1’” s 와 r 이 둘 다 1 일 때 severity ERROR; ….. Timingcheck(setup,….); end;

☞ 최소 entity 선언― Test bench 와 같이 입력과 출력이 없는 하드웨어 구조를 표현 .

Entity Test isend;

Page 16: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

16VADA Lab.

VHDL 의 구조▶ ARCHITECTURE BODY

― 회로의 실질적인 동작이나 연결 상태 등을 표현― 하나의 Entity 에 복수개의 Architecture 사용

Architecture architecture_ 이름 of entity_ 이름 is { 선언문 } begin { 동작표현 }end <architecture_ 이름 >;

☞ 선언문― Architecture 안에서 사용할 각종 Type 과 변수 종류들을 선언― 선언문으로 올 수 있는 것

― ALIAS ,ATTRIBUTE, CONSTANT, DISCONNECTION, FILE ― SIGNAL, Subprogram 선언 및 동작 표현 , SUBTYPE, TYPE, USE

Page 17: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

17VADA Lab.

VHDL 의 구조☞ 동작표현

― 하드웨어의 내부 동작 및 구조를 표현― 기능에 의한 분류

― Concurrent 문 어떤 회로에 대한 동시적인 회로 상태의 변화 표현 문장들의 순서에 상관없이 똑같이 우선순위를 가진다 Simulation 을 하면 첫번째 줄에 있는 동작 표현이나 마지막 줄에 쓰여진 동작 표현이나 같은 시간에서 동시에 simulation 된다 .

― Sequential 문 일반적인 Logic 의 순차적 상태를 기술할 수 있는 문자 반드시 앞의 문장이 진행되어야만 뒤의 문장이 실행된다 . Concurrent 문의 Subprogram 과 process 문에서만 사용 .

― 상태에 의한 분류― Behavioral ― Dataflow― Structural

Page 18: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

18VADA Lab.

VHDL 의 구조▶ SUBPROGRAM 과 PACKAGE

― 많이 사용하거나 중복되는 부분을 function 이나 procedure 와 같은 subprogram 을 이용하여 간단하게 표현 .

― 이러한 subprogram 이나 각종 선언문 등을 따로 모아서 만든 것이 package 이다 .

☞ Subprogram ― Function

― 지연 없이 계산하여 return 하므로 wait 문을 포함할 수 없다 .― Signal assignment 문을 사용할 수 없다 .― Type conversion, 연산자 overloading, signal resolution 에 주로 사용 .― Parameter 는 입력용으로 사용하고 결과 값은 return 뒤에서 정의한

type_ 지정의 data_type 을 가진 function 값을 되돌려 받는다 .― Procedure

― Signal 문과 wait 문을 허용 .― Parameter 를 통하여 입력 값을 전달하고 결과를 받는다 .

Page 19: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

19VADA Lab.

VHDL 의 구조― Procedure 와 function 의 형식

Procedure procedure_ 이름 <(parameter_list)> is { 선언문 }

begin {sequential 문 }

end <procedure_ 이름 >;

Function function_ 이름 <(parameter_list)> return type_ 지정 is { 선언문 }

begin {sequential 문 }

end <function_ 이름 >;

Page 20: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

20VADA Lab.

VHDL 의 구조― Procedure 와 function 의 예

Procedure invert1(X : in std_logic; Y : out std_logic) is begin if X=‘0’ then Y <= ‘1’; else Y <= ‘0’; end if; end invert1;

Function invert2 (X : std_logic) return std_logic is begin

if X=‘0’ then return ‘1’; else return ‘0’; end if; end invert2;

Page 21: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

21VADA Lab.

VHDL 의 구조☞ Package

― Data type, function, procedure 를 한 장소에 모아서 선언하여 VHDL 설계에서 공동으로 사용할 수 있게 한다 .

― C 언어에서 header file 과 같은 기능 .― 독립적인 File 로 존재 .― Library 에 종속되어 다른 VHDL 표현 문장에서 use 문 사용하여 참조된다 .

― Package 형식― Package declaration 외부와의 인터페이스 역할 .

여기에 선언된 것은 외부에서 사용 가능 VHDL 작성과정에서 공통적으로 필요로 하는 type 선언이나

subprogram 선언을 한다 .

― Package body package declaration 에서 정의한 subprogram 의 body 포함

Page 22: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

22VADA Lab.

VHDL 의 구조 Package package_ 이름 is

{ 선언문 } end <package_ 이름 >;

package body package_ 이름 is { 문장 } end <package_ 이름 >;

― Package declaration 과 body 의 사용 예제 -- package declaration

Package sample istype three_level_logic is (‘0’,’1’,’X’);function “and”(A,B : three_level_logic) return three_level_logic;end sample;

Page 23: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

23VADA Lab.

VHDL 의 구조 -- package body

Package body sample is function “and” (A,B : three_level_logic) return three_level_logic is begin if A=‘1’ and B=‘1’ then return ‘1’; elsif A=‘X’ or B=‘X’ then return ‘X’; else return ‘0’; end if;

end “and”; -- other subprogram specification end sample;

Package 의 사용 Use library_ 이름 .package_ 이름 . 내용 Package 의 모든 내용을 사용하고 싶을 때는 내용에 all 을 사용

Page 24: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

24VADA Lab.

VHDL 의 구조▶ CONFIGURATION

― 하나의 entity 에 여러 개의 architecture 로 된 design 을 simulation 할 때 configuration 으로 하나의 entity 에 하나의 architecture를 연결하여 simulation 을 할 수 있다 .

― Design Unit 의 회로 상태를 가장 간단하게 설명― 계층구조의 회로를 simulation 이나 synthesis 할 때 미리 compil

e 된 file 의 형태의 데이터 베이스와 연결 .

▶ DESIGN LIBRARY― 이미 설계한 것을 저장하여 필요 시에 이용할 수 있도록 설계한

것을 공유하도록 하는 일종의 저장장소 (WORKING LIBRARY).― 표준 data type 이나 ASCII 파일에서 읽거나 쓰기를 위하여

사용되는 subprogram 등을 정의 (RESOURCE LIBRARY).

Page 25: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

25VADA Lab.

VHDL 의 구조Primary

unitSecoundary

unit

Packagedec laration

Entitydec laration

Architec turebody

Packagebody

Page 26: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

26VADA Lab.

VHDL 의 구조VHDL analyzerVHDL source

code

VHDL resource library VHDL resource library

VHDL working library

VHDL simulatorSimulationcommands

VHDL resource library VHDL resource libraryVHDL working library

Simulation waveform Assertion messagetext file

Text file

Fig 1. VHDL library and VHDL analyzer

Fig 2. VHDL library and VHDL simulator

Page 27: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

27VADA Lab.

VHDL 의 구조▶ TEST BENCH

― Simulation Pattern(Input Stimulus) 을 서술하는 문장― IEEE 에 정식 등록― 다른 Simulator 에서도 공동으로 사용

Page 28: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

28VADA Lab.

VHDL 의 구조◈ 간단한 VHDL 모델링의 예

▶ 전가산기의 구성 및 진리표

X

Y

C _ in

S_out

C _out

HA2 : Half_Adder

HA1 : Half_Adder

t_s

t_ c1

t_c2 ORG :OR2

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

0

0

1

0

1

1

1

0

1

1

0

1

0

0

1

X Y C _ in C _ out S_out

Page 29: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

29VADA Lab.

VHDL 의 구조▶ 전가산기의 VHDL 모델링

― Entity Declaration

Library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;

entity Full_Adder is port ( X,Y,C_in : in std_logic; S_out,C_out : out std_logic); end Full_Adder;

Page 30: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

30VADA Lab.

VHDL 의 구조▶ 전가산기의 VHDL 모델링

― Architecture Body( 동작적 모델링 )

architecture Behave of Full_Adder is begin process(X,Y,C_in) variable l : integer; begin l := 0; if X=‘1’ then l := l+1; end if; if Y=‘1’ then l := l+1; end if; if C_in=‘1’ then l:= l+1; end if; if (l=0) or (l=2) then S_out <= ‘0’; else S_out <= ‘1’; end if; if (l=0) or (l=1) then C_out <= ‘0’; else C_out <= ‘1’; end if; end process; end Behave;

Page 31: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

31VADA Lab.

VHDL 의 구조▶ 전가산기의 VHDL 모델링

― Architecture Body( 구조적 모델링 )

architecture Structure of Full_Adder is signal t_s,t_c1,t_c2 : std_logic component OR2 port(i1,i2 : in std_logic; o : out std_logic); end component; component Half_Adder port(A,B : in std_logic; S,C : out std_logic); end component;

begin

Page 32: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

32VADA Lab.

VHDL 의 구조 HA1 : Half_Adder port map (X,Y,t_s,t_c1); HA2 : Half_Adder port map (t_s,C_in,S_out,t_c2); ORG : OR2 port map (t_c1,t_c2,C_out); end Structure;

Page 33: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

33VADA Lab.

VHDL 의 구조▶ OR 게이트 VHDL 모델링

Entity OR2 is port(i1,i2 : in std_logic; o : out std_logic); end OR2;

Architecture Behave of OR2 is begin process begin if (i1=‘0’) and (i2=‘0’) then o <= ‘0’; else o <= ‘1’; end if; wait on i1,i2; end process; end Behave;

Page 34: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

34VADA Lab.

VHDL 의 구조▶ 반가산기 VHDL 모델링

Entity Half_Adder is port(A,B : in std_logic; S,C : out std_logic); end Half_Adder;

Architecture Behave of Half_Adder is begin process begin if (A=B) then S <= ‘0’; else S <= ‘1’; end if; if (A=‘1’) and (B=‘1’) then C <= ‘1’; else C <= ‘0’; end if; wait on A,B; end process; end Behave;

0

0

1

1

0

1

0

1

0

0

0

1

0

1

1

0

A B C S

Page 35: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

35VADA Lab.

VHDL 의 구조▶ TEST BENCH

Entity FA_test is end FA_test;

Architecture Test of FA_test is

signal X,Y : std_logic; signal C_in : std_logic := 0; signal S_out,C_out : std_logic;

component Full_Adder port(X,Y,C_in : in std_logic; S_out,C_out : out std_logic); end component;

begin FA : Full_Adder port map (X,Y,C_in,S_out,C_out)

X <= ‘0’, ‘1’ after 40 ns. ‘0’ after 80 ns;

Page 36: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

36VADA Lab.

VHDL 의 구조 Y <= ‘0’, ‘1’ after 20 ns, ‘0’ after 40 ns, ‘1’ after 60 ns, ‘0’ after 80 ns; C_in <= ‘0’, ‘1’ after 10 ns, ‘0’ after 20 ns, ‘1’ after 30 ns, ‘0’ after 40 ns, ‘1’ after 50 ns; end Test;

configuration cfg_FA of FA_test is for Test for FA : Full_Adder use entity Work.Full_Adder(Behave); end for; end for; end cfg_FA;

Page 37: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

37VADA Lab.

VHDL 의 구조▶ Simulation 결과 파형

10 9080706050403020

C _ IN

Y

X

C _OUT

S_OUT

Page 38: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

38VADA Lab.

CONCURRENT 문◈ 순서에 상관없이 동시 다발적으로 수행되는 문장 .◈ 문장이 위치하는 줄에 상관없이 동시에 수행 .◈ Architecture 본문에서 주로 사용 .

BLOCK PROCESS PROCEDURE Call SIGNAL 전달문 ASSERT COMPONENT 관련문 GENERATE

Page 39: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

39VADA Lab.

CONCURRENT 문◈ BLOCK

▶ 회로 설계 시에 내부적으로 계층구조를 가져야 할 때 사용▶ Structural 표현을 하지 않고 전체 회로 동작을 표현

[label :] block (guard_ 조건 ) { 선언문 } begin {concurrent 문 } end block [label]

Page 40: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

40VADA Lab.

CONCURRENT 문▶ Example1

entity LATCH is port ( D, ENB : in std_logic; Q, QB : out std_logic); end LATCH;

architecture LATCH_GUARDED of LATCH is begin B1 : block (ENB = ‘0’) begin Q <= guarded D after 5 ns; QB <= guarded not (D) after 7 ns; end block; end LATCH_GUARDED

Page 41: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

41VADA Lab.

CONCURRENT 문◈ PROCESS

▶ Behavioral 로 표현할 수 있는 가장 일반적인 회로 표현 방법▶ Sequential 문을 본문으로 사용

[process_ 레이블 :] process [(sensitivity_list)] { 선언문 } begin {sequential 문 } end process [process_ 레이블 ];

★ sensitivity_list : signal 의 이름을 list 로 가지며 이들 signal중에서 적 어도 하나의 값이 변해야 process 문이 수행

Page 42: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

42VADA Lab.

CONCURRENT 문▶ Example

entity AND-OR is port ( I1,I2 : in std_logic; O1,O2 : out std_logic); end AND-OR;

architecture SAMPLE of AND-OR is begin process(I1,I2) begin O1 <= I1 and I2 after 5 ns; O2 <= I1 or I2 after 5 ns; end process; end AND-OR;

Page 43: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

43VADA Lab.

CONCURRENT 문▶ Example

entity AND-OR is port ( I1,I2 : in std_logic; O1,O2 : out std_logic); end AND-OR;

architecture SAMPLE of AND-OR is begin process begin O1 <= I1 and I2 after 5 ns; O2 <= I1 or I2 after 5 ns; wait on I1, I2; end process; end AND-OR;

Page 44: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

44VADA Lab.

CONCURRENT 문◈ SIGNAL 전달문

▶ Signal 로 선언된 선언자나 entity 의 port 에서 선언된 출력 값에 임의의 상태 값을 전달하는 문장

▶ 조건적 signal 전달문▶ Sequential 문의 if 와 비슷한 구조

[label :] signal_ 이름 <= 파형 1 when 조건 1 else 파형 2 when 조건 2 else . . 파형 n-1 when 조건 n-1 else 파형 n;

Page 45: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

45VADA Lab.

CONCURRENT 문▶ 선택적 signal 전달문

▶ Sequential 문의 case 와 비슷한 구조

[label :] with 수식 select signal_ 이름 <= 파형 1 when 선택 1, 파형 2 when 선택 2, . . 파형 n when 선택 n;

Page 46: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

46VADA Lab.

CONCURRENT 문▶ Example1( 조건적 signal 전달문 )

architecture SAMPLE of XOR-GATE is begin Z <= ‘0’ after 5 ns when A=B else ‘1’ after 5 ns; end SAMPLE;

▶ Example2( 선택적 signal 전달문 )

architecture SAMPLE of DECODER isbegin with sel select dout <= “0001” after 5 ns when “00”, “0010” after 5 ns when “01”, “0100” after 5 ns when “10”, “1000” after 5 ns when others;end SAMPLE;

Page 47: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

47VADA Lab.

CONCURRENT 문◈ ASSERT

▶ 임의의 조건에 만족되지 않을 때 내용을 화면에 출력하고 등급을 나누어 Simulation 의 진행을 조종

assert 조건 [report 메시지 ] [severity 레벨 ]

▶ Report 메시지

― Note : 메시지의 화면 출력―Warning : 메시지 출력 , 발생 시간 및 장소 출력 , 시뮬레이션 계속―Error : 메시지 출력 , 시뮬레이션 중지―Failure : 메시지 출력 , 시뮬레이션 상태로부터 빠져 나옴

Page 48: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

48VADA Lab.

CONCURRENT 문▶ Example

entity RS-FF is port ( S,R : in std_logic; Q : out std_logic); end RS-FF;

architecture SAMPLE of RS-FF is begin process begin assert not (S=‘1’ and R=‘1’) report “Both S and R are ‘1’”; severity Error; …... end process end SAMPLE

Page 49: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

49VADA Lab.

CONCURRENT 문◈ COMPONENT 관련문

▶ Component Declaration component 식별어 [generic(….);] [port(…..);] end conponent;

▶ Component Instantiation

label : component_ 이름 [generic map(association_list);] [port map(association_list);]

Page 50: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

50VADA Lab.

CONCURRENT 문▶ Example

architecture SAMPLE of TEST is component sub port(In1,In2 : in std_logic; Out1 : out std_logic); end component; signal A,B,C ; std_logic; begin U0 : sub port map(In1 => A, In2 => B, Out1 => C); end TEST;

Page 51: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

51VADA Lab.

CONCURRENT 문◈ GENERATE

▶ 규칙적인 하드웨어를 설계하는 경우에는 주어진 조건에 따라 여러 번 반복적으로 component 문을 사용하기 위하여 사용 .

▶ 메모리 배열 , 레지스터

label : generation_scheme generate concurrent 문 end generate [label];

★ Generation_scheme : For scheme 과 If scheme.

Page 52: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

52VADA Lab.

CONCURRENT 문▶ Example

▶ Entity declaration

entity shifter is port (si, cp : in std_logic; so : out std_logic); end shifter;

df1 df4df3df2

d d d dq q q qsi

cp

p(0) p(3)p(2)p(1) p(4)so

Page 53: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

53VADA Lab.

CONCURRENT 문 -- Generater 문을 사용하지 않을 때

architecture sample of shifter is signal p : std_logic_vector(0 to 4) component dff port(d,cp : in std_logic; q : out std_logic); end component; begin df1 : dff port map (si,cp,p(1)); df2 : dff port map (p(1),cp,p(2)); df3 : dff port map (p(2),cp,p(3)); df4 : dff port map (p(3),cp,so); end sample;

▶ Architecture body

-- Generater 문을 사용할 때

architecture sample of shifter is signal p : std_logic_vector(0 to 4) component dff port(d,cp : in std_logic; q : out std_logic); end component; begin p(0) <= si; gl : for I in 0 to 3 generate dfx : dff port map(p(i),cp,p(i+1));

end generate; so <= p(4); end sample;

Page 54: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

54VADA Lab.

SEQUENTIAL 문◈ Behavioral 표현을 위하여 실질적으로 사용되는 문장◈ 일반 computer 언어와 표현 방법이 흡사◈ 어떤 실행문을 순차적으로 진행할 필요가 있을 때 사용◈ Process 문이나 subprogram 문 안에서 만이 표현 가능

CASE, EXIT, IF, LOOP,NEXT, VARIABL & SIGNAL 전달문 , RETURN, WAIT

Page 55: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

55VADA Lab.

SEQUENTIAL 문◈ IF 문

▶ 임의의 상태를 갖는 조건을 분석하여 그 조건에 해당하는 수행문만을 실행

if 조건 then ---첫 번째 형식 sequential 문 1 end if;

if 조건 then --- 두 번째 형식 sequential 문 1 else sequential 문 2 end if;

if 조건 then --- 세 번째 형식 sequential 문 1

elsif 조건 2 then sequential 문 1 . . else sequential 문 n end if;

Page 56: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

56VADA Lab.

SEQUENTIAL 문▶ Example

process begin if x=‘0’ and y=‘0’ then z <= ‘1’; elsif x=‘X’ or y <= ‘X’ then z <= ‘X’; else z <= ‘0’; wait on x,y; end process;

Page 57: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

57VADA Lab.

SEQUENTIAL 문◈ CASE 문

▶ 수식의 값에 따라 문장을 선택

case 수식 is when 값 1 => sequential 문 1 when 값 2 => sequential 문 2 . . . when 값 n => sequential 문 n; when others => 문장 ; end case;

▶ Example

process begin case choice is when 1|2 => outz <= ‘1’; when 3 => outz <= ‘0’; when others => outz <= ‘X’; end case; end process;

Page 58: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

58VADA Lab.

SEQUENTIAL 문◈ LOOP 문

▶ 조건이 만족할 때까지 수행을 반복▶ 반복적인 수행을 벗어나기 위해서는 loop 에 for 나 while 의 조건을 사용

[label] : loop ---- 첫 번째 형식 sequential 문 end loop[label]; [label] : for loop_variable in variable_range loop ---- 두 번째 형식 sequential 문 end loop[label]; [label] : while 조건 loop ---- 세 번째 형식 sequential 문 end loop[label];

Page 59: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

59VADA Lab.

SEQUENTIAL 문▶ Example

loop1 : ---- 첫 번째 형식의 예 loop a := a+1; b := b+a; if a > 10 then exit loop1; end loop1;

loop1 : ---- 두 번째 형식의 예 for a in 1 to 10 loop b := b+a; end loop1;

loop1 : ---- 세 번째 형식의 예 while a <= 10 loop a := a+1; b := b+a; end loop1;

Page 60: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

60VADA Lab.

SEQUENTIAL 문◈ WAIT 문

▶ Process 문의 수행을 잠시 대기시킴으로써 활동 (active) 과 중지사이의 변화를 제어

wait on signal_list; ---- 첫 번째 형식 wait until 조건 ; ---- 두 번째 형식 wait for 시간 ; ---- 세 번째 형식

▶ Example

wait on a,b,c; : signal a,b,c 에 이벤트가 변화가 있을때 까지 대기 wait until clk=‘1’; : clk이 ‘ 1’이 되면 수행 계속 wait for 10 ns; : 10ns 동안 대기

Page 61: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

61VADA Lab.

SEQUENTIAL 문◈ SIGNAL & VARIABLE 전달문

▶ VHDL 에서 상태 값을 전달하는 문장 표현

▶ SIGNAL 전달문▶ Entity 에서 port 로 선언된 것들 또는 그 밖의 선언문에서 signal

로 선언된 변수에 값을 전달하는 것 .

▶ Hardware 적 특성

▶ 명시된 지연시간이 없으면 델타 지연 (delta delay) 이 적용

▶ VARIABLE 전달문▶ Subprogram 이나 process 문에서 variable 로 선언된 임시 변수에

값을 전달하는 것 .

▶ Software 적 특성

Page 62: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

62VADA Lab.

SEQUENTIAL 문▶ DELAY 에 의한 전달 방식

▶ Delta delay― 명시된 지연시간보다 작으며 0 보다는 크지만 아주 작은 지연― Signal 에 지연에 대한 아무런 표현이 없어도 delta delay 를

기본값으로 가진다

▶ Inertial delay( 관성지연 )― 소자의 지연보다 작은 입력 지연 폭은 무시

▶ Transport delay(전달지연 )― 반도체 소자의 특성을 무시한 입력 변화를 그대로 전달

A B

Delay = 20ns

Page 63: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

63VADA Lab.

VHDL 의 구조▶ Simulation 결과 파형

40302010

B

A

B전달 지 연

관 성 지 연

입 력

Page 64: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

64VADA Lab.

DATA TYPE 과 OBJECT◈ DATA TYPE

▶ VHDL 초기의 DATA TYPE : BIT(‘0’,’1’)

▶ 1987년 IEEE 1076의 DATA TYPE : MVL7(Multi Value Logic 7)

▶ 1991 년 IEEE 1164의 DATA TYPE : MVL9▶ 특정 CAD 업계에 종속되지 않고 공통적으로 사용할 수 있는 표

준화된 논리 상태로서 9개의 상태 값을 가진다 .

▶ Library IEEE; Use IEEE.std_logic_1164.all;

▶ 9개의 상태 값― ‘U’ : Uninitialized

― ‘X’ : Strong Unknown

Page 65: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

65VADA Lab.

DATA TYPE 과 OBJECT― ‘0’ : Strong Logic 0

― ‘1’ : Strong Logic 1

― ‘Z’ : High Impedance

― ‘W’ : Weak Unknown

― ‘L’ : Weak Logic 0

― ‘H’ : Weak Logic 1

― ‘-’ : Don’t care

▶ 상위 레벨 설계를 위하여 9개의 논리레벨과 함께 여러 가지 Data type 이 존재― Scalar type : integer, floating point, enumeration, physical

― composite type : record, array

― access type

― file type

Page 66: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

66VADA Lab.

DATA TYPE 과 OBJECT◈ Integer Type

▶ -(231 - 1) 에서 (231 - 1) 까지의 모든 정수를 정의

▶ 구현에 따라 범위가 달라진다 .

▶ Example

Type byte is range -128 to 128; Type Bit_position is range 15 downto 0;

◈ Floating Point Type▶ 소수점을 가진 수를 정의

▶ 하드웨어 표현시에 더 크고 더 정밀하게 기술 .

▶ Example

Type Flt is range 0.0 to 1.0; Type Real is range -1.0E38 to 1.0E38;

Page 67: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

67VADA Lab.

DATA TYPE 과 OBJECT◈ Enumeration Type

▶ 괄호 안에 식별어나 character literal 을 가진다 .

▶ Example

Type Bit4 is (‘0’, ’1’, ’X’, ’Z’); Type Color is (red, blue, yellow);

◈ Physical Type

▶ 시간 , 저항 , 거리등과 같은 물리적인 양을 나타내기 위해 사용

▶ 기본단위를 먼저 선언하고 , 관련되는 단위는 기본단위를 이용하여

정의

Page 68: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

68VADA Lab.

DATA TYPE 과 OBJECT▶ Example

Type current is range 0 to 1000000000; units na; ua = 1000 na; ma = 1000 ua; a = 1000 ma; end units;

◈ Array Type

▶ Array 내의 모든 요소는 같은 data type 을 가진다 .

▶ 제한적인 (constrained) 것과 무제한적인 (unconstrained) 것이 있다 .

Page 69: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

69VADA Lab.

DATA TYPE 과 OBJECT▶ Example1( 제한적인 것 )

Type Word is array (15 downto 0) of bit; Type Byte is array (7 downto 0) of bit;

▶ Example2(무제한적인 것 ) Type String is array (Natural range <> ) of bit;

◈ File Type

▶ 외부 설계 환경과의 상호 연락을 위하여 사용되는 실제 컴퓨터 file 을

object 로 정의 Type file_type_ 이름 is file of type_ 이름 ;

▶ Example Type int_file is file of integer of bit;

Page 70: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

70VADA Lab.

DATA TYPE 과 OBJECT◈ OBJECT

▶ 주어진 data type 의 값을 가지는 것을 말한다 .

▶ CONSTANT, SIGNAL, VARIABLE 의 3 종류가 있다 .

▶ 선언형식

Constant constant_ 이름 {, constant_ 이름 } : data_type [:= 초기값 ];

Signal signal_ 이름 {, signal_ 이름 } : data_type [:= 초기값 ]; Variable variable_ 이름 {, variable_ 이름 } : data_type [:= 초기값 ];

Page 71: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

71VADA Lab.

연산자구 분 종 류 우 선 순 위

기 타 연 산 자

곱 셈 연 산 자

부 호

덧 셈 연 산 자

관 계 연 산 자

논 리 연 산 자 and, or, nand, nor, xor

** , ads, not

* , / , mod, rem

+, -

+, - , &

=, / =, <, <=, >, >=

6

2

3

4

5

1

Page 72: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

72VADA Lab.

연산자▶ Example

(3=4/2) and (x=z)

aa <= (x nor y) or z

“111” > “101” ------ true

signal a,b : std_logic; signal s1 : std_logic_vector(1 downto 0); signal s2 : std_logic_vector(2 downto 0);

s1 <= a & b; s2 <= s1 & a;

Page 73: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

73VADA Lab.

ATTRIBUTE◈ 회로의 표현에서 이미 선언된 data type 에 대한 간단한

동작 표현이나 회로의 동작 상태 등을 연결하여 사용하고자 할 때 사용

▶ TYPE 관련 ATTRIBUTE― Type’LEFT : Index Range 의 가장 왼쪽을 말함

― Type’RIGHT : Index Range 의 가장 오른쪽을 말함

― Type’HIGH : Index Range 의 가장 높은 구간을 말함

― Type’LOW : Index Range 의 가장 낮은 구간을 말함

― Type’BASE : type 으로 지정되기 이전의 type 을 말함

― Type’SUCC(V) : type 내에서 V 의 다음 순서를 말함

Page 74: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

74VADA Lab.

ATTRIBUTE― Type’PRED(V) : type 내에서 V 의 전 순서를 말함― Type’LEFTOF(V) : type 내에서 V 의 왼쪽에 있는 것을 말함― Type’RIGHTOF(V) : type 내에서 V 의 오른쪽에 있는 것을 말함― Type’POS(V) : type 내에서 V 가 몇 번째 값인가를 말함― Type’VAL(N) : type 내에서 N번째의 Value 를 말함

▶ Example type COLOR is (RED,BLUE, GREEN, YELLOW, BROWN, BLACK); variable A : COLOR;

A := COLOR’low; -- A = RED A := COLOR’succ(RED); -- A = BLUE A := COLOR’rightof(YELLOW); -- A = BROWN A := COLOR’val(3); -- A = GREEN

Page 75: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

75VADA Lab.

ATTRIBUTE▶ 배열 관련 ATTRIBUTE

― Type’LEFT[(n)] : N번째 Index Range 의 가장 왼쪽을 말함

― Type’RIGHT[(n)] : N번째 Index Range 의 가장 오른쪽을 말함

― Type’HIGH[(n)] : N번째 Index Range 의 가장 위를 말함

― Type’LOW[(n)] : N번째 Index Range 의 가장 아래를 말함

― Type’LENGTH[(n)] : N번째 Index Range 의 길이를 말함

― Type’RANGE[(n)] : N번째 Index Range 의 선언 상태에서의 구간

범위를 말함

― Type’REVERSE_RANGE[(n)] : N번째 Index Range 반대 선언 상태

의 구간 범위를 말함

Page 76: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

76VADA Lab.

ATTRIBUTE▶ Example

type BIT4 is array (0 to 3) of bit; type MEMORY is array (0 to 10, 0 to 5) of bit variable TEST : integer;

TEST := BIT4’length; -- TEST = 4 TEST := MOMERY’length(1); -- TEST = 11 TEST := MOMERY’length(2); -- TEST = 6

for i in MOMERY’range(2) loop -- 0 to 5 를 수행 for i in BIT4’reverse_range loop -- 3 to 0 을 수행 …… end loop; end loop;

Page 77: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

77VADA Lab.

ATTRIBUTE▶ SIGNAL ATTRIBUTE

― Signal’active : 현재의 Simulation 동안 signal 이 사용되어지면 true.

― Signal’last_active : signal 의 먼젓번 사용 순간 또는 사건 이후의 시간

― Signal’event : 현재의 simulation 에서 signal 이 변화되었다면 true

― Signal’last_event : 현재 시간부터 signal 의 마지막 변화 순간까지의

시간

― Signal’last_value : 변화되기 이전의 signal 값을 가져오게 한다

― Signal’delayed(T) : T 시간만큼 signal 이 지연된 상태와 동일하다

― Signal’quiet(T) : T 시간만큼 signal 이 사용되지 않았다면 ture

― Signal’stable(T) : T 시간만큼 signal 이 변화되지 않았다면 ture

― Signal’transaction : Simulation 동안 사용되어지거나 변화된 상태

Page 78: 목 차vada.skku.ac.kr/ClassInfo/vhdl/VHDL%20… · PPT file · Web view · 2002-04-04VHDL (Very high speed ... (Behavioral Modeling) 고급 컴퓨터 언어를 사용해서 프로그램을

SungKyunKwan Univ.

78VADA Lab.

ATTRIBUTE▶ Example

signal CLK, D : std_logic; constant TPHL : TIME :=5.24 ns; ... Process(CLK) begin if CLK’event and CLK=‘1’ then assert (D’last_event >= SETUP_TIME) report “Setup Time Violation” severity ERROR; OUT <= D’delayed(TPHL); end if; end process;