Microsoft PowerPoint - DSD01_verilog1a.pptx

Similar documents
디지털시스템설계및실습 1. Verilog HDL 문법 한국기술교육대학교전기전자통신공학부 Ver1.0 (2008)1

Microsoft PowerPoint - DSD03_verilog3b.pptx

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

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

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

Microsoft PowerPoint - DSD03_verilog3a.pptx

Microsoft PowerPoint - verilog문법new.ppt

Microsoft PowerPoint - Verilog_Summary.ppt

Microsoft PowerPoint - DSD02_verilog2a.pptx

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

歯Chap1-Chap2.PDF

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

슬라이드 1

Microsoft PowerPoint - DSD01_verilog1b.pptx

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

Microsoft Word - logic2005.doc

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

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

슬라이드 1

Microsoft PowerPoint - chap03-변수와데이터형.pptx

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

디지털공학 5판 7-8장

PowerPoint 프레젠테이션

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

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

OCW_C언어 기초

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

슬라이드 1

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

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

tut_modelsim(student).hwp

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

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

PowerPoint 프레젠테이션

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

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

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

PowerPoint Presentation

Microsoft Word - logic2005.doc

Microsoft PowerPoint - 1-2장 디지털_데이터 .ppt

OCW_C언어 기초

PowerPoint 프레젠테이션

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

슬라이드 1

8장 조합논리 회로의 응용

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

untitled

Microsoft PowerPoint - PL_03-04.pptx

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

PowerPoint 프레젠테이션

9

수없기때문에간단한부분으로나눠서구현하고, 이를다시합침으로써전체를구현하게 된다. 실험에서는이미구현된 4-Bit ALU인 74LS181 Chip을사용한다. 이 Chip은 4-bit의 Data input A, B와 Selection input 4 bit, Carry In 1

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - verilog_intro and project example_실험4까지 설명후 project 진행_66 [호환 모드]

歯기구학

<4D F736F F F696E74202D C6F672D48444CC0BB20C0CCBFEBC7D120B5F0C1F6C5D0BDC3BDBAC5DBBCB3B0E82E707074>

Ver. T3_DWS.UTP-1.0 Unit Testing Plan for Digital Watch System Test Plan Test Design Specification Test Cases Specification Date Team Infor

C# Programming Guide - Types

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

슬라이드 1

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint 프레젠테이션

歯처리.PDF

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

Microsoft PowerPoint - lec2.ppt

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - [2009] 02.pptx

강의 개요

논리회로설계 3 장 성공회대학교 IT 융합학부 1

歯02-BooleanFunction.PDF

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

chap x: G입력

PowerPoint Template

Microsoft Word - 1. ARM Assembly 실습_xp2.doc

PowerPoint Presentation

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

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

ºÎ·ÏB

C 프로그램의 기본

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

PowerPoint 프레젠테이션

ABC 2장

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

KNK_C02_form_IO_kor

Microsoft PowerPoint - KNK_C01_intro_kor

KNK_C01_intro_kor

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

歯03-ICFamily.PDF

Microsoft PowerPoint - DSD02_verilog2b.pptx

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

PowerPoint 프레젠테이션

Microsoft PowerPoint - 강의자료8_Chap9 [호환 모드]

Microsoft PowerPoint - chap05-제어문.pptx

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

JAVA PROGRAMMING 실습 02. 표준 입출력

C프로-3장c03逞풚

Transcription:

한국기술교육대학교 장영조

한국기술교육대학교전기전자통신공학부 2

1. Verilog HDL 개요 2. Verilog 첫걸음 3. Verilog 어휘규칙 4. 모듈 5. 데이터형 6. 연산자 7. 인스턴스 8. 시스템태스크와함수 9. 컴파일러지시어 한국기술교육대학교전기전자통신공학부 3

