VHDL Package and Sub program

Slides:



Advertisements
Similar presentations
2013 년 목 차 용어의 정의 위기경보 수준 국가 생물테러 대응 체계도 반 · 팀별 소방의 임무.
Advertisements

© DBLAB, SNU 화일구조. 강의 소개 - 화일구조  Instructor : Prof. Sukho Lee (301 동 404 호 )  홈페이지 :  교과목 개요 – 이 과목은 데이타 관리와 응용을 위한 화일 구조의 설계와.
우측보행국민운동본부 본부장 / 공학박사 황 덕 수 오른쪽으로 걷는 생활이 더 편리하고 안전하다 - 신체발달특성, 생활사례, 관련법규 중심으로 -

화일구조.
제 4 장 변수, 영역, 수명 변수 바인딩 영역 기억장소 할당과 수명 변수와 그 환경 변수 초기화 상수와 변수.
1 08 Simple Sequential Logic Design with Finite State Machines & Timing Design.
Introduction 2007년 2학기.
VHDL Package & Subprogram
Copyright SangSangDom, All Rights Reserved.
VHDL 프로그램은 비동기 Reset을 갖는 D 플립플롭을 구현한 것이다
Dept. of Electronics & Info. Eng. Prof. Jongbok Lee
ASIC의 개요 ASIC(Application Specific Integrated Circuit) 특정 용도 주문형 집적회로
디지털 시계 설계.
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
Design of Digital Clock (디지털 시계의 설계)
순차로직 개요.
32비트 캐리 예측 덧셈기(CLA) RCA(Ripple Carry Adder)
디지털 산술과 연산회로.
1. VHDL과 합성 설계 1.1 HDL: Hardware Description Language 집적회로의 설계환경의 변화
가산기 설계.
Multiplexer 설계.
VHDL의 기본 Lecture #5.
Verilog HDL 이론.
VHDL Description D-latch C=1 일 때 Q 는 D의 입력 값 이 전달된다.
신호등 제어기 차량의 흐름에 따라 신호등의 신호를 제어하는 장치 신호등 제어기의 입출력 신호
PXA255-FPGA 장비 개요 및 실습 Lecture #9.
19장. 원격 조정 로봇 설계 김용애 1조 김정은 이동한 이재흔.
Part 08 함수 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 연락 주세요.
MAX+PLUS II 설치 및 디지털 시스템의 설계 방법
Chap. 18 라인 트레이서의 설계 라인 트레이서 바닥에 그려진 선을 따라가는 로봇을 의미 라인 트레이서 구성도
II. VHDL 설계부 4장. VHDL 개요 5장. VHDL 설계 구성 6장. VHDL 객체 및 타입 7장. VHDL 모델링
Chapter 9 – 부 프로그램 Outline 9.1 개요 9.2 매개변수 평가와 전달기법 9.3 형식 매개변수 명세
Ch2-2. VHDL Basic VHDL lexical element VHDL description
존슨카운터의 동작을 설명·설계할 수 있다 링카운터의 동작을 설명·설계할 수 있다
제 1 장 C 언어의 개요 Google 공동 창업자, 래리 페이지와 세르게이 브린.
VHDL의 기본 Lecture #4.
Data type and Object 자료형 변환 함수들은 std_logic_arith 패키지에 정의되어 있음.
디지털 시스템 설계(2).
Computer Architecture
FSM 설계.
Flip-Flop 설계.
Section 02 덧셈 회로 BCD 덧셈 회로 BCD 코드에서 십진수 (16)BCD =
5주차: Functions in C.
오브젝트 하드웨어 기술 언어 IT CookBook, VHDL을 이용한 디지털 회로 입문.
Programmable Logic Device
VHDL Mealy and Moore model
5장 이름, 바인딩, 영역(2) 순천향대학교 컴퓨터공학과 하상호.
제 10장 부 프로그램 10.1 개요 10.2 매개 변수 평가와 전달 기법 10.3 형식 매개 변수 명세
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
10. 소프트웨어 아키텍처 뷰 설계 명지대학교 융합소프트웨어학부 김정호 교수.
VHDL.
VHDL 디지털시계 2.
가산기 설계.
Chapter 4 변수 및 바인딩.
소프트웨어 형상관리: 목차 변경 및 형상관리의 기초 개념 형상항목 확인 및 버전관리 변경관리 감사 및 감사보고 99_11
화일구조.
디지털 시계 설계 장성락 전영진 임종엽 전보현 이형준.
LCD.
빛 의 합 성 과 학 1 학년 Ⅱ. 빛 > 2. 빛의 색( 8/8 ) [초기 화면]
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
ER-관계 사상에 의한 관계 데이터베이스 설계
실습 9 / 부울식 구현(결합 법칙을 이용한 논리회로 구현)
Report #4 (1) (due 4/4) 문제 #1 3개의 막대 A, B, C와 원판 n개를 전달받아 Hanoi 탑 문제를 해결하는데 필요한 원판의 이동 회수를 구하여 반환하는 hanoi_tower(n, A, B, C)를 작성하라. 여기서 원판 n은 막대 A에 쌓여 있고.
Stored program 장종원
[색채지각 ] Color Perception.
색채의 공감각 맛 음 냄새 촉감 5. 모양.
논리회로 설계 및 실험 9주차.
VHDL 응용 Lecture #10.
첨부 1. 불꽃 위치도 ※ 불꽃 발사 장소 : 수원월드컵경기장 남측 P4 주차장 뒤편 공원 (붉은색 원표시 부분)
Presentation transcript:

VHDL Package and Sub program Library : package 나 컴파일 된 VHDL 모델의 저장 장소 library 예> - work : 현재 실행중인 작업이 저장 되는 곳 - IEEE : std_logic_1164, std_logic_arith, std_logic_signed, std_logic_unsigned 등의 패캐지가 저장 되는 곳. Package : VHDL 코드의 저장장소. - 자료형(data type), 함수 (function), 프로시듀어(procedure), 컴포넌트 (component) 등을 한 장소(file)에 모아서 선언한것 이 패캐지는 다른 설계에서 불러내서 사용할 수 있다. - library 문에 종속된다. - 패캐지는 패캐지 선언과 몸체로 나누어 진다. Library and Package 예> Library ieee; -- IEEE package이 있는 library 이름 Use ieee.std_logic_1164.all; -- Ieee.std_logic_1164 package 사용

VHDL Package and Sub program 자료형 선언(data type declaration) 상수 선언(constant declaration) 신호 선언(signal declaration) 부프로그램 선언(subprogram declaration) 컴포넌트 선언(component declaration) 부 프로그램 (subprogram) 구문 ( 함수, 프로시듀어 ) Package declaration Package body *자료형과 상수만을 선언할 경우 package body 부분은 없어도 된다.

VHDL Package and Sub program Package에서 component 문 지정 사용형식 package 패키지_이름 is component 컴포넌트_이름 port( 포트신호_이름); end component; end 패키지_이름; 사용예 package full_adder_package is component full_add port( X, Y, Ci : in std_logic; S, Co : out std_logic ); end full_adder_package;

VHDL Package and Sub program LIBRARY IEEE; USE IEEE.std_logic_1164.all; PACKAGE gate_package IS component and_2 port(A, B : in std_logic; Y: out std_logic); end component; component or_2 port(A, B : in std_logic; Y : out std_logic); component nand_2 component nor_2 component inv port(A : in std_logic; Y : out std_logic); end component END gate_package ; * and_2, or_2, nand_2, nor_2 Inv 에 대한 behavior description 파일은 미리 작성되어 있어야함

VHDL Package and Sub program 다른 회로에서의 응용 예 > LIBRARY IEEE; USE IEEE.std_logic_1164.all; USE work.gate_package.all; ENTITY logic_system IS PORT(A, B, C : IN std_logic; X, Y : OUT std_logic); END logic_system; ARCHITECTURE structure OF logic_system IS signal aorb, bandc, cbar : std_logic; BEGIN gate0 : or_2 PORT MAP(A, B, aorb); gate1 : and_2 PORT MAP(B, C, bandc); gate2 : inv PORT MAP(C, cbar); gate3 : nand_2 PORT MAP(aorb, cbar, X); gate4 : nor_2 PORT MAP(bandc, cbar, Y); END structure;

VHDL Package and Sub program Logic_system 구조도 Gate0: OR_2 Gate1: and_2 Gate2: INV Gate3: NAND_2 Gate4: NOR_2 aorb bandc cbar

VHDL Package and Sub program 여러 번 반복 사용되는 부분을 하나의 모듈로써 지정하고, 필요 시마다 불러내어 사용하는 VHDL 문장 블록 서브프로그램 이름과 매개 변수를 이용하여 호출함으로써 서브프로그램을 실행하고 계산된 결과를 반환 받는다 서브프로그램으로는 procedure 와 function 이 있다. procedure 는 다수의 매개변수를 이용하여 다수의 문장을 처리한 후 얻어 지는 결과를 반환 받는 반면에 function은 하나의 함수식에 대한 처리결과를 반환 받는다. - Sub program의 위치는 Architecture 내의 선언부, Process 문장 선언부, Package 문장 선언부 내에 기술 가능하다.

