Chapter 10 State Machine Design. 2 State Machine Definitions State Machine: A synchronous sequential circuit consisting of a sequential logic section.

Slides:



Advertisements
Similar presentations
General Sequential Design
Advertisements

Sequential Circuits Storage elements
State-machine structure (Mealy)
A. Abhari CPS2131 Sequential Circuits Most digital systems like digital watches, digital phones, digital computers, digital traffic light controllers and.
Sequential Circuits1 DIGITAL LOGIC DESIGN by Dr. Fenghui Yao Tennessee State University Department of Computer Science Nashville, TN.
Module 12.  In Module 9, 10, 11, you have been introduced to examples of combinational logic circuits whereby the outputs are entirely dependent on the.
Computing Machinery Chapter 5: Sequential Circuits.
Circuits require memory to store intermediate data
6/27/20061 Sequence Detectors Lecture Notes – Lab 5 Sequence detection is the act of recognizing a predefined series of inputs A sequence detector is a.
6/12/20151 Sequence Detectors Lecture Notes – Lab 4 Sequence detection is the act of recognizing a predefined series of inputs A sequence detector is a.
Dr. Turki F. Al-Somani VHDL synthesis and simulation – Part 3 Microcomputer Systems Design (Embedded Systems)
Sequential logic and systems
Counters and Shift Registers
Lecture #5 In this lecture we will introduce the sequential circuits.
Sequential Circuits Chapter 4 S. Dandamudi To be used with S. Dandamudi, “Fundamentals of Computer Organization and Design,” Springer,  S.
Digital Computer Design Fundamental
1 COMP541 State Machines Montek Singh Feb 8, 2012.
Chap 4. Sequential Circuits
Digital Logic Design Sequential circuits
Chap 4. Sequential Circuits
George Mason University ECE 545 – Introduction to VHDL ECE 545 Lecture 5 Finite State Machines.
CprE / ComS 583 Reconfigurable Computing
Chapter 8 -- Analysis and Synthesis of Synchronous Sequential Circuits.
Introduction to Sequential Logic Design Finite State-Machine Design.
1 Lecture #12 EGR 277 – Digital Logic Synchronous Logic Circuits versus Combinational Logic Circuits A) Combinational Logic Circuits Recall that there.
Counters Dr. Rebhi S. Baraka Logic Design (CSCI 2301) Department of Computer Science Faculty of Information Technology The Islamic University.
1 Lecture 22 Sequential Circuits Analysis. 2 Combinational vs. Sequential  Combinational Logic Circuit  Output is a function only of the present inputs.
BZUPAGES.COM1 Chapter 9 Counters. BZUPAGES.COM2 BzuPages.COM Please share your assignments/lectures & Presentation Slides on bzupages which can help your.
ENG241 Digital Design Week #8 Registers and Counters.
Introduction to State Machine
Computer Organization & Programming Chapter 5 Synchronous Components.
2017/4/24 1.
Introduction to Sequential Logic
Analysis and Synthesis of Synchronous Sequential Circuits A “synchronizing” pulse/edge signal (clock) controls the operation of the memory portion of the.
VHDL Discussion Sequential Sytems. Memory Elements. Registers. Counters IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology.
 Seattle Pacific University EE Logic System DesignCounters-1 Shift Registers DQ clk DQ DQ ShiftIn Q3Q3 Q2Q2 DQ Q1Q1 Q0Q0 A shift register shifts.
