PowerPoint 프레젠테이션

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

Microsoft PowerPoint - DSD03_verilog3b.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

K&R2 Reference Manual 번역본

슬라이드 1

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

WS12. Security

v6.hwp

untitled

鍮뚮┰硫붾돱??李⑤낯

MAX+plusⅡ를 이용한 설계

Slide 1

PRO1_09E [읽기 전용]

Microsoft Word - logic2005.doc

Microsoft PowerPoint - DSD03_verilog3a.pptx

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

디지털공학 5판 7-8장

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

airDACManualOnline_Kor.key

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

歯Chap1-Chap2.PDF

Microsoft Word - USB복사기.doc

b74...*

Microsoft PowerPoint - Verilog_Summary.ppt

ºÎ·ÏB

PowerPoint 프레젠테이션

슬라이드 1

歯15-ROMPLD.PDF

Boundary Scan Design(JTAG) JTAG 의특징 Boundary Scan은기기의 input과 Output 핀들에대해가능하게해주는기본 DFT(Design for Test) 구조이다. 그림1에서는 IEEE Std 에상응하는기본 Boundary S


Microsoft PowerPoint - verilog문법new.ppt

T100MD+

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Page 2 of 6 Here are the rules for conjugating Whether (or not) and If when using a Descriptive Verb. The only difference here from Action Verbs is wh

CANTUS Evaluation Board Ap. Note

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

PowerPoint 프레젠테이션

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

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

%eb%8f%99%ec%9d%b8-[NO_09]%20%ec%9d%98%ea%b3%bc%eb%8c%80%ed%95%99%20%ec%86%8c%ec%8b%9d%ec%a7%80_F(%ec%b5%9c%ec%a2%85)-2.pdf

DioPen 6.0 사용 설명서

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

Modern Javascript

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

C# Programming Guide - Types


Microsoft Word - logic2005.doc

슬라이드 1

untitled

Microsoft PowerPoint - CHAP-01 [호환 모드]

SRC PLUS 제어기 MANUAL

Something that can be seen, touched or otherwise sensed

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

PowerPoint 프레젠테이션

HX - Operation Manual MC / TC / CUT / QT HX Series(V2.x) Operation Manual for MC / TC / CUT / QT CSCAM

Orcad Capture 9.x

CONTENTS 1. Approval Revision Record Scope Numbering of product Product Part No Lot. No Absolu

10X56_NWG_KOR.indd

Remote UI Guide

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

Microsoft Word - Automap3


슬라이드 1

PRO1_02E [읽기 전용]

2009년2학기 임베디드시스템 응용

MPLAB C18 C

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

대학교육151호-합침

I

Microsoft Word doc

2009년2학기 임베디드시스템 응용

Microsoft Word - JAVS_UDT-1_상세_메뉴얼.doc

歯처리.PDF

00 SPH-V6900_....

(유로권) 12월 실물지표 혼조, 4분기 성장률 0.3%로 전분기와 동일 - 지난 12월 역내 생산은 감소폭이 확대된 데 반해, 소비가 소폭 늘어나고, 무역흑자 규모가 수출 둔화로 전달보다 축소. 4분기 역내 성장률은 0.3%로서 전분기와 동일한 수 준을 기록하고, 2

Microsoft PowerPoint - CHAP-03 [호환 모드]

UI TASK & KEY EVENT

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

Microsoft Word - FunctionCall

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

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

untitled

chapter4

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>


DE1-SoC Board

PowerPoint 프레젠테이션

Chapter4.hwp

MicrocontrollerAcademy_Lab_ST_040709

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

BY-FDP-4-70.hwp

동기순차회로 p 조합논리회로 combinational logic circuit) v 출력이현재의입력에의해서만결정되는논리회로 p 순차논리회로 sequential logic circuit) v 현재의입력과이전의출력상태에의해서출력이결정 v 동기순차논리회로와비동기순차논리회로로

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

감각형 증강현실을 이용한

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

Microsoft PowerPoint - o8.pptx

PowerPoint 프레젠테이션

10주차.key

PowerPoint 프레젠테이션

5.스택(강의자료).key

Transcription:

Verilog: Finite State Machines CSED311 Lab03 Joonsung Kim, joonsung90@postech.ac.kr

Finite State Machines Digital system design 시간에배운것과같습니다. Moore / Mealy machines Verilog 를이용해서어떻게구현할까? 2

