Microsoft PowerPoint - VHDL02_full.ppt [호환 모드]

Similar documents
Microsoft PowerPoint - VHDL08.ppt [호환 모드]

<4D F736F F F696E74202D C31345FB0EDB1DE20BFB5BBF320C8B8B7CE20BCB3B0E82E BC8A3C8AF20B8F0B5E55D>

12-file.key

歯Chap1-Chap2.PDF

02 C h a p t e r Java

VHDL 기초 VHDL 두원공과대학정보통신미디어계열이무영

Microsoft PowerPoint - VHDL12_full.ppt [호환 모드]

BMP 파일 처리

디지털공학 5판 7-8장

PowerPoint 프레젠테이션

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

8장.그래픽 프로그래밍

chap7.key

Microsoft PowerPoint - Java7.pptx

PowerPoint Presentation

fprintf(fp, "clf; clear; clc; \n"); fprintf(fp, "x = linspace(0, %d, %d)\n ", L, N); fprintf(fp, "U = [ "); for (i = 0; i <= (N - 1) ; i++) for (j = 0

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Java

PowerPoint Presentation

歯9장.PDF

Microsoft PowerPoint - 04-UDP Programming.ppt

rmi_박준용_final.PDF

Microsoft PowerPoint - 03-TCP Programming.ppt

C++ Programming

PowerPoint 프레젠테이션

Microsoft Word - 제6장 Beyond Simple Logic Gate.doc

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

05-class.key

Microsoft Word - logic2005.doc

슬라이드 1

쉽게 풀어쓴 C 프로그래밊

Cluster management software

FileMaker ODBC and JDBC Guide

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

자바-11장N'1-502

6주차.key

Microsoft PowerPoint - VHDL01_chapter1.ppt [호환 모드]

MAX+plus II Getting Started - 무작정따라하기

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

untitled

untitled

Microsoft Word - logic2005.doc

PowerPoint 프레젠테이션

FileMaker ODBC and JDBC Guide

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

강의10

Java ...

신림프로그래머_클린코드.key

PowerPoint Presentation

Microsoft PowerPoint - hw4.ppt [호환 모드]

PowerPoint Template

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

Microsoft PowerPoint - [2009] 02.pptx

본 강의에 들어가기 전

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 09. 예외처리

mytalk

비긴쿡-자바 00앞부속

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Microsoft PowerPoint - ch07 - 포인터 pm0415

Design Issues

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint APUE(Intro).ppt

4장.문장

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

PowerPoint Presentation

PowerPoint 프레젠테이션

2009년 상반기 사업계획

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

EBS직탐컴퓨터일반-06-OK

Figure 5.01

Spring Data JPA Many To Many 양방향 관계 예제

Microsoft PowerPoint - VHDL06.ppt [호환 모드]

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

MPLAB C18 C

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

untitled

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Libero Overview and Design Flow

The Pocket Guide to TCP/IP Sockets: C Version

[ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : ~ 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전

. 고성능마이크로프로세서 LU 와레지스터 파일의구조 (2.). 직접디지털주파수합성기 (FS) 의구조 3. 고성능마이크로프로세서부동소수점연산기 (Floating-Point Unit) 구조 (2) (2.) (2.) 2. 암호화를위한 VLSI 구조와설계의개요 (2.) 다음참

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>


PowerPoint Presentation

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

1

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

김기남_ATDC2016_160620_[키노트].key

C++-¿Ïº®Çؼ³10Àå

11장 포인터

歯JavaExceptionHandling.PDF

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

ch09

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch07 - 포인터 pm0415

Transcription:

VHDL 프로그래밍 2. VHDL 언어사용해보기 한동일 학습목표 기존프로그래밍언어의간단한예를다룬다. VHDL 언어의간단한예를다룬다. 각언어의실제적인사용예를파악한다. 기존프로그래밍언어와비교되는 VHDL언어의차이점을이해한다. 엔티티선언의의미를파악한다. 아키텍처선언의의미를파악한다. VHDL 언어의문장구조를눈에익힌다. 디지털로직과이의 VHDL 표현과정을이해한다. 2/23

하드웨어서술언어란? 기존의소프트웨어서술언어 폰노이만구조의순차적인서술방식 한순간에하나의명령어가 CPU 에서처리됨 CPU 의처리속도의증대요구 Multi-Core 의개발 : 2, 4, 8 하드웨어서술언어 순차처리, 병렬처리프로그래밍이가능 VHDL 을이용하여여러개의프로세서들을설계가능 여러개의프로세서들이독립적으로, 병렬로처리됨 낮은클럭으로도 CPU 의수천배의처리속도가능 3/23 출력문의생성예 - C #include <stdio.h> int main(int argc, char *argv[]) { FILE *fp; // file pointer for output file if((fp=fopen("c.txt", "w")) == NULL) { // open new output file printf("unable to open file for output\n"); exit(1); } fprintf(fp, "C Programming\n"); // print out the message fclose(fp); // file close return 0; } C 코드예 실행결과 : C Programming 4/23

출력문의생성예 - JAVA import java.io.*; public class FileOutput { public static void main(string i args[]) { try { Pi PrintWriter Wi out = new PrintWriter("JAVA.txt"); Pi Wi ") out.println("java Programming"); out.close(); } catch (IOException exception) { System.out.println("Error processing file: " + exception); } } } 실행결과 : JAVA Programming 5/23 JAVA 코드예 출력문의생성예 - JAVA use STD.TEXTIO.all; entity FileOutput is end FileOutput ; architecture simulation of FileOutput is file OUTFILE : text open write_mode is "VHDL.txt"; signal time_zero : bit := '0'; -- 다음페이지에계속 VHDL 코드예 6/23

출력문의생성예 - VHDL write_output : process(time_zero) variable L : line; if (time_zero = '0') then write(l, string'("vhdl Programming")); writeline(outfile, L); time_zero <= '1'; end if; end process write_output; end ; 실행결과 : VHDL Programming VHDL 코드예 7/23 // 중략 C 언어의실제적인사용예 Convolution.c 코드예 buffer = read_pnm(filein, &rows, &cols, &type); /* determine bytes_per_pixel, 3 for color, 1 for gray-scale */ if(type == PPM) bytes_per_pixel = 3; else bytes_per_pixel = 1; number_of_pixels = bytes_per_pixel * rows * cols; convolve(buffer, cols, rows, 3, 3, mask, 0, fileout); write_pnm(buffer, fileout, rows, cols, type); IP_FREE(buffer); // 중략 8/23

C 언어의실제적인사용예 Convolution.c 코드결과예 입력영상 출력영상 9/23 // 중략 JAVA 의실제적인사용예 ClockViewer.java 코드예 frame.setsize(frame_width, FRAME_HEIGHT); frame.settitle("clock"); l frame.setdefaultcloseoperation(jframe.exit_on_close); ClockComponent component = new ClockComponent(); Thread t1 = new Thread(component); t1.start(); frame.add(component); frame.setvisible(true); ibl // 중략 10/23

// 중략 JAVA 의실제적인사용예 ClockComponent.java 코드예 int[] xpntsmin = {minx, minx1, minx2}; int[] ypntsmin = {miny, miny1, miny2}; int npntsmin = xpntsmin.length; g2.fillpolygon(xpntsmin, l i ypntsmin, npntsmin); g2.setcolor(color.red); int secx = (int)((50 * Math.cos((sec * 0.1046)-1.4654)) )) + 95); int secy = (int)((50 * Math.sin((sec * 0.1046)-1.4654)) + 95); g2.drawline(95,95,secx,secy); // 중략 11/23 JAVA 의실제적인사용예 ClockViewer.java 코드결과예 12/23

// 중략 VHDL 의실제적인사용예 Cross_Hatch.vhd 코드예 image_gen : process(dispclk) if (dispclk='1' and dispclk'event) then if vactive_pir='1' then // 중략 if hactive_fpulse = '1' then hcounter <= (hcounter + 1) mod 1024; end if; else hcounter <= 0; end if; 13/23 VHDL 의실제적인사용예 Cross_Hatch.vhd 코드결과예 14/23

Half Adder 설계예제 A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 논리회로 진리표 15/23 Half Adder 설계예제 std_logic_1164 패키지의사용을선언 std_logic 형의신호를사용하기위함 library IEEE; use IEEE.std_logic_1164.all; Half Adder 의입출력신호선언 entity 선언구문이용 entity Half_ Adder is port( A, B : in std_ logic; S, C : out std_logic); end Half_ Adder; A B S C 16/23

Half Adder 설계예제 Half Adder 의내부회로서술 architecture 본체에서서술 architecture Dataflow of Half_Adder is process (A, B) S <= A xor B; C <= A and B; end process; end Dataflow; 입력과출력신호들의동작관계를규정 17/23 Half Adder 설계예제 library IEEE; use IEEE.std_logic_1164.all; entity Half_ Adder is port( A, B : in std_logic; S, C : out std_logic); end Half_Adder; architecture Dataflow of Half_Adder is process(a, B) S<= A xor B; -- calculate sum of two input C <= A and B; -- calculate carry of two input end process; end Dataflow; 18/23

Half Adder 의검증 VHDL 로표현된로직 논리합성을통해서실제적인회로로구현 ASIC 이나 FPGA 를이용하여구현된회로의테스트 테스트벤치 (test bench) 를이용하여설계단계에서테스트가능 테스트벤치 (test bench) 설계한로직의검증작업 VHDL을이용하여구현 논리합성의가능여부와무관하게서술가능 가급적설계할실제적인회로와동시에관리할필요 19/23 Half Adder 의테스트벤치 테스트벤치를이용한검증 입출력신호를선언할필요없음 entity tb_half_adder is end tb_half_adder adder ; Half Adder 를콤포넌트로선언 component 선언구문이용 component half_ adder port( A, B : in std_ logic; S, C : out std_logic); end component; ; 20/23

Half Adder 의테스트벤치 Half Adder 의입력신호생성 파형생성문을이용한입력신호생성예 a <= '0', '1' after 5 ns, '0' after 10 ns, '1' after 15 ns, '0' after 20 ns, '1' after 25 ns, '0' after 30 ns, '1' after 35 ns; b <= '0', '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns; 입력신호를 Half Adder 에인가 component 실체화문이용 U0 : half_adder port map (a=>a, b=>b, s=>open, c=>open); 21/23 Half Adder 의테스트벤치 library IEEE; use IEEE.std_logic_1164.all; entity tb_half_adder is end tb_half_adder ; architecture simulation of tb_half_adder is component half_adder port (a, b: in std_logic; s, c : out std_logic); end component; signal a, b : std_logic; a <= '0', '1' after 5 ns, '0' after 10 ns, '1' after 15 ns, '0' after 20 ns, '1' after 25 ns, '0' after 30 ns, '1' after 35 ns; b <= '0', '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns; U0 : half_adder port map (a=>a, b=>b, s=>open, c=>open); end ; 22/23

Half Adder 의테스트벤치 테스트벤치를이용한동작확인 ModelSim 의 wave 윈도우화면을이용한검증예 23/23