CEC 220 Digital Circuit Design Latches and Flip-Flops Monday, March 03 CEC 220 Digital Circuit Design Slide 1 of 19.
CEC 220 Digital Circuit Design VHDL in Sequential Logic Wednesday, March 25 CEC 220 Digital Circuit Design Slide 1 of 13.
1 Sequential Logic Lecture #7. 모바일컴퓨팅특강 2 강의순서 Latch FlipFlop Active-high Clock & asynchronous Clear Active-low Clock & asynchronous Clear Active-high.
ENG241 Digital Design Week #7 Sequential Circuits (Part B)
1 COMP541 Finite State Machines - 1 Montek Singh Sep 22, 2014.
ECE DIGITAL LOGIC LECTURE 20: REGISTERS AND COUNTERS Assistant Prof. Fareena Saqib Florida Institute of Technology Fall 2015, 11/19/2015.
ECE DIGITAL LOGIC LECTURE 21: FINITE STATE MACHINE Assistant Prof. Fareena Saqib Florida Institute of Technology Fall 2015, 11/24/2015.
CS151 Introduction to Digital Design Chapter 5: Sequential Circuits 5-1 : Sequential Circuit Definition 5-2: Latches 1Created by: Ms.Amany AlSaleh.
State Machine Design State Machine Design Digital Electronics
Logic Design (CE1111 ) Lecture 6 (Chapter 6) Registers &Counters Prepared by Dr. Lamiaa Elshenawy 1.
1 COMP541 Sequential Logic – 2: Finite State Machines Montek Singh Feb 29, 2016.
1 Lecture 13: Sequential Circuits, FSM Today’s topics:  Sequential circuits  Finite state machines  Single-cycle CPU Reminder: midterm on Tue 10/20.
Sequential statements (1) process
Week #7 Sequential Circuits (Part B)
Registers and Counters
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
COMP541 Sequential Logic – 2: Finite State Machines
FIGURE 5.1 Block diagram of sequential circuit
Sequential Circuits Most digital systems like digital watches, digital phones, digital computers, digital traffic light controllers and so on require.
Asynchronous Inputs of a Flip-Flop
Algorithmic State Machine (ASM) Charts: VHDL Code & Timing Diagrams
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
VHDL (VHSIC Hardware Description Language)
Introduction to Sequential Circuits
Lecture 17 Logistics Last lecture Today HW5 due on Wednesday
State Machine Design with an HDL
State Machine Design State Machine Design Digital Electronics
Lecture #5 In this lecture we will introduce the sequential circuits.
Figure 8.1. The general form of a sequential circuit.
Lecture 17 Logistics Last lecture Today HW5 due on Wednesday
EGR 2131 Unit 12 Synchronous Sequential Circuits
SEQUENTIAL CIRCUITS __________________________________________________
Presentation transcript:

Chapter 10 State Machine Design

2 State Machine Definitions State Machine: A synchronous sequential circuit consisting of a sequential logic section and a combinational logic section. The outputs and internal flip flops (FF) progress through a predictable sequence of states in response to a clock and other control inputs.

3 State Machine Types Moore Machine: A Finite State Machine (FSM) whose outputs are determined only by the Sequential Logic (FF) of the FSM. Mealy Machine: An FSM whose outputs are determined by both the sequential logic and combinational logic of the FSM.

4 State Machine Basics State Variable: The variable held in the SM (FF) that determines its present state. A basic FSM has a memory section that holds the present state of the machine (stored in FF) and a control section that controls the next state of the machine (by clocks, inputs, and present state).

5 State Machine Basics

6

7 FSM Design Techniques Classical Design: Makes use of state tables, FF excitation tables, and Karnaugh Mapping to find FF input control logic. VHDL Design: Uses case statements or IF THEN ELSE statements to set the design and the logic synthesis tools to define equations.

8 Classical Design Approach – 1 Define the actual problem. Draw a state diagram (bubble) to implement the problem. Make a state table. Define all present states and inputs in a binary sequence. Then define the next states and outputs from the state diagram.

9 Classical Design Approach – 2 Use FF excitation tables to determine in what states the FF inputs must be to cause a present state to next state transition. Find the output values for each present state/input combination. Simplify Boolean logic for each FF input and output equations and design logic.

10 FSM Design Example 1 Gray Code Counter that sequences {000, 001, 011, 010, 110, 111, 101, 100, 000}. From this the state and excitation table is developed for D flip flops (see Table 10.2 in the textbook).

11 FSM Design Example 1

12 FSM Design Example 1

13 FSM Design Example 2 From the K-Maps for the inputs D 0, D 1, and D 2, the following equations are developed: Refer to Figure 10.6 in the textbook.

14 FSM Design Example 2

15 VHDL FSM Design Uses an enumerated type to declare state variables. Enumerated Type: A user-defined type in which all possible values of a named identifier are listed in a type definition. An FSM uses a CASE statement on the enumerated type state variable.

