VHDL.

Slides:



Advertisements
Similar presentations
파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
Advertisements

컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
재료수치해석 HW # 박재혁.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
VHDL Package & Subprogram
VHDL 프로그램은 비동기 Reset을 갖는 D 플립플롭을 구현한 것이다
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
ASIC의 개요 ASIC(Application Specific Integrated Circuit) 특정 용도 주문형 집적회로
디지털 시계 설계.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
C 프로그래밍 I.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Design of Digital Clock (디지털 시계의 설계)
제 9 장 구조체와 공용체.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
가산기 설계.
Multiplexer 설계.
VHDL Description D-latch C=1 일 때 Q 는 D의 입력 값 이 전달된다.
오브젝트 플립플롭 IT CookBook, VHDL을 이용한 디지털 회로 입문.
19장. 원격 조정 로봇 설계 김용애 1조 김정은 이동한 이재흔.
VHDL Package and Sub program
Chap. 18 라인 트레이서의 설계 라인 트레이서 바닥에 그려진 선을 따라가는 로봇을 의미 라인 트레이서 구성도
VHDL Design : Barrel Shifter
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
Ch2-2. VHDL Basic VHDL lexical element VHDL description
존슨카운터의 동작을 설명·설계할 수 있다 링카운터의 동작을 설명·설계할 수 있다
Data type and Object 자료형 변환 함수들은 std_logic_arith 패키지에 정의되어 있음.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
FSM 설계.
Flip-Flop 설계.
Ch2-1. VHDL Introduction VHDL 정의 VHDL의 역사 VHDL의 장점 HDL의 종류 VHDL 모델링
Microprocessor I/O Port & CLCD Noh Jin-Seok.
VHDL Mealy and Moore model
JA A V W. 03.
어서와 C언어는 처음이지 제14장.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
논리회로 설계 및 실험 5주차.
에어 조건문.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
2장. 변수와 타입.
웹디자인
가산기 설계.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Chapter 02. 자바 기본 문법.
[ 단원 04 ] 반복과 배열.
제 6 장 함수(functions).
에어 PHP 입문.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
논리회로 설계 및 실험 4주차.
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
Numerical Analysis Programming using NRs
Chapter 11 구조체.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
.Net FrameWork for Web2.0 한석수
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
VHDL 응용 Lecture #10.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

VHDL

VHDL이란? 1. HDL(Hardware Descrption Language)의 필요성 2. VHDL의 유래 대형회로를 설계시 기존의 설계 방법 비효율성 (시간/비용 증가) 복잡한 하드웨어를 쉽게 기술하기 위하여 언어를 사용하는 방법 연구 프로그래밍 언어 : 회로의 지연처리, 합성등의 문제점 HDL : VHDL, VerilogHDL ,AHPL,IDL등이 연구, 사용 2. VHDL의 유래 VHSIC(Very High Speed Integrated Circuit Hardware) Description Language 미국 국방성에서 직접회로 관련 업체들 상호간에 개발을 위한 정보 교환 및 문서화를 위하여 제작 1987년 IEEE 1076-1987로 불리는 IEEE 표준 HDL탄생 1993년 IEEE 1076-1993으로 불리는 IEEE 표준 HDL new version 탄생 3. VHDL의 응용 분야 Documentation : 회로의 문서화 Simulation : 시물레이션을 통한 검증 Synthesis : 합성과정을 통해 실제 하드웨어로 제작 VHDL이란?

회로도를 이용한 설계와 VHDL을 이용한 설계 의 특징

VHDL의 구성 하드웨어 표현의 최소단위 : Design entity Design entity Entity Declaration Architecture Body VHDL의 구성

VHDL 문법 Library 및 use문 (library / package 선언부) Entity declaration Library ieee; Use ieee.std_logic_1164.all; Entity name is Port ( a : in std_logic_vector(2 downto 0); b, c, d : in std_logic; x, y : out std_logic); End name; Architecture arch of name is Signal u1, u2 : std_logic; Begin u1 <= c and b; u2 <= u1 when a = “001” else d; x <= u1; y <= not u2; End arch; Library 및 use문 (library / package 선언부) Entity declaration (interface 선언부) Architecture declarative section Architecture body (회로의 동작 기술) VHDL 문법

