Microsoft PowerPoint - DSD03_verilog3b.pptx

Similar documents
Microsoft PowerPoint - DSD03_verilog3a.pptx

PowerPoint 프레젠테이션

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

v6.hwp

Microsoft PowerPoint - Verilog_Summary.ppt

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

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 - hw4.ppt [호환 모드]

9장 순차논리 회로

Microsoft PowerPoint - DSD06b_Cont.pptx

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

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

Microsoft PowerPoint - ch11_reg.pptx

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

개요 데이터를저장할수있는기억소자 여러개의플립플롭으로구성. 메모리는단순데이터를저장하는소자이지만, 레지스터는저장뿐아니라저장된데이터를처리할수있는기능도있다. 카운터도클록펄스가입력되면미리정해진순서에따라상태가변하는레지스터이다. 카운터와레지스터의차이점 데이터를저장또는이동하는목적으로

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

Microsoft Word - logic2005.doc

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

Microsoft PowerPoint - DSD02_verilog2a.pptx

PowerPoint 프레젠테이션

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

<4D F736F F F696E74202D20332EB5F0C1F6C5D0C8B8B7CEBFCD20B1B8C7F62E >

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

MAX+plusⅡ를 이용한 설계

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

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

8장 조합논리 회로의 응용

1. 일련의순차적인수를세는회로는? < 가 > 가카운터 다디코더 나레지스터 라인코더 2. 입력펄스에따라미리정해진순서대로상태가변화하는레지스터로써발생회수를세거나동작순서를제어하기위한타이밍 (timing) 신호를만드는데가장적합한회로는? < 다 > 가범용레지스터 다

Microsoft PowerPoint - DSD02_verilog2b.pptx

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

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

슬라이드 1

슬라이드 1

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

10 장카운터

Microsoft Word - logic2005.doc

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

PowerPoint 프레젠테이션

CAN-fly Quick Manual

디지털공학 5판 7-8장

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

슬라이드 제목 없음

untitled

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

PowerPoint Presentation

chap7_ohp.hwp

Microsoft PowerPoint - 제10장.ppt [호환 모드]

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

Microsoft PowerPoint - es-arduino-lecture-03

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

Microsoft PowerPoint - 부호기와 복호기.PPT

차례.hwp

Microsoft PowerPoint - verilog문법new.ppt

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

PowerPoint 프레젠테이션

BMP 파일 처리

CPX-E-SYS_BES_C_ _ k1

hwp

CD-6208_SM(new)

Orcad Capture 9.x

PowerPoint Presentation

T100MD+

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

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

VOL /2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

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

MR-3000A-MAN.hwp

PowerPoint 프레젠테이션

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

b74...*

Microsoft Word - FunctionCall

PowerPoint 프레젠테이션

ez-md+_manual01

PRO1_02E [읽기 전용]

DIB-100_K(90x120)

보고서(겉표지).PDF

APICS 컨퍼런스 수정 2

tut_modelsim(student).hwp

SRC PLUS 제어기 MANUAL


chap01_time_complexity.key

슬라이드 1

SMV Vending Machine Implementation and Verification 김성민 정혁준 손영석

LCD Display

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

. "" "",.... :...,,....,.. :..,,,..,,...,.... 2

歯DCS.PDF

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

Microsoft PowerPoint - DSD01_verilog1a.pptx

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

(2) : :, α. α (3)., (3). α α (4) (4). (3). (1) (2) Antoine. (5) (6) 80, α =181.08kPa, =47.38kPa.. Figure 1.

歯320.PDF

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Å©·¹Àγ»Áö20p

1_12-53(김동희)_.hwp


PowerPoint 프레젠테이션

Transcription:

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

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

. 조합회로설계 2. 순차회로설계 3. FSM 회로설계 4. ASM 을사용한설계 한국기술교육대학교전기전자통신공학부 3

input clk 유한상태머신 (Finite State Machine; FSM) 지정된수의상태로상태들간의천이에의해출력을생성하는회로 디지털시스템의제어회로구성에사용 Moore 머신 : 출력이현재상태에의해서만결정, 동기형출력 Mealy 머신 : 출력이현재상태와입력에의해결정, 비동기형출력 3 부분으로구성 현재상태레지스터 차기상태논리회로 출력회로 next state logic ns state register ps Mealy output logic Moore output logic Mealy output Moore output S3 -/ / S S S2 S S2 / / / / S3 S -/ / Input/output w/yy2 S4 무어머신 밀리머신 한국기술교육대학교전기전자통신공학부 4

상태할당 - 상태값의이진데이터의인코딩방식에따라상태레지스터의비트수가달라짐 상태인코딩예 상태번호 2진인코딩 Gray 인코딩 Johnson 인코딩 One-hot 인코딩 2 3 4 5 6 7 한국기술교육대학교전기전자통신공학부 5