16 -- gray_ct1.vhd -- 3-bit Gray code counter -- (state machine with decoded outputs) LIBRARY ieee; USE ieee.std_logic_1164.ALL; FSM VHDL Example

17 ENTITY gray_ct1 IS PORT( clk: INSTD_LOGIC; q: OUTSTD_LOGIC_VECTOR(2 downto 0)); END gray_ct1; FSM VHDL Entity

18 ARCHITECTURE a OF gray_ct1 IS TYPE STATE_TYPE IS (s0,s1,s2,s3,s4,s5,s6,s7); SIGNAL state :STATE_TYPE; BEGIN PROCESS(clk) BEGIN FSM VHDL Architecture – 1

19 IF (clk’EVENT AND clk = ‘1’) THEN CASE state IS WHEN s0 => state <= s1; WHEN s1 => state <= s2; WHEN s2 => state <= s3; WHEN s3 => state <= s4; WHEN s4 => state <= s5; FSM VHDL Architecture – 2

20 WHEN s5 => state <= s6; WHEN s6 => state <= s7; WHEN s7 => state <= s0; END CASE; END IF; END PROCESS; FSM VHDL Architecture – 3

21 WITH state SELECT q <= “000” WHEN s0, “001” WHEN s1, “011” WHEN s2 “010” WHEN s3, “110” WHEN s4, “111” WHEN s5, “101” WHEN s6, “100” WHEN s7; END a; FSM VHDL Architecture – 4

22 WHEN s0 => state <= s1; q <= “001”; WHEN s1 => state <= s2; q <= “011”; VHDL Output Assignment The output assignment for the following example could have also been in the CASE test statements (in the process).

23 FSM with Control Inputs Same design approach used for FSM such as counters. Uses the control inputs and clock to control the sequencing from state to state. Inputs can also cause output changes not just FF outputs.

24 FSM with Control Inputs

25 SM Diagram Notation – 1 Bubbles contain the state name and value (StateName/Value), such as Start/000. Transitions between states are designated with arrows from one bubble to another. Each transition has an ordered Input/Output, such as in1/out1.

26 SM Diagram Notation – 2 For example, if SM is at State = Start and if in1 = 0, it then transitions to State = Continue and out1 = 1, out2 = 0. The arrow is drawn from start bubble to continue bubble. On the arrow the value 0/10 is given to represent the in1/out2,out1.

27 SM Design – 1 State Table for the State Diagram

28 SM Design – 2 The State Excitation Tables for the JK Inputs

29 SM Design – 3 The following equation represents the next state and output logic of the state machine.

30 SM Design – 4 The pulser SM has two outputs that are not always synchronized to clock. The pulse out2 is always synched to a change in clock, but out1 could change if in1 changes. The following slides show a VHDL implementation of the Pulser SM.

31 SM Design – 4

32 SM Design – 4

33 ARCHITECTURE a OF state_x1 IS TYPE PULSER IS (start, continue); SIGNAL sequence : PULSER; BEGIN PROCESS(clk) BEGIN SM Pulser Architecture – 1 Uses an enumerated type state listing of start and continue.

34 IF(clk’EVENT AND clk = ‘1’) THEN CASE sequence IS WHEN start => IF in1 = ‘1’ THEN sequence <= start; out1 <= ‘0’; out2 <= ‘0’; SM Pulser Architecture – 2 A portion of the case statement:

35 SM Pulser Architecture – 3 In the VHDL case statement, an IF conditional test statement was used to check the Input Signal (in1) for State = Start. IF in1 = 1, stay at State = Start; IF in1 = 0, then move to State = Continue (next clk). If the present state was continue, the next state is always start, so an IF statement is not required.

36 Switch Debouncer A digital circuit that is used to remove the mechanical “bounce” from a switch contact. When a switch is closed, the contacts bounce from open to closed to cause false transitions. A simple debouncer is a cross-coupled NAND Latch.

37 Switch Debouncer

38 Shift Register Debouncer – 1 An SR can be used to delay the glitches (bounces) with a slow clock (T = 2.6 ms). The input of the SR is from the switch, and it is clocked through a 4-bit register. The output of the SR is compared to the input, and if it is equal, the SR is still loaded.