Verilog HDL 1983 년 Gateway Design Automation 사에서하드웨어기술언어인 HiLo 와 C 언어의특징을기반으로개발 1991 년 Cadence Design Systems 가 Open Verilog International (OVI) 라는조직을구성하고 Verilog HDL 을공개 1993 년 IEEE Working Group 이구성되어표준화작업을진행 1995 년 12 월 IEEE Std. 1364-1995 로표준화 Verilog 2001-2001 년에 IEEE Std. 1364-2001 로개정 Verilog 2005 IEEE Std. 1364-2005 로 Verilog 2001 의사소한개정 SystemVerilog - Verilog 2005 의확장형태로개발되어 2009 년에 IEEE Std. 1800-2009 로표준화됨, design modeling and verification 기능 한국기술교육대학교전기전자통신공학부 4

HDL (Hardware Description Language) 반도체및전자설계산업에서전자시스템을모델링하기위한언어 VHDL 과 Verilog HDL 이 IEEE 의표준 HDL 로제정되어있다. 디지털시스템의모델링 일부아날로그회로에사용 기능 : 시뮬레이션 (simulation) 서류화 (documentation) 합성 (synthesis) 언어특성 동시성 (concurrent) 병렬성 (parallel) 추상화 (abstraction) 한국기술교육대학교전기전자통신공학부 5

C 언어와유사점 문법은매우유사 절차형 (procedural) 및순차형실행은동일 if~else 문, case 문, for loop 문등사용 연산자 : 논리 (&,, ^..), 산술 ( +, -, * /..), 비교 (<, >=, ==,..) 차이점 동시성 (concurrent) 병렬성 (parallel) 한국기술교육대학교전기전자통신공학부 6

구조적 (Structural) 모델링 논리게이트, 플립플롭등을사용한연결도표현 기존설계한회로를포함한네트리스트 (netlist) 사용 데이터플로우 (dataflow) 모델링 데이터이동을표현 연산자를사용한연속할당문 동작적 (behavioral) 모델링 if~else, case, while, for 등과같은구문사용 인간의사고에가장근접한표현 한국기술교육대학교전기전자통신공학부 7

시뮬레이션 (simulation) : full set 문서화 (documentation) : full set 합성 ( synthesis) : subset Library : system 함수 Verilog HDL 합성 assign, if~else, case, for always Simulation, 문서화 initial, $finish $fopen Library specify $width table 한국기술교육대학교전기전자통신공학부 8

High level Abstraction Specification 사양 : 동작모델, 속도, 전력, 가격, 소형화.. C, System C, SystemVerilog Design Entry Behavioral Simulation 설계입력 : 블록도와 RT 수준신호연결도그래픽, 문서입력, 네트리스트 Verilog, VHDL High level Synthesis Functional (RTL) Simulation RTL : 동작적표현, 클럭타이밍 Adder, 디코더, ALU, 레지스터.. Verilog, VHDL Gate level Synthesis Gate level Simulation 게이트레벨 : 논리, 프리미티브게이트연결도 Verilog, VHDL Low level Abstraction Technology Mapping Timing Simulation 하드웨어 : SoC, ASIC, FPGA, 배치및배선, 타이밍검증 EDIF, JEDEC 한국기술교육대학교전기전자통신공학부 9

1. Verilog HDL 개요 2. Verilog 첫걸음 3. Verilog 어휘규칙 4. 모듈 5. 데이터형 6. 연산자 7. 인스턴스 8. 시스템태스크와함수 9. 컴파일러지시어 한국기술교육대학교전기전자통신공학부 10

진리표 논리식 모듈정의 x y 0 0 0 1 1 0 co s 0 0 0 1 0 1 s = x xor y co = xy module HA (x, y, co, s); input x; input y; output co, s; 1 1 1 0 HA module name x y co input output s 한국기술교육대학교전기전자통신공학부 11

모듈구조 module module_name (port_list); port 선언 reg 선언 wire 선언 parameter 선언 module definition declaration 하위모듈호출 always, initial 문 function, task 정의문 assign 문 function, task 호출문 body - 각문장은기술순서에무관하게실행 - concurrent, parallel endmodule end module 한국기술교육대학교전기전자통신공학부 12