유한상태머신 (FSM) 의코딩가이드라인 FSM의상태이름을 parameter로정의하여사용 컴파일러지시어인 `define을이용하여상태이름을정의할수도있으나 `define은컴파일과정에서광역적으로영향을미치므로, 다수의 FSM에서동일한상태이름이사용되는경우에오류가발생된다. parameter는국부적인영향을미치므로다른 FSM에영향을미치지않는다. FSM이비동기리셋을할수있게설계 리셋을갖지않는 FSM은초기전원인가후, 상태레지스터의초기값이 x 이므로미정의상태에서나오지못하는상황이발생할수있다. FSM을구성하는 3개의블록 (next state logic, state register, output logic) 을분리된 always 블록또는 assign 문으로구현 FSM 코딩의일관성을좋게하고, 수정및변경을용이하게한다. 상태레지스터는플립플롭을사용 Next state logic은 case 문을사용하고, 정의되지않은상태들은 default 문으로표현, 외부입력은 case_item 문에서 if~else를사용 한국기술교육대학교전기전자통신공학부 6

code 3.3- moore.v, 세부분으로구분된무어머신 module moore (clk, rst, x, z, ps); input clk, rst, x; output z; output [:] ps; // to monitor state status wire z; reg [:] ps, ns; parameter S = 2'b, S = 2'b, S2 = 2'b, S3 = 2'b; // state register always @ (posedge rst or posedge clk) // 순차회로 if (rst) ps <= S; // 논블록킹할당 else ps <= ns; // next state logic always @ (ps or x) // 조합회로 case(ps) S : if (x) ns = S; else ns = S; // 블록킹할당 S : if (x) ns = S2; else ns = S; S2 : if (x) ns = S3; else ns = S; S3 : ns = S; default : ns = S; endcase // output logic assign z = (ps == S3) ; // 조합회로, 동기형출력 S3 한국기술교육대학교전기전자통신공학부 7 S S2 S

code 3.3-2 moore2.v, 두부분으로구분된무어머신 module moore2 (clk, rst, x, z, ps); input clk, rst, x; output z; output [:] ps; // to monitor state status reg z; reg [:] ps, ns; parameter S = 2'b, S = 2'b, S2 = 2'b, S3 = 2'b; always @ (posedge rst or posedge clk) if (rst) ps <= S; else ps <= ns; // next state logic and output logic always @ (ps or x) case(ps) S : begin z = 'b; // 동기형무어출력위치 if (x) ns = S; else ns = S; end S : begin z = 'b; if (x) ns = S2; else ns = S; end S2 : begin z = 'b; if (x) ns = S3; else ns = S; end S3 : begin z = 'b; ns = S; end default : begin z= 'b; ns = S; end endcase S3 S S2 S 한국기술교육대학교전기전자통신공학부 8

code 3.3-3 mealy.v, 두부분으로구분된밀리머신 module mealy (clk, rst, w, y, ps); input clk, rst, w; output [:] y; output [2:] ps; // to monitor state status reg [:] y; reg [2:] ps, ns; parameter S = 3'b, S = 3'b, S2 = 3'b; parameter S3 = 3'b, S4 = 3'b; always @ (posedge rst or posedge clk) if (rst) ps <= S; else ps <= ns; always @ (ps or w) begin y = 2'b; // default output case(ps) // 비동기출력 S : if (w) begin y = 2'b; ns = S; end else begin y = 2'b; ns = S; end S : if (w) begin y = 2'b; ns = S2; end else begin y = 2'b; ns = S3; end S2 : begin y = 2'b; ns = S; end S3 : if (w) begin y = 2'b; ns = S2; end else begin y = 2'b; ns = S4; end S4 : begin y = 2'b; ns = S; end default : ns = S; endcase end -/ / S S S2 / / / / 한국기술교육대학교전기전자통신공학부 9 S3 Input/output w/yy2 -/ / S4

패턴검사기 : 감지입력패턴 :... 예상출력 :... S4 S5 S3 S st st S2 S code 3.3-4 detect.v, 패턴순서검사기 module detect (clk, rst, st, x, y, ps); input clk, rst, st, x; output y; output [2:] ps; // to monitor state status reg y; reg [2:] ps, ns; parameter S = 3'b, S = 3'b, S2 = 3'b; parameter S3 = 3'b, S4 = 3'b, S5 = 3'b; always @ (posedge rst or posedge clk) if (rst) ps <= S; else ps <= ns; always @ (ps or x or st) begin case(ps) S : begin y = 'b; // moore output if (st) ns = S; else ns = S; end S : begin y = 'b; if (x) ns = S; else ns = S2; end S2 : begin y = 'b; if (x) ns = S3; else ns = S2; end S3 : begin y = 'b; if (x) ns = S4; else ns = S2; end S4 : begin y = 'b; if (x) ns = S; else ns = S5; end S5 : begin y = 'b; if (x) ns = S3; else ns = S2; end default : begin y='b; ns = S; end endcase end 한국기술교육대학교전기전자통신공학부

ASM (Algorithmic State Machine) 차트 - 디지털하드웨어알고리즘정의 - 클럭펄스에의한연산실행표현 ASM 차트구성요소 - state box : 상태부호 ( 이진값 ), active 레지스터, 출력신호 - decision box : 분기신호 - conditional output box : 조건출력 decision box 로부터 상태상자상태상자예판단상자 조건출력상자 조건출력상자예 한국기술교육대학교전기전자통신공학부