VHDL 표현방법 동작적 모델링 자료흐름 모델링 구조적 모델링 가장 높은 레벨의 추상적인 표현 기능적 또는 수학적인 알고리즘을 사용해 시스템의 동작 을 기술하는 것 자료흐름 모델링 자료의 흐름 즉, 신호 및 제어의 흐름 주로 부울대수, 함수, RTL 또는 연산자를 사용하여 입력 으로부터 출력까지의 경로 표현을 위주로 함 동작적 모델링과 구조적 모델링의 중간적 모델링 구조적 모델링 하드웨어에 가장 가까운 하위레벨의 표현 컴포넌트와 게이트들과의 연결상태를 나타냄 VHDL 표현방법

알고있어야 할 사항 모든 알파벳 문자는 소문자와 대문자를 구별하 지 않고 똑같이 취급 주석은 마이너스 두 개(--)로 시작되며, 그 줄 끝까지 유효 한 문장은 세미콜론(;)으로 끝남 알고있어야 할 사항

Library 및 Package library ieee; --라이브러리 ieee를 사용한다고 선언 VHDL에서 사용하는 라이브러리 및 패키지 라이브러리는 패키지를 묶은 집합 패키지는 표준 VHDL에서 제공하지 않는 기능, 형, 연산자들을 사용할 수 있게 함 사용방법 library 라이브러리 이름; use 라이브러리.패키지 이름.all; 사용 예 library ieee; --라이브러리 ieee를 사용한다고 선언 use ieee.std_logic_1164.all; -- 라이브러리 ieee안에 있는 -- std_logic_1164패키지에 선언된 것들을 사용 Library 및 Package

Library 및 Package ieee.std_logic_1164 패키지 VHDL이 기본으로 제공하는 형은 bit, bit_vector인데 이는 0 과 1밖에 표현 할 수 없다. 실제 신호는 하이 임피던스, 약한 신 호 0과 1, 초기 설정되지 않은 값 등 여러 상태로 있을 수 있기 때문에 ieee에서 이 패키지 안에 이들을 표현 할 수 있는 형들 을 제공한다. std_logic : 0, 1, Z등을 표현 std_logic_vector : std_logic의 벡터(배열)형 Library 및 Package

Entity Declaration Entity 선언 Entity는 크게 두가지로 나누어 짐 Syntax 기능이 아닌, 설계를 위한 입,출력 인터페이스, 동작에 필 요한 매개변수 목록 정의 Entity는 크게 두가지로 나누어 짐 Port와 Generic Port : 입·출력을 선언 Generic : 하드웨어에 필요한 파라미터를 선언 Syntax entity [entity name] is port ([input port name] : in [data type]; [output port name] : out [data type]); end [entity name]; Entity Declaration

Entity Declaration Entity 선언의 예 Entity and2 is port( A, B : in std_logic; C : out std_logic); end and2; 주의할 점! Entity의 시작을 설정해줘야 한다. (ex : and2) End명령어로 끝을 표시해야 한다. (ex : end and2;) Entity의 시작과 끝의 이름이 같아야 한다. (ex : and2) 이름 앞에 숫자를 표기 할 수 없다. (ex : 2and) 이름에 공백이 있어서는 안 된다. (ex : and 2) Entity Declaration

Port 선언 Port의 종류 In Out Inout Buffer Entity로의 입력단자, 단방향 데이터 입력 양방향 신호를 사용, 내부 피드백 허용 다른 모든 포트를 대치할 수 있음 Buffer Out포트와 비슷하나 피드백을 허용함 Entity 외부에서의 포트 구동을 허용하지 않음 Port 선언

Port 선언 Port Type Vector Type Std_logic Std_logic_vector Std_unlogic Std_unlogic_vector Bit Bit_vector Vector Type Ex) 8bit의 경우 Std_logic_vector(7 downto 0) MSB LSB Std_logic_vector(0 to 7) A(7) A(6) A(5) A(4) A(3) A(2) A(1) A(0) A(0) A(1) A(2) A(3) A(4) A(5) A(6) A(7) Port 선언

Entity내에 기술하며, Generic의 매개변수를 Entity에 전달함으로써 회로의 개수나 입출력의 크기가 매개변수에 의해 결정되게 하는 것 Ex) Generic(size : integer := 8); Generic의 사용은 사용할 Component의 Entity에 먼저 선언을 하고 다음 Component를 사용하는 Logic System에서 이를 이용한다. Generic(일반화)

