슬라이드 1

Similar documents
슬라이드 1

PowerPoint 프레젠테이션

tut_modelsim(student).hwp

Microsoft PowerPoint - DSD03_verilog3b.pptx

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

Microsoft PowerPoint - Verilog_Summary.ppt

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

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

Microsoft PowerPoint - [2009] 02.pptx

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

금오공대 컴퓨터공학전공 강의자료

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft Word - logic2005.doc

wire [n-1:0] a, b, c, d, e, f, g, h; wire [n-1:0] x; // internal wires wire [n-1:0] tmp0, tmp1, tmp2, tmp3, tmp4, tmp5; mux_2to1 mux001 (.x(tmp0),.a(a

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

윈도우즈프로그래밍(1)

Infinity(∞) Strategy

Microsoft Word - Modelsim_QuartusII타이밍시뮬레이션.doc

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

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-2pointer.ppt

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

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

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-1Array.ppt

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - verilog문법new.ppt

중간고사

슬라이드 1

chap 5: Trees

슬라이드 1

Microsoft PowerPoint - chap10-함수의활용.pptx

PowerPoint 프레젠테이션

삼성기초VHDL실습.PDF

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - DSD03_verilog3a.pptx

슬라이드 1

Microsoft PowerPoint - DSD01_verilog1a.pptx

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap05-제어문.pptx

C# Programming Guide - Types

Microsoft Word - logic2005.doc

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

C 언어 프로그래밊 과제 풀이

歯Chap1-Chap2.PDF

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Windows 8에서 BioStar 1 설치하기

untitled

Visual Basic 반복문

[2010 년디지털시스템설계및실험중간고사 2 답안지 ] 출제 : 채수익 1. (a) (10 pts) Robertson diagram Quotient 와 remainder 의 correction 을뒤로미루는것이 non-restoring division 이다. 즉, q =

PowerPoint 프레젠테이션

Libero Overview and Design Flow

PowerPoint 프레젠테이션

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

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

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - 15-MARS

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

[8051] 강의자료.PDF

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

ICAS CADWorx SPLM License 평가판설치가이드

OCW_C언어 기초

UI TASK & KEY EVENT

Microsoft PowerPoint - ch07 - 포인터 pm0415

디지털 ASIC 설계 (1주차) MAXPLUS II 소개 및 사용법

PowerPoint 프레젠테이션

The C++ Programming Language 5 장포인터, 배열, 구조체 5.9 연습문제 다음의선언문을순서대로작성해보자. 문자에대한포인터, 10개정수의배열, 10개정수의배열의참조자, 문자열의배열에대한포인터, 문자에대한포인터에대한포인터, 상수정수, 상수

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

T100MD+

슬라이드 1

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

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


슬라이드 1

제4장 기본 의미구조 (Basic Semantics)

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

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

untitled

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

텀블러514

2014밝고고운동요부르기-수정3

2005프로그램표지

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize


KAA2005.9/10 Ãâ·Â

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

PowerPoint 프레젠테이션

C++ Programming

PRO1_16E [읽기 전용]

전체설치와사용자지정설치중원하는설치방식을선택합니다. ArcGIS Desktop 설치경로를지정하면설치가짂행됩니다.

Contents Activity Define Real s Activity Define Reports UI, and Storyboards Activity Refine System Architecture Activity Defin

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Transcription:

보안회로설계 모델심설치 & Verilog testbench 기초문법 Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr

모델심설치

ModelSim ModelSim Made by Mentor HDL simulator VHDL, Verilog, System Verilog and optional SystemC HDL 에의해합성될회로의동작과정과결과예상 ModelSim Student Edition Download Link https://www.mentor.com/company/higher_ed/modelsim-student-edition 3

설치파일다운로드과정 -1 ModelSim Student Edition Download Link 에서학교메일을포함한정보작성 4

설치파일다운로드과정 -2 정상적인 download 신청이끝나면아래와같은메시지출력됨 5

설치파일다운로드과정 -3 메일을통해다운로드링크를받을수있음. 6

모델심설치과정 -1 다운받은설치파일은다른컴퓨터에공유가불가능 ( 이후발급받을라이센스와연동됨 ) 7

모델심라이센스설정 - 1 라이센스신청을위한정보입력 8

모델심라이센스설정 - 2 메일을통한라이센스발급 9

모델심라이센스설정 - 3 모델심이설치된폴더에라이센스파일저장 10

모델심설치확인 - 1 정상적으로켜지는모델심확인 11

모델심설치확인 - 2 새프로젝트의생성 12

모델심설치확인 - 3 프로젝트폴더생성및지정 13

모델심설치확인 - 3 프로젝트폴더생성및지정 14

모델심설치확인 - 4 파일의추가 15

모델심설치확인 - 5 컴파일정상동작확인 16

모델심설치확인 - 6 Simulation 열기 17