ASM block - 한개의상태박스는반드시포함, 판별및조건적출력박스는 option - 한개의 ASM 블럭은한개의클럭타임에수행 Timing - 레지스터의상태변화는다음클럭의에지에서발생함에유의 ASM 블록예 ASM 도는상태도와유사 상태박스 - 상태원, E= decision 상태천이조건 조건출력 Mealy type 출력 ASM 차트와등가인상태도 한국기술교육대학교전기전자통신공학부 2

start clk 비트전가산기를사용한 n 비트덧셈연산데이터패스 전가산기, 캐리, 시프트레지스터제어회로 시스템타이밍신호 데이터패스의모드제어신호 x y sh sh sa_con ld sreg sreg ld ld sh done A B Ci q FA dff_ar en rst clk 직렬가산기구조 d S Co ld clk sh ~start preg sum sa_dp S start S x sr x y sr y sum {s, sr sum} q co S2 x sr x y sr y sum {s, sr sum} q co S9 x a y b q. done S~S8 same operations 직렬가산기 ASM 차트 한국기술교육대학교전기전자통신공학부 3

직렬가산기의계층도 sadd TB_sadd sa_dp sa_con sreg preg fa dff_ar sreg Hardware Simulation 한국기술교육대학교전기전자통신공학부 4

data path 하위모듈 // sreg.v, PISO, parallel in serial out module sreg (clk, sh, ld, din, sout); parameter size = 8; input clk, sh, ld; input [size-:] din; output sout; reg [size-:] sreg; // internal register assign sout = sreg[]; always @ (posedge clk) if (ld) sreg <= din; else if (sh) sreg <= sreg >> ; // fa.v, 비트전가산기 module fa (a, b, ci, co, s); input a, b, ci; output co, s; assign co = ( a & b) (ci & a ) (ci & b); assign s = a ^ b ^ ci; // dff_ar.v, 비동기리셋을가진 D 플립플롭 module dff_ar (rst, clk, en, d, q); input rst, clk, en, d; output q; reg q; always @ (negedge rst or posedge clk) if (~rst ) q <= ; else if (en) q <= d; // preg.v, SIPO, serial in parallel out module preg (clk, sh, sin, q); parameter size = 8; input clk, sh; input sin; output [size-:] q; reg [size-:] q; always @ (posedge clk) if (sh) q <= {sin, q[size-:]}; 한국기술교육대학교전기전자통신공학부 5

data path 모듈 module sa_dp (rst, clk, x, y, sh, ld, res); parameter size = 8; input rst, clk; input [size-:] x, y; // operands input sh, ld ; // from control output [size:] res; wire x, y, ci, co, s; wire [size-:] sum; assign res = { ci, sum }; sreg UX (clk, sh, ld, x, x); sreg UY (clk, sh, ld, y, y); preg Us (clk, sh, s, sum); dff_ar UD (.rst(rst),.clk(clk),.en(sh),.d(co),.q(ci)); fa UF (.a(x),.b(y),.ci(ci),.co(co),.s(s)); 한국기술교육대학교전기전자통신공학부 6

module sa_con ( start, clk, sh, ld, done, ps); input start, clk; output sh, ld, done; output [3:] ps; // to monitor reg [3:] ps, ns; parameter S=4'b, S=4'b, S2=4'b, S3=4'b; parameter S4=4'b, S5=4'b, S6=4'b, S7=4'b; parameter S8=4'b, S9=4'b; reg [2:] mode; control 모듈 -FSM 구조 // state register always @ (posedge start or posedge clk) if (start) ps <= S; else ps <= ns; assign sh = mode[2]; assign ld = mode[]; assign done = mode[]; // next logic always @ (ps or start) begin mode = 3'b; // default output case(ps) S : begin mode = 3'b; ns = S; end S,S2,S3,S4,S5,S6,S7,S8 : ns = ps + 'b; S9 : begin mode = ; ns = S; end // if (start) ns=s; else ns=s9; end default : ns = S; endcase end 한국기술교육대학교전기전자통신공학부 7

Top 모듈 데이터패스와제어회로의구조적연결 module sadd(start, clk, x, y, ps, res, done, sh, ld); parameter size = 8; input start, clk; input [size-:] x, y; output [3:] ps; // to monitor output [size:] res; output done; output sh, ld; // to monitor wire sh, ld; sa_dp UD ( ~start, clk, x, y, sh, ld, res); sa_con UC ( start, clk, sh, ld, done, ps); 한국기술교육대학교전기전자통신공학부 8

테스트벤치 `timescale ns/ns module tb_sadd; parameter size = 8; reg start, clk=; reg [size-:] x, y; wire [3:] ps; wire [size:] res; wire done, sh, ld; always forever #5 clk = ~clk; initial begin start = ; # start = ; // first trial #5 start = ; # start = ; // second trial # start = ; end initial begin x = 8'h27; y = 8'h9c; #9 x = 8'h58; y = 8'hf9; end sadd DUT (start, clk, x, y, ps, res, done, sh, ld); 한국기술교육대학교전기전자통신공학부 9