모델링방법 code 1.2.1-1 HA_s.v, 구조적모델링 code 1.2.1-2 HA_d.v, 데이터플로우모델링 module HA_s(x, y, co, s); input x; input y; output co, s; // 하위모듈호출, 구조적모델링 and U1 (co, x, y); // 프리미티브게이트인스턴스 xor U2 (s, x, y); endmodule module HA_D(x, y, co, s); input x; input y; output co, s; // 연속할당문, 데이터플로우모델링 assigns=x^y; //bitwisexor논리연산자 assign co = x & y; // bitwise and 논리연산자 endmodule 한국기술교육대학교전기전자통신공학부 13

모델링방법 HA_b.v, code 1.2.1-3 동작적모델링 module HA_b (x, y, co, s); input x; input y; output co, s; reg co, s; // 절차형블록문, 동작적모델링 always @ (x or y) begin s = x ^ y ; // blocking 할당문 co = x & y; end endmodule HA_t.v, code 1.2.1-4 진리표를사용한동작적모델링 module HA_t (x, y, co, s); input x; input y; output co, s; reg co, s; // 절차형블록문, 진리표의동작적모델링 always @ (x or y) case({x,y}) 2'b00 : {co,s} = 2'b00; 2'b01 : {co,s} = 2'b01; 2'b10 : {co,s} = 2'b01; 2'b11 : {co,s} = 2'b10; default : {co,s} = 2'b00; endcase endmodule 한국기술교육대학교전기전자통신공학부 14

시뮬레이션 컴퓨터를이용한설계검증 시뮬레이터사용 테스트벤치작성 테스트벤치구조 Stimulus Generator Design Under Test (DUT) Response Monitor 한국기술교육대학교전기전자통신공학부 15

반가산기테스트벤치예 code 1.2.2-1 TB_HA.v, 반가산기테스트벤치 `timescale 1ns/1ps // 시뮬레이션시간단위 module TB_HA; // 입력, 출력포트가없다 reg x, y; wire cout, sum; // DUT instance HA_b U1 (.x(x),.y(y),.co(cout),.s(sum) ); // input stimulus initial begin x=0; y=0; #200; // 200 ns 지연 x=0; y=1; #200; // 200 ns 지연 x=1; y=0; #200; x=1; y=1; #200; $finish; // 시뮬레이션종료 end endmodule `timescale 1ns/1ps - 컴파일러지시어 (directive) - time 변수에대한시간단위설정 - time_unit/time_precision - 사용가능한단위 s(second), ms(millisecond), us(microsecond), ns(nanosecond), ps(picosecond), fs(femtosecond) // DUT 인스턴스 HA_b U1 (.x(x),.y(y),.co(cout),.s(sum) ); - HA_B 모듈의포트에신호연결 initial begin ~ end - 절차형블록문 - reg 변수에시간적으로변하는신호생성 - 필요에따라원하는파형의순차적생성 - 시뮬레이션의시작에서한번실행 - 시간값은누적증가 $finish; - 시뮬레이터실행종료 - 시스템 task 함수 - $stop, $monitor, $display, $write 등 한국기술교육대학교전기전자통신공학부 16

시뮬레이션파형 Modelsim 등과같은시뮬레이터사용 주어진입력에따라반가산기의동작을파형으로검증 한국기술교육대학교전기전자통신공학부 17

1. Verilog HDL 개요 2. Verilog 첫걸음 3. Verilog 어휘규칙 4. 모듈 5. 데이터형 6. 연산자 7. 인스턴스 8. 시스템태스크와함수 9. 컴파일러지시어 한국기술교육대학교전기전자통신공학부 18

어휘토큰 (lexical tokens) 여백 (white space) 주석 (comment) 연산자 (operator) 수 (number) 문자열 (string) 식별자 (identifier) 키워드 (keyword) 한국기술교육대학교전기전자통신공학부 19