Finite State Machines Moore machine Output: function of Current state Larger # of states Safe (= synchronous) Current state가변할때만 output이바뀐다. == 즉! Clock이변할때만 (triggered) output이바뀐다. Input Previous state Output Next state logic (combinational) Current state Output logic (combinational) 3

Finite State Machines Mealy machine Input Output: function of Current state & input Smaller # of states Unsafe (= asynchronous) Input 값이변하게되면 (asynchronous) => 즉시 ouput 의값이바뀐다. Previous state Output Next state logic (combinational) Current state Output logic (combinational) 4

Finite State Machine: example Example: Reduce 1 s 주어진 0,1 로이루어진일련의숫자에대해서, 연속된 1 들중첫번째 1 을 0 으로바꿔준다. Examples: 000011100 -> 000001100 010101010 -> 000000000 011001100 -> 001000100 Verilog 를이용해서구현해봅시다! 5

Finite State Machine: example Designing a FSM Moore Mealy If in 0s -> output: 0 If first 1 encounter -> output: 0 If in 1s -> output: 1 6 If input 0, current 0 -> output: 0 If input 1, current 0 -> output: 0 If input 0, current 1 -> output: 0 If input 1, current 1 -> output: 1

Finite State Machine: example Setup template Moore // pre-define states Parameter zero=0, one1=1, two1s=2; Think of it as enum in C Const 선언하는것과비슷 Mealy // pre-define states Parameter zero=0, one=1; // start of my module module reducer (clk, reset, in, out); // start of my module module reducer (clk, reset, in, out); Input clk, reset, in; // input Input clk, reset, in; // input Reg out; // output Reg [1:0] state // currentstate Reg [1:0] state_next; // nextstate Reg out; // output Reg state // currentstate Reg state_next; // nextstate state 3 개 => 2bits register State 2 개 => 1bit register 7

Finite State Machine: example always 블락을이용해서 state 변화를표현한다. Moore Mealy Always @(posedge clk) if (reset) state <= zero; else state <= state_next; Always @(posedge clk) if (reset) state <= zero; else state <= state_next; Reset 되면, state 를 zero 로셋팅한다. 이 block 은 clock 의 Positive edge 에서 trigger 된다. 다른경우에는 next state 로옮긴다. 8

Finite State Machine: example always 블락을이용해서 state 변화를표현한다. Moore Always @(in or state) case (state) zero: out = 0; if (in == 1) state_next = one1; else one1: out = 0; if (in == 1) state_next = two1s; else out" and in 는다름 default: out = 0; Default case case in 이나 state 이변할때, trigger 9 Always @(in or state) case (state) zero: out = 0; Mealy if (in == 1) state_next = one; else one: if (in == 1) state_next = one; out = 1; else case

Finite State Machine: example Mealy machine 의 asynchronous 문제해결방법 Output buffering!!! Output 이 posedge clk 때까지바뀌지않는다. Buffer 된 output 을 synchronous 하게변화시킨다! Always @(posedge clk) if (reset) state <= zero; out <= 0; else state <= state_next; out <= out_next; 10 Always @(in or state) case (state) zero: out_next = 0; if (in == 1) state_next = one; else one: if (in == 1) state_next = one; out_next = 1; else case

Finite State Machine: tips Always block 을목적에따라서잘분할하세요 하나의 always block 에전부때려박는건. 안됩니다. // Always block for everything! Always @(posedge clk) // if state is ~ and input is ~ do sth // else if state is ~ and input is ~ do sth Too complex to understand and debug! (next output,state,logic ) 11

Finite State Machine: tips Always block 을목적에따라서잘분할하세요 쓰이는목적에맞게잘나누세요 // Always block for synchronous state update Always @(posedge clk) // State <= Next state // Always block for next state logic Always @(state or input change) // If (state & input) next state <= something // else if(state & input) next state <= something else // Always block for synchronous output update Always @(posedge clk) // output <= Next output // Always block for next output logic (moore) Always @(state) // If (state) next output <= something // else if(state) next output <= something else Easier to track output, state, etc 12

Finite State Machine: tips Always block 을목적에따라서잘분할하세요 하나의 register 를다른 always block 에서 update 하시면안됩니다. Always @(condition 1) // my register <= blah blah blah Always @(condition 2) // my register <= blah blah blah 2 ILLEGAL Always @(condition 1 or condition 2) // if(1) my register <= blah blah blah // elif(2) my register <= blah blah blah 2 OK 13