DISEÑO DIGITAL CON VHDL, DISEÑO DIGITAL CON VHDL QUE ES VHDL
5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부...
Transcript of 5 . VHDL 설계설계 구성구성pds4.egloos.com/pds/200704/11/49/ch5.pdf · ii. vhdl 설계부...
II. VHDL 설계부
4장. VHDL 개요
5장 VHDL 설계 구성5장. VHDL 설계 구성
6장. VHDL 객체 및 타입
7장. VHDL 모델링
8장. VHDL 구문과 예제
- 1 -광 운 대 학 교전자정보대학
VHDL 소개
VHDL 특성
구 분 VHDL C구 분 VHDL C
계층적 표현선언과 본체 분리
계층적 모델링 (캡슐화, 사례화, 설계분류)헤더와 C 화일
타이밍객체
객체 및 타입
타이밍객체
다양한 자료형
자료형의 범위 및 제약
자료형의 속성
단순 자료형
단순 리터럴
다양한 리터럴
연산자의 다중 정의
블록 구조언어의 선언 영역 및 가시성
선언영역 및
가시성
선언 영역의 계층성
선언 영역의 중첩
선택적 선언 영역의 확장
동형 이의어의 선택
블록 구조언어의
선언영역 및 가시성
동형 이의어의 선택
하드웨어
모델링
행위/타이밍/구조기술
병행문/순차문 (감지리스트, 델타지연, 대기문)행위 알고리즘
기술 순차문
- 2 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
설계 단위독립적으로 분석되어 라이브러리화 될 수 있는 구성 단위
(Design Unit) 독립적으로 분석되어 라이브러리화 될 수 있는 구성 단위
설계 라이브러리
(Design Library)기존에 설계되어 분석이 완료된 설계 단위로서
다른 설계에서 재사용할 수 있다. (Design Library) 다른 설계에서 재사용할 수 있다.
패키지 선언
(Package Declaration)/패키지 몸체
패키지 선언은 다른 설계 단위에서 재사용될 공유 선언 정보를 선언한 설계 단위이다.패키지 몸체는 패키지 선언만을 지원하는 정보를 선언한 설계 단위/패키지 몸체
(Package Body) 패키지 몸체는 패키지 선언만을 지원하는 정보를 선언한 설계 단위이다.
엔티티 선언 새로운 회로의 이름, 외부와의 인터페이스 방법 및 특성을 정의한 설
(Entity Declaration) 계 단위이다.
아키텍쳐 몸체
(Architecture Body)엔티티 선언의 내부 회로를 표현하기 위한 동작 및 구조 정보를 기술한 보조 설계 단위로서 단독으로 재사용될 수 없다.(Architecture Body) 한 보조 설계 단위로서 단독으로 재사용될 수 없다.
구성 선언
(Configuration Declaration) 전체적인 회로의 구성을 위하여 계층적 연결 정보를 기술한 설계 단위이다.
- 3 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
설계 단위(Design Unit)
주요단위 보조단위주요단위
(Primary Unit)보조단위
(Secondary Unit)
공유정보Package Declaration
공유 선언 정보
Package Body비공유 선언 정보
하드웨어
동작/구조
Entity Declaration선언 및 인터페이스 정보
Architecture Body내부 동작 및 구조 정보
하드웨어
구성정보
Configuration Declaration연결 및 결합 정보구성정보 연결 및 결합 정보
- 4 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
설계 단위의 구성 및 상호 관계
Design File
Design Library
Package Declaration Package Body
Design Library
Architecture Body I
Architecture Body II
Entity Declaration
Design Library
Design Library
Configuration Declaration
Design Library
Primary Unit Secondary Unit
- 5 -광 운 대 학 교전자정보대학
: 주/보조 설계 단위 관계 : Use 문을 이용한 확장
5장. VHDL 설계구성
계층적 표현
설계 라이브러리(Design Library)설계 라이브러리의 분류
• Working Library : 현재 구현중인 설계 라이브러리• Working Library : 현재 구현중인 설계 라이브러리
• Resource Library : 분석이 완료되어 다른 설계 단위에서 재사용되는 라이브러리
라이브러리의 재사용(Use 문)라이브러리의 재사용(Use 문)• STD.STANDARD 패키지의 재사용은 default 처리가 이루어진다.
라이브러리 종류라이브러리 종류
• STD library : VHDL standard library (STANDARD, TEXTIO)• IEEE library : IEEE standard library ( std_logic_1164, std_logic_arith)
ASIC d lib l i t 를 정의한 tit hit t b d• ASIC vendor library : logic gate를 정의한 entity, architecture body• User-defined library : package, entity, architecture body, configuration • WORK library : 현재 작업중인 directory
- 6 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
VHDL 표현
• 라이브러리 지정
LIBRARY library_name ;• 패키지 재사용(Use Clause)
USE library_name.package_name.declaration_name ; USE library_name.package_name.ALL ;
• 엔티티와 아키텍쳐 몸체/구성 선언 재사용(Binding Indication)USE ENTITY library_name.entity_name(architecture_body_name) ;USE CONFIGURATION library_name.configuration_name ;
LIBRARY std, ieee, work;
USE std.standard.ALL; -- 생략 가능USE std.standard.ALL; 생략 가능
USE ieee.std_logic_1164.ALL; -- 패키지
USE k k ALL 사용자 정의 라이브러리USE work.my_pkg.ALL; -- 사용자 정의 라이브러리USE ENTITY work.d_flipflop(behavioral) ; -- 엔티티와 아키텍쳐 몸체
USE CONFIGURATION work.dff config ; -- 구성 선언
- 7 -광 운 대 학 교전자정보대학
US CO GU O ff_ f g ; 구성 선언
5장. VHDL 설계구성
계층적 표현
패키지 선언 및 패키지 몸체(Package Declaration & Package Body)패키지 선언(Package Declaration)
• 설계에서 공유될 정보를 정의한다• 설계에서 공유될 정보를 정의한다.공유할 타입/상수/서브프로그램 등을 선언한다.
• USE 문을 통하여 외부에서도 참조 가능하다.
패키지 몸체(Package Body)• 패키지 선언에서의 서브프로그램 몸체와 미정의 상수(Deferred constant)를 정의한
다다.Package내에 사용될 선언 중에서 공유하지 않을 내용 등을 정의한다.
• 패키지와 동일한 이름을 사용한다.• 자신 외의 다른 설계에서는 절대 참조하지 못한다자신 외의 다른 설계에서는 절대 참조하지 못한다.
- 8 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
주요 패키지 라이브러리
• STD 라이브러리(VHDL 표준 라이브러리)STANDARD; TEXTIO
• IEEE 라이브러리
합성지원 라이브러리 : STD_LOGIC_1164산술연산 라이브러리 : STD_LOGIC_ARITH; STD_LOGIC_UNSIGNEDMicrowave 라이브러리 : WAVES_1164_DECLARATIONS; WAVES_INTERFACE; WAVES_1164_FRAMES;WAVES_1164_UTILITIE; WAVES_OBJECTSVITAL 라이브러리(ASIC용 라이브러리) : VITAL timing; VITAL PrimitivesVITAL 라이브러리(ASIC용 라이브러리) : VITAL_timing; VITAL_Primitives
- 9 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
패키지 선언 및 패키지 몸체
VHDL 표현
PACKAGE my_pkg IS -- Package DeclarationTYPE ntype IS (lev0, lev1, lev2, lev3);FUNCTION add_ntype (in1, in2 : IN ntype) RETURN ntype;
END my pkg ;END my_pkg ;
PACKAGE BODY my_pkg IS -- Package BodyFUNCTION add_ntype(in1, in2 : IN ntype) RETURN ntype IS
VARIABLE temp : integer;BEGIN
IF(in1 = in2 ) THEN RETURN in1;RETURN in1;
ELSEtemp := ntype’POS(in1) + ntype’POS(in2);temp := temp MOD ntype’RIGHT+1;RETURN ntype’VAL(temp);
END IF;END FUNCTION;
END my pkg;
- 10 -광 운 대 학 교전자정보대학
END my_pkg;
5장. VHDL 설계구성
계층적 표현
패키지 선언 및 패키지 몸체와 다른 설계 단위와의 구성 관계
Package
Use Clause
Package P k B d
Use ClauseDefault
Package Package Body
Not Visible Not VisibleNot Visible
Use Clause Use Clause Default
Architecture Body
Configuration Entity
- 11 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
패키지 선언 및 패키지 몸체
패키지 선언 내에 정의 가능한 선언 내용
• VHDL’87/93• VHDL 87/93Subprogram Declaration -- 서브프로그램 몸체는 선언불가
Type DeclarationSubtype DeclarationypConstant DeclarationSignal DeclarationFile DeclarationAlias DeclarationComponent DeclarationAttribute Declaration/Attribute SpecificationDisconnection DeclarationDisconnection DeclarationUse Clause
• VHDL’93Shared Variable Declaration -- 동작 특성은 보장되지 않는다. (사용 주의)동작 특성 장되지 다 (사용 주의)Group Template DeclarationGroup Declaration
- 12 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
패키지 몸체 내에 정의 가능한 선언 내용
• VHDL’87/93Subprogram Declaration/Subprogram BodyType DeclarationSubtype DeclarationConstant DeclarationFil D l iFile DeclarationAlias DeclarationUse Clause
• VHDL’93• VHDL 93Shared Variable Declaration -- 동작 특성은 보장되지 않는다. (사용 주의)Group Template DeclarationGroup Declarationp
- 13 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
엔티티 선언(Entity Declaration) Entity 내의 선언(Declaration) 내용
• Generics (예제 line 4~8)• Generics (예제 line 4~8)외부에서 설정 가능한 특성 값으로 타이밍 특성 및 Bit Size의 설정에 사용된다.내부적으로는 상수로 사용되어 데이터를 변경할 수 없다.
• Port (예제 line 9~14)o (예제 e 9 )외부와의 인터페이스 정의하며, 입출력 경로를 나타낸다.
• 기타 선언문들을 포함할 수 있다.
Entity 내의 문장(Statement) 내용
• Passive Concurrent Statement (예제 line 16~17)신호 값을 갱신하지 않는 병행 문장을 기술할 수 있다.eg. Concurrent Assertion Statement/Concurrent Procedure call Statement (Passive)
/Process Statement (Passive)
- 14 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
외부 라이브러리의 재사용
• 참조할 라이브러리 및 패키지 이름을 기술한다. (예제 line 1~2)
1 LIBRARY work;2 USE work.timings.ALL;
3 ENTITYd ff ISD_FF_VEC
3 ENTITY d_ff_vec IS4 GENERIC (5 width : integer := 8;6 setup : time := 10 ns;7 pwidth : time := 50 ns
Din
Load7 pwidth : time := 50 ns8 ) ;9 PORT (10 din : IN bit_vector (width -1 DOWNTO 0) ;11 load : IN bit ;
Clk Dout
11 load : IN bit ;12 clk : IN bit ;13 dout : OUT bit_vector (width -1 DOWNTO 0)14 ) ;15 BEGIN16 ASSERT clk ='1' OR clk 'DELAYED'STABLE( pwidth ) ;17 checkingtiming(setup, din, load, clk) ;18 END d_ff_vec ;
- 15 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
엔티티 선언
엔티티와 다른 설계 단위와의 구성 관계
Package
Use Clause
EntityArchitecture
Body
Use Entity(Binding)Use Entity(Binding)
Architecture Body
Configuration Entity
- 16 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
엔티티 선언 내에 정의 가능한 선언 내용
• VHDL’87/93Subprogram Declaration/Subprogram BodyType DeclarationSubtype DeclarationConstant DeclarationSi l D l iSignal DeclarationFile DeclarationAlias DeclarationAttribute Declaration/Attribute SpecificationAttribute Declaration/Attribute SpecificationDisconnection DeclarationUse Clause
• VHDL’93Shared Variable Declaration -- 동작 특성은 보장되지 않는다. (사용 주의)Group Template DeclarationGroup Declaration
• 정의 불가능한 선언
Component Declaration; Configuration Specification
- 17 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
아키텍쳐 몸체(Architecture Body)아키텍쳐 몸체와 엔티티의 구성 관계
• 하나의 엔티티에 대하여 다수의 아키텍쳐 몸체를 정의할 수 있다• 하나의 엔티티에 대하여 다수의 아키텍쳐 몸체를 정의할 수 있다.
Package I Package II EntityArchitecture
B dPackage I Package II
Use Clausedefault
EntityBody
Architecture Body I
Use Clause
default
Use Entity(Binding)
Entity
Body I
Architecture Body II
- 18 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
아키텍쳐 몸체 내에 정의 가능한 선언 내용
• VHDL’87/93Subprogram Declaration/Subprogram BodyType DeclarationSubtype DeclarationConstant DeclarationSi l D l iSignal DeclarationFile DeclarationAlias DeclarationComponent DeclarationComponent DeclarationAttribute Declaration/Attribute SpecificationConfiguration SpecificationDisconnection DeclarationUse Clause
• VHDL’93Shared Variable Declaration -- 동작 특성은 보장되지 않는다. (사용 주의)Group Template DeclarationGroup Declaration
- 19 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
아키텍쳐 몸체
아키텍쳐 몸체 내의 문장 내용
• Concurrent Statements• Concurrent Statements각각의 병행문장은 독립된 프로세스로서 동시 수행되는 단위이다.모델링 방법에 따라서 행위적/구조적/타이밍 모델을 기술한다.엔티티 내의 모든 선언들을 참조할 수 있다.
• VHDL’87/93Block StatementProcess StatementConcurrent Procedure Call StatementConcurrent Assertion StatementConcurrent Signal Assignment StatementComponent Instantiation StatementComponent Instantiation StatementGenerate Statement
- 20 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현1 LIBRARY ieee ;2 USE ieee.std_logic_1164.ALL34 ENTITY d_ff IS5 PORT (din, clk : IN std_logic;6 dout : BUFFER std logic);
Din
D_FF
BehavioralModeling
6 dout : BUFFER std_logic);7 END d_ff ;
8 ARCHITECTURE behav OF d_ff IS9 BEGIN10 PROCESS (clk, din) ;11 BEGIN
Clk
Dout
Modeling 11 BEGIN12 IF clk’ EVENT AND clk = ‘1’ THEN13 dout <= din ;14 END IF15 END PROCESS16 END behav ;
StructuralModeling
17 ARCHITECTURE struc OF d_ff IS18 SIGNAL sig1, sig2, sig3, sig4 : std_logic ;19 COMPONENT or2 IS20 PORT ( in1, in2 : IN std_logic ;21 out1 : OUT std_logic );22 END COMPONENT22 END COMPONENT ;23 BEGIN24 u11 : or2 USE ENTITY work.ttl_or(behav) 25 PORT MAP (din, clk, sig1) ;26 u2 : inv USE ENTITY work.ttl_inv(behav)27 PORT MAP (din, sig2) ;28 12 2 USE ENTITY k l (b h )28 u12 : or2 USE ENTITY work.ttl_or(behav)29 PORT MAP (sig2, clk, sig3) ;30 u13 : or2 USE ENTITY work.ttl_or(behav)31 PORT MAP (sig1, sig4, dout) ;32 u14 : or2 USE ENTITY work.ttl_or(behav)33 PORT MAP (sig2, dout, sig4) ;
- 21 -광 운 대 학 교전자정보대학
( g g )34 END struc ;
5장. VHDL 설계구성
계층적 표현
구성 선언(Configuration Declaration)전체적인 회로의 구성을 위한 계층적 연결 정보를 표현한다.
구성 선언 내에 정의 가능한 선언 내용
• VHDL’87/93Use ClauseUse ClauseAttribute Specification
• VHDL’93Group Declarationp
구성 선언 내의 문장 내용
• Block ConfigurationBlock Configuration내부 구조를 표현하기 위하여 실제 하위 설계 단위와 컴포넌트와의 구성
관계를 기술한다.아키텍쳐/블록/생성문을 지칭하기위한 표현이다.컴포넌트 구성(Component Configuration)을 내부에 기술한다.컴포넌트와 실제 Entity(Architecture)/Configuration과의 구성 관계를 표현한다.
- 22 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성
계층적 표현
LIBRARY ttl;
CONFIGURATION config OF system IS
FOR t t bl k fi ti ( hit t )
system(struct)
FOR struct -- block configuration (architecture)
FOR u1 : alu -- component configuration
USE CONFIGURAITON ttl.sn74ls181 ;
END FOR;U21 : MUX
FOR u21, u22, u23 : mux
USE ENTITY work.multiplex (behav);
END FOR;
FOR ALL : l t h
U1 : ALU
U22 : MUX
U31: LATCH
FOR ALL : latch
-- DEFAULT BINDING
END FOR;
END FOR;
U23 : MUX
U32: LATCH
END;config
- 23 -광 운 대 학 교전자정보대학
5장. VHDL 설계구성