객체(Object) 상수(Constant) 신호(Signal) Architecture 와 Begin 사이에 선언 한번 정해진 값은 바꿀 수 없다. 사용 예 Constant width : integer := 8; 신호(Signal) 선(wire)을 나타낼 수 있음 구성요소들을 서로 연결할 때 사용 Signal에 값을 대입할 때는 ‘<=‘을 사용 Signal count : bit_vector ( 3 downto 0); 객체(Object)

객체(Object) 변수(Variable) 파일(File) 프로세스문과 부프로그램 내에서 사용 신호(Signal)와는 달리 선이나 메모리 요소를 나타내지 못함 계산 목적으로 흔히 쓰임 한 순간에 1개의 값만 가짐 변수할당과 초기화 기호 ‘:=‘은 즉시 할당을 나타냄 Process 와 Begin 사이에 선언 사용 예 Variable result : std_logic := ‘0’; 파일(File) 객체 선언과 동시에 파일을 open 할 수 도 있고, 객체를 선언한 후에 파일 open/close를 procedure call로 별도로 할 수도 있다. File infile : text open READ_MODE is in “sample.dat”; 객체(Object)

Signal과 Variable의 차이 Signal Variable Wire로 구현 Component에 연결에 사용되는 외적 변수 객체 대입 방법 : ‘<=‘를 사용 VHDL에서 필요시 되는 시점에서 대입 초기값 선언에는 ‘:=‘를 사용(즉시 대입) 중간 연산단계에서 주로 이용 Variabe 값은 내적 변수로 사용 대입기호 : ‘:=‘ Signal과는 달리 값이 바로 대입 Signal과 Variable의 차이

Architecture Body Architecture Body Syntax 사용자가 설계하고자 하는 시스템 내부의 동작을 세부적으 로 정의하는 부분 Entity와 Architecture는 각각 독립적인 구성요소 Syntax architecture [architecture name] of [entity name] is begin architecture statement end [architecture name]; Architecture Body

Architecture Body Architecture Body의 예 Architecture rtl of and2 is Begin c <= a and b; End and2_a; Architecture Body

Architecture Body Architecture Body 설계 시 주의할 점 Architecture의 시작과 끝은 begin과 end이다. Entity이름은 앞에 선언된 Entity이름과 같아야 한 다. (ex : and2) Architecture의 이름을 선언해야 한다. (ex : sample, rtl) Architecture Body

기본적인 연산자 기본적인 연산자 <= : 신호 대입문 논리 연산자 A<= ‘1’; -- A에 논리 ‘1’을 전달 <= : 신호 대입문 A<= ‘1’; -- A에 논리 ‘1’을 전달 B<=“0101” -- B에 4비트 “0101”을 전달 논리 연산자 기본적인 연산자

If 문 조건에 맞게 실행 Architecture rtl of if_1 is Begin Process(clk, a1, a2) if(clk=‘1’) then y <= ‘1’; else y <= ‘0’; end if; end process End rtl; If 문

다중 If 문 조건이 여러 개 일 때 주의할 점! Architecture rtl of if_2 is Begin Process(a1, a2, a3, clk1, clk2) begin if (clk1=‘1’) then z <= a1; elsif(clk2=‘1’) then z <= a2; else z <= a3; end if end process; End rtl; 주의할 점! Elseif(X) → elsif(O) 다중 If 문

Else가 없을 때는 if 문이 거짓일 때 수행되어지는 명령이 없으므 로 전에 작성되어 있던 값을 그대로 출력하여야 함(기억소자가 필요) 대표적인 예 : Latch, Flip-Flop Architecture rtl of if_4 is Signal qtmp : std_logic; Begin Process(reset_n, j, k, clk) begin if reset_n = ‘0’ then qtmp <= ‘0’; elsif clk’ event and clk=‘1’ then if(j=‘1’ and k=‘0’) then qtmp <= ‘1’; elsif(j=‘0’ and k=‘1’) then qtmp <= ‘0’; elsif(j=‘1’ and k=‘1’) then qtmp <= not qtmp; end if; end process; q <= qtmp; End rtl; Else가 없는 if 문

Case 문 수식 값에 따라 문장을 선택 수식 값이 when의 값과 일치하면 그 문장 수행 Architecture rtl of ex3 is begin Process (sel, a0, a1, a2, a3) case sel is when “00” => y <= a0; when “01” => y <= a1; when “10” => y <= a2; when others => y <= a3; end case; end process; End rtl; Case 문

Loop 문 순차 처리문이며 반복 처리문 Loop For-loop While-loop 순차처리문; End loop; For 루프변수 in 변수범위 loop While-loop While 조건 loop Loop 문