모델심설치확인 - 7 Simulation 동작확인 18

모델심튜토리얼 Product Tutorial 튜토리얼소개동영상 : https://www.mentor.com/products/fv/multimedia/modelsimessentials 튜토리얼문서경로 다음강의에서튜토리얼내용설명예정 ( 모델심사용법 ) 19

Testbench 소개

Testbench 소개 Testbench 란 verilog 로설계한논리회로를시뮬레이션하기위해서사용 검증할회로에대해서입력값 ( 인풋 ) 을주어서, 그때의출력값 ( 아웃풋 ) 을관측하여제대로동작되는지확인할수있음 input 검증대상회로 output 21

Testbench 프로그램구조 module 선언신호및변수선언검증대상호출 신호입력 endmodule module 선언 : module의이름정의 신호및변수선언 : 입력신호및지역변수선언 검증대상호출 신호입력을통해검증대상의결과확인 initial, task 문을이용하여작성 endmodule 4

Testbench 소개 Testbench 형식 Ex) DES testbench 23

Testbench 소개 Testbench 형식 Ex) DES testbench module 모듈이름 ; // 포트목록은쓰지않는다. 24

Testbench 소개 Testbench 형식 Ex) DES testbench 시뮬레이션할대상이되는입력값은 reg 또는 wire로출력값은 wire로선언한다. ex) clk, start, reset 신호그리고암호화할입력값과 key값을 reg로, 암호화된출력값과완료신호 done은 wire로선언해주었다. 25

Testbench 소개 Testbench 형식 Ex) DES testbench 검증하고싶은모듈을호출하고포트를연결해준다. 포트를연결할때는인자순서대로연결할수있으며, 또는순서에상관없이이름에각각할당할수도있다. 26

Testbench 소개 Testbench 형식 Ex) DES testbench 검증하고싶은모듈을호출하고포트를연결해준다. 포트를연결할때는인자순서대로연결할수있으며, 또는순서에상관없이이름에각각할당할수도있다. Ex) module adder(x, y, c_out, c_in, sum); //... endmodule // 위치에의한포트연결 adder adder1(inp1, inp2, carry_out, carry_in, sum_out); // 이름에의한포트연결 adder adder2(.sum(sum_out),.c_out(carry_out),.c_in(carry_in),.x(inp1),.y(inp2)); 27

Testbench 소개 Testbench 형식 Ex) DES testbench initial 문을통해 입력신호와 input 데이터를넣어준다. 28

Testbench 기본문법 (1) 컴파일러지시어

Test Program 작성방법 Initial / fork~join Initial 문 문장블록을처음부터끝까지한번만순차적 (sequential) 실행 시뮬레이션할때만사용 fork ~ join 순차처리블록인 begin ~ end 와비교되는병렬처리블록 시뮬레이션할때만사용 6

Testbench 기본문법 [ 컴파일러지시어 ] `timescale `timescale 1ns/10ps module testbench ; reg X, Y ; wire C, S ; initial begin `timescale 1step 단위 / 해상도 ms : ( 밀리 / 초 )10^-3 Ms : ( 마이크로 / 초 )10^-6 ns : ( 나노 / 초 )10^-9 ps : ( 피코 / 초 )10^-12 fs : ( 펨토 / 초 )10^-15 as : ( 아토 / 초 )10^-18 delay 입력 직접적숫자로입력 Ex) #50, #200 parameter 이용 Ex) parameter STEP = 100; parameter 로미리정의 #STEP STEP 에정의된값인 100 이들어감 31

Testbench 기본문법 [ 컴파일러지시어 ] `timescale `timescale 1ns/10ps module testbench ; reg X, Y ; wire C, S ; initial begin X = 0 ; Y = 0 ; #5.5 ; X = 0 ; Y = 1 ; #5.55 ; X = 1 ; Y = 0 ; #5.555 ; X = 1 ; Y = 1 ; #5.5555 ; $stop ; end endmodule `timescale 1step 단위 / 해상도 = 5.5ns delay = 5500ps delay = 5.55ns delay =5550ps delay = 5.555ns delay 불가능 = 5.5555ns delay 불가능 해상도를바꿔야함 `timescale 1ns/100fs ms : ( 밀리 / 초 )10^-3 Ms : ( 마이크로 / 초 )10^-6 ns : ( 나노 / 초 )10^-9 ps : ( 피코 / 초 )10^-12 fs : ( 펨토 / 초 )10^-15 as : ( 아토 / 초 )10^-18 32

Test Program 작성방법 delay / clock clock 생성 always 문을이용하여 clk 을미리정의 always #(50) clk = ~clk; initial Ex) compile error 뜸 Ex) 올바른사용 7

Test Program 작성방법 delay/clock 예제 절대적인지연 always #(50) clk = ~clk; clock 생성 clock 에대한상대적인지연 always #(50) clk = ~clk; initial begin clk=0; reset=1; x=0; #50 reset=0; x=1; #50 x=1; #50 x=0; #50 x=0; #50 x=1; #50 $finish; end 초기값 입력값의변화 종료 initial begin clk=0; reset=1; x=0; @(posedge clk) #10 x=1; #10 x=0; end 8

Testbench 기본문법 [ 컴파일러지시어 ] clock 생성예제 parameter 를선언하여 clock 을생성한예제 50us 지났을때반전되도록함 35

Testbench 기본문법 [ 컴파일러지시어 ] define C언어의 #define과거의같다. `define으로정의된문장을참조할대에도 ` 기호가필요하다. Ex) `define SIZE 10 // `SIZE 를 10으로사용한다. `define END $stop // `END를 $stop 으로사용한다. Ex) `define ABC #1 `ABC data = 0; 5