39 Shift Register Debouncer – 2 When the switch bounces, the SR input and output are not equal, so the register stops loading to allow the delay to be added. The comparison is done by an XNOR gate to control the SR Load.

40 Shift Register Debouncer – 3 4-bit LPM SR clocked every 2.6 ms If pb_in  pb_out for 10.4 ms, the output changes. If not, then the output remains the same. Change on the input must be stable for 4 clock cycles before the output changes.

41 Shift Register Debouncer – 3

42 ENTITY debouncer IS PORT( pb_in, clock: IN STD_LOGIC; pb_out: OUT STD_LOGIC); END debouncer; SR Debounce Entity Uses an in from SW (pb_in) and a debounced output (pb_out).

43 ARCHITECTURE debounce OF debouncer IS SIGNAL ctr_q :STD_LOGIC_VECTOR (15 downto 0); SIGNAL srg_parallel_in :STD_LOGIC_VECTOR (3 downto 0); SIGNAL srg_serial_in :STD_LOGIC; SIGNAL srg_serila_out :STD_LOGIC; SIGNAL srg_load :STD_LOGIC; SR Debounce Architecture – 1

44 BEGIN clock_divider : lpm_counter GENERIC MAP (LPM_WIDTH => 16) PORT MAP (clock => clock, q => ctr_q); SR Debounce Architecture – 2

45 -- shift register clocked by MSB of counter 2 16 delay_ element : lpm_shiftreg GENERIC MAP (LPM_WIDTH => 4) PORT MAP (clock => ctr_q (15), load => srg_load, data => srg_parallel_in, shiftin => srg_serial_in, shiftout => srg_serial_out); SR Debounce Architecture – 3

46 srg_load <= (not pb_in) xnor srg_serial_out; srg_parallel_in (3) <= srg_serial_out; srg_parallel_in (2) <= srg_serial_out; srg_parallel_in (1) <= srg_serial_out; srg_parallel_in (0) <= srg_serial_out; srg_serial_in <= not pb_in; pb_out <= srg_serial_out; END debounce; SR Debounce Architecture – 4

47 Unused States – 1 Some modulus counters, such as MOD- 10, have states that are not used in the counter sequence. The MOD-10 Counter would have 6 unused states (1010, 1011….1111) based on 4-bits.

48 Unused States – 2 An FSM can also have unused states, such as an SM, with only 5 bubbles in the state diagram (5-states). This FSM still requires 3 bits to represent these states so there will be 3 unused states. These unused states can be treated as don’t cares (X) or assigned to a specific initial state.

49 Unused States – 2

50 Unused States Example Slide – 1 A five-variable state diagram is shown in the previous slide, with unused states assigned to the initial state = Start. The normal state sequence is Start  Wait1  Wait2  Pulse1  Pulse2 and then back to Start. Any other states cause a transition back to Start.

51 Unused States Example Slide – 2 The Input (in1) Sequence of 101 causes the machine to advance from Start  Wait1  Wait2. Then it does two unconditional transitions to Pulse1 and Pulse2. The Pulse1 and Pulse2 States generate two pulses on the Outputs (out1 and out2).

52 Unused States Example Slide – 3 Any unused states are given the value of Start (000) for its next state. For the FSM 3-Bit Register (FF), this generates the equations shown on the next slide.

53 Unused States Example Slide – 4

54 Traffic Light FSM – 1 The FSM controls are for a North-South Road and an East-West road (see Figure in textbook). This generates 3 Outputs for each road (nsr, nsy, nsg, and ewr, ewy, ewg) for the Red, Yellow, and Green Lights (Low = ON).

55 Traffic Light FSM – 1

56 Traffic Light FSM – 1

57 Traffic Light FSM – 2 An Input called TIMER controls the length of a light cycle (TIMER = 1 causes a S0 to S1 or a S2 to S3 transition). When one light is green (S0(EW) or S2(NS)), the other is red.

58 Traffic Light FSM – 3 There is an unconditional timed transfer from yellow to red or red to green. A normal cycle is 4 clocks GREEN, 1 clock YELLOW, 5 clocks RED. Solution is left as an example problem.