Case sensitive 대소문자구별 여백 (white space) 빈칸 (blank, space), 탭 (tab), 줄바꿈, EOF 어휘토큰들을분리하기위해사용되는경우를제외하고는무시 공백 (blank) 과탭은문자열에서는의미있게취급 주석 (comment) HDL 소스코드의설명을위해사용되며, 컴파일과정에서무시됨 단일라인주석문 ; // 로시작되어해당라인의끝까지 블록주석문 ; /* ~ */ 로표시, 여러줄에사용가능 블록주석문은내포 (nested) 될수없음 연산자 (operator) 단항연산자, 2 항연산자, 3 항연산자 한국기술교육대학교전기전자통신공학부 20

식별자 (identifier) 객체에고유이름을지정하기위해사용 대소문자구별하여인식 가독성을위해밑줄사용가능 단순식별자 : 일련의문자, 숫자, 기호 $, 밑줄등으로구성 첫번째문자는문자 ( a~z 및 A~Z ) 혹은밑줄 ( _ ) 만사용가능 확장식별자 (escaped identifier); \ (back slash) 로시작되며, 여백 ( 빈칸, 탭, 줄바꿈 ) 등으로끝남 프린트가능한 ASCII 문자들을식별자에포함시키는수단을제공 키워드 (keyword) Verilog 구성요소를정의하기위해미리정의된식별자 확장문자가포함된키워드는키워드로인식되지않음 한국기술교육대학교전기전자통신공학부 21

식별자사용예 사용예 mem_addr _sig5 n$234 \wen* \{a,b} 설명유효한식별자이름 _ 로시작하는식별자 $ 를포함한식별자특수글자를포함한확장식별자특수글자를포함한확장식별자 한국기술교육대학교전기전자통신공학부 22

한국기술교육대학교전기전자통신공학부 23 always and assign automatic begin buf bufif0 bufif1 case casex casez cell cmos config deassign default defparam design disable edge else end endcase endconfig endfunction endgenerate endmodule endprimitive endspecify endtable endtask event for force forever fork function generate genvar highz0 highz1 if ifnone initial instance inout input integer join large liblist localparam macromodule medium module nand negedge nmos nor not noshowcancelled notif0 notif1 or output parameter pmos posedge primitive pull0 pull1 pulldown pullup pulsestyle_onevent pulsestyle_ondetect rcmos real realtime reg release repeat rnmos rpmos rtran rtranif0 rtranif1 scalared signed showcancelled small specify specparam strength strong0 strong1 supply0 supply1 table task time tran tranif0 tranif1 tri tri0 tri1 triand trior trireg unsigned use vectored wait wand weak0 weak1 while wire wor xnor xor Verilog 2001 에정의된예약어

Verilog 에서는 4 개의논리값을사용 논리값 0 1 z or Z x or X 설명 zero, low, or false one, high, or true high impedance(tri-state or floating) unknown or uninitialized 한국기술교육대학교전기전자통신공학부 24

8 개의논리강도 4 drivings, 3capacitives, 1 high impedance (no strength) strength strength specification display level name keyword mnemonic 7 supply drive supply0 supply1 Su0 Su1 6 strong drive strong0 strong1 St0 St1 5 pull drive pull0 pull1 Pu0 Pu1 4 large capacitive large La0 La1 3 weak drive weak0 weak1 We0 We1 2 medium capacitive medium Me0 Me1 1 small capacitive small Sm0 Sm1 0 high impedance highz0 highz1 HiZ0 HiZ1 한국기술교육대학교전기전자통신공학부 25

상수 : 정수형상수, 실수형상수 정수형 (integer) : 10 진수, 16 진수, 8 진수, 2 진수 형식 : [size_constant]'<base_format> <number_value> [size_constant] : 값의비트크기를나타내는상수 0이아닌 unsigned 10진수가사용되며, 생략될수있음 unsized 수 ( 즉, 단순 10진수또는비트크기가지정되지않은수 ) 는 32비트로표현됨 상위비트가 x(unknown) 또는 z(high-impedance) 인 unsized unsigned 상수는그상수가사용되는수식의비트크기만큼확장됨 'base_format : 밑수 (base) 를지정하는문자 (d, D, h, H, o, O, b, B) signed를나타내기위해문자 s 또는 S가함께사용될수있음 number_value : unsigned 숫자를사용하여값을표현 'base_format에적합한숫자들로구성 base_format과 number_value 사이에 + 또는 - 부호사용불가 한국기술교육대학교전기전자통신공학부 26

