Designing State Machines SQRT controller Lecture L 9

  • Slides: 13
Download presentation
Designing State Machines SQRT controller Lecture L 9. 2 a Section 9. 2

Designing State Machines SQRT controller Lecture L 9. 2 a Section 9. 2

SQRT Controller • Mealy and Moore Machines • SQRT Controller

SQRT Controller • Mealy and Moore Machines • SQRT Controller

A canonical sequential network

A canonical sequential network

A Mealy state machine

A Mealy state machine

A Moore state machine

A Moore state machine

SQRTctl

SQRTctl

Lab 8

Lab 8

MODULE SQRTctl interface(Clk, Clear, lteflg, strt -> ald, sqld, dld, outld); TITLE 'Control Unit

MODULE SQRTctl interface(Clk, Clear, lteflg, strt -> ald, sqld, dld, outld); TITLE 'Control Unit for square root algorithm' DECLARATIONS " INPUT PINS " Clk PIN; lteflg PIN; Clear PIN; start PIN; " " clock <= flag clear GCD starts when start = 1 " OUTPUT PINS " ald, sqld, dld, outld PIN; " reg load signals

A Moore state machine

A Moore state machine

Q 1. . Q 0 NODE ISTYPE 'reg buffer'; Q = [Q 1. .

Q 1. . Q 0 NODE ISTYPE 'reg buffer'; Q = [Q 1. . Q 0]; " 2 -bit state vector " Definitions QSTATE = [Q 1, Q 0]; start = [0, 0]; test = [0, 1]; update = [1, 0]; done = [1, 1]; state_diagram QSTATE state start: if strt then test else start; state test: if lteflg then update else done; state update: goto test; state done: goto done;

A Moore state machine

A Moore state machine

EQUATIONS WHEN QSTATE {ald == start then = 1; sqld = 0; == test

EQUATIONS WHEN QSTATE {ald == start then = 1; sqld = 0; == test then = 0; sqld = 0; == update then = 0; sqld = 1; == done then = 0; sqld = 0; Q. C = Clk; Q. AR = Clear; END SQRTctl " a <- SW dld = 0; outld = 0; } dld = 0; " dld = 1; " dld = 0; outld = 0; } sq <- sq + del; del <- del + 2 outld = 0; } out <- (del - 1)/2 outld = 1; }

Lab 8

Lab 8