Testbench 기본문법 [ 컴파일러지시어 ] `include 텍스트삽입 C 언어의 #include 와거의같으며파일전체의내용을삽입할경우에사용된다. 다른 verilog 소스파일을현재소스파일에추가하는용도 Ex) `include GLOBAL.V //GLOBAL.V 파일을삽입 `include PARTS/COUNT.V //PARTS 폴더의 COUNT.V 파일을삽입 37

Testbench 기본문법 (2) 시스템태스크

Testbench 기본문법 [ 시스템태스크 ] Simulation 의실행을제어하는 system task stop / finish $stop 시뮬레이션을중단한다. 다시시작가능함 $finish 완전히시뮬레이션을종료한다 종료를묻는대화창에서취소시, 다시시작가능하다. 39

System Task Example stop / finish Test Stimulus 일단중단 종료여부물어봄계속할수있다 종료혹은중단 13

Testbench 기본문법 [ 시스템태스크 ] Simulation 에서결과를 display 하는 system task Transcript 에출력됨 $time 시뮬레이션의현재시간을나타낸다. $display C 언어의 printf 와용법이비슷하다. 시뮬레이션실행시실행창에내용 1 회출력한다. 변수값, 문자열, 수식등을출력하는용도로사용한다. ex) $display( i = %d,i ); $monitor 연결한레지스터나와이어의값이변할때마다그값을계속해서출력한다. ex) $monitor($time, %d%dmin %d%dsec, highm, lowm, highs, lows); 41

System Task Example display / monitor Test Stimulus 값이변할때마다계속출력 START 문구를한번출력 START 출력 값이변할때마다계속출력한다. 14

System Task 파일입 / 출력 system task readmemh / readmemb / writememh / writememb h : 16진수 b : 2진수 작성방법 ex) reg[7:0] data[0:7]; $readmemh( 파일이름, data) ; 12

System Task Example readmem 한줄에들어가는자료의크기는 reg 의크기를넘을수없다. read 에서는배열에크기가 text 의전체줄수이상이어야한다. (write 는반대 ) 15

Testbench 기본문법 [ 시스템태스크 ] 포맷된파일출력이가능한 system task C 언어와비슷하다. ex) $fopen(filename); 파일을열고 descriptor 리턴 $fclose([descriptor]); 파일을닫음, descriptor 생략시모든파일닫힘 $fdisplay(descriptor, ); descriptor 파일에 출력하고한줄띄움, 다음줄에출력 $fwrite(descriptor, ); descriptor 파일에 출력, 같은줄에출력 $fmonitor(descriptor, ); 등록된 parameter 의변화가있을때만출력 45

Testbench 기본문법 (3) 반복문 &task 문

Testbench 기본문법 [ 루프문 ] for 문 ex) for( i=0; i<=15; i=i+1 ) begin #50; A=A+1; end repeat( 반복회수 ) ex) repeat(10) begin end while 루프 ex) i = 0 ; $display( i = %d, i ); i = i + 1 ; while(i<10) begin//while( 참조건 ) 일때실행 end $display( i = %d, i ); i = i + 1 ; 47

Testbench 기본문법 [ 루프문 ] forever 루프 / disable 문 forever 루프는무한루프이다. disable 문은이름이있는블록이나태스크를끝낼때사용한다. ex1) ex2) ex3) 48

Testbench 기본문법 [Task] Task 문 같은패턴의동작을여러번반복해서사용할수있다. < 기본형식 > task 태스크이름 ; input 선언 begin end endtask ex) task write_reg; input addr; input data; begin #25 A = addr; #25 DIN = data; #25; end endtask Task 문호출 < 기본형식 > 태스크이름 ( 인수 1,, 인수 N) ex) always@(negedge CLK) write_reg(a,b); 49

Testbench 기본문법 [Task] Task 문변수 Task 문에서는내부변수를사용할수도있고, Global 변수를사용할수도있다. ex) 내부변수사용 Global 변수사용 50