비트크기와밑수를갖지않는단순 10진수는 signed 정수로취급 부호지정자없이밑수만지정되면 unsigned 정수로취급 밑수지정자와부호지정자 s가함께사용되면 signed 정수로취급 부호지정자 s는비트패턴에는영향을미치지않으며, 비트패턴의해석에만영향을미침 음수는 2의보수 (2 s complementary) 형식으로표현됨 지정된비트크기보다 unsigned 수의크기가작은경우 MSB 왼쪽에 0이삽입 MSB가 x 또는 z이면, x 또는 z가왼쪽에삽입 값에물음표 (? ) 가사용되면 z로취급 첫번째문자를제외하고는밑줄 (underscore) 이사용될수있으며, 이는수의가독성 (readability) 을좋게함 부호 -로시작하는수 (negative number) 는음수가아니라그수에대한 2의보수로표현 한국기술교육대학교전기전자통신공학부 27

예제 1.3.1 unsized 상수 : 크기는 32 비트로취급 1250 // 부호있는 10진수 'o765 // 부호없는 8진수 'shab74 // 부호있는16진수 'b1100_111 // 부호없는 2진수, 밑줄사용 'bz // zz...zz(32 bits) 예제 1.3.2 sized 상수 : 크기가지정된상수 예제 1.3.3 signed 상수 : - 부호가있는수는 2 의 보수로표현 3'b110 // 3 비트 2진수, 110 4'b1zx0 // 4 비트 2진수, 1zx0 9'O513 // 9 비트 8진수, 1_0100_1011 8'hef // 8 비트 16진수, 1110_1111 8'bz // 8 비트 2진수, z로채워짐, zzzzzzzz 6'b1 // 6 비트 2진수, 00_0001 6'shA // 6 비트부호있는 16진수, 00_1010 6'h97 // 6 비트 16진수, 01_0111, 상위 2비트잘려짐 12'd15 // 12 비트 10진수, 0000_0000_1111 8'shE0 // 1110_0000, -32에대한 2의보수, -8'shE0 // -(8'1110_0000), 0010_0000, 즉 +32 -'d100 // 2 32-100 = 4294967196 -'sd100 // -100-5'd6 // -6에대한 5 비트 2의보수, 11010 4'sb1010 // -6 12'sb0010 // 0000_0000_0010, +2 한국기술교육대학교전기전자통신공학부 28

실수형 (real) 표현 : IEEE STD. 754-1985(IEEE standard for doubleprecision floating-point number) 표현형식 value.value baseeexponent decimal notation scientific notation (the E is not case sensitive) 0~9 의글자만사용가능 소수점의양쪽자리는반드시숫자사용 예제 1.3.4 실수표현 0.5 679.00123 3e4 0.5e-0 5.6E-2 87E-4 93.432_26e-5 한국기술교육대학교전기전자통신공학부 29

이중인용부호 ( ) 사이에있는일련의문자들 단일라인에존재해야하며, 여러라인에걸친문자열은사용불가 8 비트 ASCII 값으로표현되는 unsigned 정수형상수로취급 문자열변수는 reg 형의변수이며, 문자열내의문자수에 8 을곱한크기의비트폭을가짐 확장문자 \n, \t, \\, \" 등을사용하여특수문자를포함할수있다. 예제 1.3.7 문자열저장및인쇄 module str_test; reg [8*10:1] str1; initial begin str1 = "Hello"; $display("%sisstoredas%h",str1,str1); str1 = {"str1", "!!!"}; $display("%sisstoredas%h",str1,str1); end endmodule 실행결과 Hello is stored as 000000000048656c6c6f Hello!!! is stored as 0048656c6c6f20212121 한국기술교육대학교전기전자통신공학부 30