VHDL Package and Sub program Procedure 와 function 의 차이점 항목 procedure function 호출 문장 (statement) 수식 (function) 반환값 다수의 값 반환 하나의 값 반환 매개변수모드 in, out, inout in 수식 계산열 중간 사용 사용 불가능 사용 가능 대기문

VHDL Package and Sub program - 순차 호출(Sequential Call) 순차문 내에서의 호출 (Process) - 병행 호출(Concurrent Call) 병행처리문 내에서의 호출 (architecture) - 매개변수의 mode 가 in 인 경우 : 상수 객체로 가정 out, inout 인 경우 : 변수 객체로 가정 - 매개 변수로써 변수, 상수는 사용가능하나 signal 은 사용 불가능 - procedure에서 반환값은 mode 가 out 인 매개변수로 정의 - procedure는 순차호출만 가능, function은 순차/병행 호출 가능 - function 에서 모든 매개변수는 상수 값

VHDL Package and Sub program Function 선언 형식 : function 함수_이름(매개변수_리스트) return 반환값_자료형; Function 몸체 형식 : function 함수_이름(매개변수_리스트) return 반환값_자료형 is [ 선 언 문 ] begin [ 순 차 문 ] end 함수_이름

VHDL Package and Sub program Function 선언 형식 예> architecture a of test is function or4bit(x,y: in std_logic_vector) return std_logic_vector is variable temp : std_logic_vector(3 downto 0); begin temp := x or y ; return(temp); end or4bit; y <= or4bit(a,b); end a; 함수 선언 (몸체 형식) 함수 call a, b 는 entity 에서 a, b : in std_logic_vector(3 downto 0)으로 기 지정되어야 함 함수 선언문에서는 Variable만 선언이 가능

VHDL Package and Sub program Procedure 선언 형식 : Procedure 프로시듀어_이름(매개변수_리스트) is Procedure 몸체 형식 : Procedure 프로시듀어 _이름(매개변수_리스트) is [ 선 언 문 ] begin [ 순 차 문 ] end 프로시듀어_이름

VHDL Package and Sub program Procedure 사용 예> library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity bin_adder is port(A, B : in std_logic_vector(3 downto 0); S : out std_logic_vector(4 downto 0)); end bin_adder; architecture behav of bin_adder is procedure add(a, b : in std_logic_vector; c : out std_logic_vector) is -- add procedure declaration begin c := a + b; end add; process(A, B) variable sum : std_logic_vector(4 downto 0); add(A, B, sum); -- add 호출 S <= sum; end process; end behav;

VHDL Package and Sub program Generic statement (범용문) 회로의 입출력 개수를 매개변수(parameter)에 의해 결정하도록 한다. 사용형식 entity 엔티티_이름 generic(범용문_이름); port(포트신호_이름); end 엔티티_이름; 사용 예> entity a is generic(n:integer :=4); port(X:in std_logic_vector(1 to n); Y:out std_logic_vector(1 to n) ); end a;

Attribute (속성) Attribute Return Value Example TYPE bit_range IS ARRAY (0 TO 31) OF BIT; type’LEFT 좌측 경계값 return type’RIGHT 우측 경계값 return 31 type’HIGH 상위 경계값 return type’LOW 하위 경계값 return TYPE color IS (red, yellow, green, blue, purple, orange); type’POS(blue) type값의 위치를 return 3 type’VAL(3) 위치 번호의 type값을 return blue type’SUCC(blue) 증가된 위치의 type값 return pruple type’PRED(blue) 감소된 위치의 type값 return green type’LEFTOF(green) 좌측 type값 return yellow type’RIGHTOF(green) 우측 type값 return

TYPE bit_range IS ARRAY (0 TO 31) OF BIT; Attribute (속성) Attribute Return Value Example TYPE bit_range IS ARRAY (0 TO 31) OF BIT; type’LENGTH 배열의 총 길이를 return 32 type’RANGE 지수 범위 (x TO xx)를 return (0 TO 31) Attribute Return Value signal’EVENT event가 발생되면 true signal’ACTIVE transaction이 발생되면 true signal’LAST_EVENT 마지막 event로 부터의 경과시간 signal’LAST_ACTIVE 마지막 transaction으로 부터의 경과시간 signal’LAST_VALUE 마지막 event 전의 signal값