Lectures 11 & 12: Synchronous Sequential Circuits Minimization

Similar documents
EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited

R a) Simplify the logic functions from binary to seven segment display code converter (8M) b) Simplify the following using Tabular method

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6

R07. Code No: V0423. II B. Tech II Semester, Supplementary Examinations, April

R07

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6

Injntu.com Injntu.com Injntu.com R16

Ripple Counters. Lecture 30 1

Sequential Logic Synthesis

EE 231 Fall EE 231 Homework 8 Due October 20, 2010

Digital Integrated Circuits

ELCT 501: Digital System Design

(Refer Slide Time: 1:43)

Code No: 07A3EC03 Set No. 1

ECE 551: Digital System *

NADAR SARASWATHI COLLEGE OF ENGINEERING AND TECHNOLOGY Vadapudupatti, Theni

Blocking(=) vs Nonblocking (<=) Assignment. Lecture 3: Modeling Sequential Logic in Verilog HDL. Procedural assignments

CO Computer Architecture and Programming Languages CAPL. Lecture 9

Using Programmable Logic and the PALCE22V10

ECE 2300 Digital Logic & Computer Organization. More Finite State Machines

Hours / 100 Marks Seat No.

Redundant States in Sequential Circuits

SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road QUESTION BANK (DESCRIPTIVE)

Registers and finite state machines

(ii) Simplify and implement the following SOP function using NOR gates:

Principles of Digital Techniques PDT (17320) Assignment No State advantages of digital system over analog system.

CS/EE Homework 7 Solutions

Laboratory Exercise 7

EECS150 Homework 2 Solutions Fall ) CLD2 problem 2.2. Page 1 of 15

University of Technology

FSM-based Digital Design using Veriiog HDL

Graduate Institute of Electronics Engineering, NTU Design of Datapath Controllers

Final Examination (Open Katz, asynchronous & test notes only, Calculators OK, 3 hours)

RealDigital. Problem Set #7 S1 S2 S3 Y Z X Y + Y Z X Z

PART B. 3. Minimize the following function using K-map and also verify through tabulation method. F (A, B, C, D) = +d (0, 3, 6, 10).

Why Should I Learn This Language? VLSI HDL. Verilog-2

Control in Digital Systems

COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING QUESTION BANK SUBJECT CODE & NAME: EC 1312 DIGITAL LOGIC CIRCUITS UNIT I

Digital Logic Design Exercises. Assignment 1

Code No: R Set No. 1

CS/IT DIGITAL LOGIC DESIGN

Finite-State Machine (FSM) Design

Laboratory Exercise 3 Davide Rossi DEI University of Bologna AA

VALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS

Modeling Sequential Circuits in Verilog

EE178 Lecture Verilog FSM Examples. Eric Crabill SJSU / Xilinx Fall 2007

EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013

Graduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date:

Digital System Design with SystemVerilog

Code No: R Set No. 1

HANSABA COLLEGE OF ENGINEERING & TECHNOLOGY (098) SUBJECT: DIGITAL ELECTRONICS ( ) Assignment

IA Digital Electronics - Supervision I

Written exam for IE1204/5 Digital Design Thursday 29/

EECS Components and Design Techniques for Digital Systems. Lec 07 PLAs and FSMs 9/ Big Idea: boolean functions <> gates.

state encoding with fewer bits has fewer equations to implement state encoding with more bits (e.g., one-hot) has simpler equations

Digital Integrated Circuits

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

von Neumann Architecture Basic Computer System Early Computers Microprocessor Reading Assignment An Introduction to Computer Architecture

Basic Computer System. von Neumann Architecture. Reading Assignment. An Introduction to Computer Architecture. EEL 4744C: Microprocessor Applications

Testbenches for Sequential Circuits... also, Components

Code No: R Set No. 1

VALLIAMMAI ENGINEERING COLLEGE

10EC33: DIGITAL ELECTRONICS QUESTION BANK

VALLIAMMAI ENGINEERING COLLEGE

Recitation Session 6

FSM and Efficient Synthesizable FSM Design using Verilog

ECE 2300 Digital Logic & Computer Organization. More Verilog Finite State Machines

Lecture 32: SystemVerilog

CS232 VHDL Lecture. Types

SUBJECT CODE: IT T35 DIGITAL SYSTEM DESIGN YEAR / SEM : 2 / 3

COPYRIGHTED MATERIAL INDEX

DE Solution Set QP Code : 00904

PROGRAMMABLE LOGIC DEVICES

END-TERM EXAMINATION

ECE 449 OOP and Computer Simulation Lecture 09 Logic Simulation

1. Draw general diagram of computer showing different logical components (3)


Quick Introduction to SystemVerilog: Sequental Logic

ECE 331: N0. Professor Andrew Mason Michigan State University. Opening Remarks

SIR C.R.REDDY COLLEGE OF ENGINEERING, ELURU DEPARTMENT OF INFORMATION TECHNOLOGY LESSON PLAN

Hours / 100 Marks Seat No.

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

SIDDHARTH INSTITUTE OF ENGINEERING AND TECHNOLOGY :: PUTTUR (AUTONOMOUS) Siddharth Nagar, Narayanavanam Road QUESTION BANK

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003

3. The high voltage level of a digital signal in positive logic is : a) 1 b) 0 c) either 1 or 0

Finite State Machines

LOGIC DESIGN. Dr. Mahmoud Abo_elfetouh

EEM 232 Digital System I

MLR Institute of Technology

UNIT I BOOLEAN ALGEBRA AND COMBINATIONAL CIRCUITS PART-A (2 MARKS)

R10. II B. Tech I Semester, Supplementary Examinations, May

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines

Finite State Machines

1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4]

Digital VLSI Testing Prof. Santanu Chattopadhyay Department of Electronics and EC Engineering India Institute of Technology, Kharagpur.

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

Scheme G. Sample Test Paper-I

Review of Number Systems

PDHonline Course G349. State Machines. Mark A. Strain, P.E. PDH Online PDH Center

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques

Transcription:

Lectures & 2: Synchronous Sequential Circuits Minimization. This week I noted that our seven-state edge detector machine on the left side below could be simplified to a five-state machine on the right. What is the formal procedure for doing this? S S S S i S S S S S S i S S Original State Transition Diagram Minimized State Transition Diagram.. We start with the following definitions... Two states S i and S j are equivalent if and only if for every possible input sequence, the same output sequence will be produced regardless of whether S i or Sj is the initial state...2. A successor to state S i is a state that it transitions to based on its input (not a sequence), e.g. S has S and S as its successors. We can differentiate successors by prefacing the word with the input, e.g. S is the - successor of S, and S is the -successor of S. We refer to all of the immediate successors of a state as its k- successors...3. A block is a subset of states that may be equivalent...4. A partition is a set of blocks where the states in each block are definitely not equivalent to the states in the other blocks..2. Partition minimization procedure..2.. Start with all states in one partition, and all are in the same block, P, e.g. (S i, S, S, S, S, S, S )..2.2. Create P 2 by dividing the states in P into blocks that have the same outputs. From our definition of equivalent, states that have different outputs cannot be equivalent. Here, P 2 = (S i, S, S, S, S ) (S, S ).2.3. We create P 3 from P 2 by looking at the k-successors of each state. Those states of a block that have k- successors that are in different blocks from others in the block must be placed in new blocks grouped by shared k-successors..2.3.. The -successors for the (S i, S, S, S, S ) block of P 2 are S, S, S, S, S, respectively, so it will have to be divided into those that stay in the block, and those that move to the (S, S ) of P 2, i.e., (S i, S, S ) and (S, S ). The -successors for (S i, S, S ) are S, S, S, respectively, so it will be divided into (S i) and (S, S ). The -succesors for (S, S ) are S, S, so it will not need to be divided. So the first block of P 2 will be divided into the three blocks (S i), (S, S ) and (S, S ) in P 3..2.3.2. The -successors for the (S, S ) block of P 2 are S, S, respectively, which are in different blocks from each other in P 2, so it will have to be divided into two separate blocks (S ), and (S )..2.3.3. So P 3 = (S i)(s, S )(S, S )(S )(S )..2.4. All succeeding partitions look at each multiple element block of the previous partition to see if the k- successors of its elements lead to the same blocks of the previous partition. If not, the block must be further divided. If any block splits, then we must continue to another step of partitioning. If no block splits, then we are done..2.4.. For P 4, the -successors of (S, S ) are both block (S ), so that will not cause the block to split. The - successors are both (S, S ), so there is no need to separate the block further during this partitioning step..2.4.2. For P 4, the -successors of (S, S ) are both block (S, S ), so that will not cause the block to split. The - successors are both (S ), so there is no need to separate the block further during this partitioning step..2.4.3. Since no block split, the final minimized partition is P 3 = (S i)(s, S )(S, S )(S )(S ), which matches the five-state transition diagram. 2. Combining equivalent states we get the state table on the right.

Next State Output x = x = z Next State Output i x = x = z i Minimized State Table Original State Table 2.. Choice of Flip-Flops and Derivation of Next-State and Output Expressions 2... For example we will keep things simple, and choose to use DFF. 2..2. Moore Model 2..2.. Assign binary codes to each state. Since we have five states, we will need three DFF to represent the possible states. We will have A, B, and C as the present state of the corresponding flip-flops Binary Input Next State Output Code A B C x A B C z i i 2..2.2. Create K-Map for each flip-flop based on input and present state. A d d d d d d A = Bx B d d d d d d B = x 2..2.3. Use derivations from these K-maps to design initial combinational circuit. 2..2.4. Create a K-Map based on flip-flops to determine the output combinational circuit. z C z = C + A BC C d d d d d d C = B x + A + B C

2..3. Will the above circuit fulfill our expectations for our transition diagram? No! There is no way to set the initial state. We need to be able to clear all of the flip-flops before starting. D flip-flops can come with asynchronous preset and clears. We will not pursue this issue any further. 3. Now let s walk through designing a synchronous sequential circuit for a continuous binary coded decimal, BCD. This circuit will take four bits, indicate whether they are a valid BCD, then take four more bits with the first bit being the least significant. We will build this using the Mealy model. If the four bits are a valid BCD, i.e., between and 9, then circuit will output, else. 3.. The original state transition diagram is simpler than our edge detector because there are no loops. Left branches are for inputs of zero, and right branches are for inputs of one. / / S S S S S S S S S S S S S S S i 3.2. Apply the Partitioning Minimization Procedure to reduce the number of states in a Mealy Model. 3.2.. Except for state i, we will refer to the states simply by their bit patterns. 3.2.2. Since this is a Mealy Model, states do not have output values. The k-successors for a state are the output value created by the combination of the state and the possible inputs. 3.2.3. P = (i,,,,,,,,,,,,,, ). 3.2.4. P 2 = (i,,,,,, ) (, ) (,,,,, ). 3.2.4.. The first block all have k-successors of /, /. The second block all have /, /. The last block all have /, /. 3.2.4.2. Note the reason we do not have a fourth block based on the other possible k-successor combination, /, /, is because there are no states that have that combination. 3.2.5. P 3 = (i,, ) (, ) (, ) (, ) (,,,,, ). 3.2.5.. The first block all have k-successors in the first block of P 2. 3.2.5.2. (, ) have -successors in (, ), and -sucessors in (,,,,, ). 3.2.5.3. (, ) have both of their k-successors in (,,,,, ). 3.2.5.4. (, ) have the single state, i, as their k-successor so we can presume that that block will never split, and ignore it until the end of the procedure.

*/ 3.2.5.5. Similarly, (,,,,, ) all have a single state, i, as their k-successor, so that block will never split too. 3.2.6. P 4 = (i) () () (, ) (, ) (, ) (,,,,, ) 3.2.6.. (i,, ) of P 3 must split because each of its elements have its k-successors in a different block of P 3 from the other two elements. i leads to (i,, ), leads to (, ), and leads to (, ). 3.2.7. There is no need for another partition because all elements in each block of P 4 lead to identical blocks of P 4. 3.3. We let * stand for either a or at a given position, and ~(*) = (,,,,, ) in our notation. The transition state diagram would be: S i S * S * S ~(*) S * S * Next State Output x = x = x = x = i * * * * * * * ~(*) * ~(*) ~(*) * i i ~(*) i i State Table 3.4. Since there are six states we will need three flip flops, A, B, C. 3.5. Now assign state binary codes. 3.5.. State binary codes can be assigned randomly, but careful assignments may reduce the combinational logic. 3.5.2. Rules of thumb for state binary code assignments. 3.5.2.. Try to assign adjacent (Hamming distance of one) code words to a state and the state that follows it. 3.5.2.2. If two present states have the same next state, assign those present states adjacent code words. 3.5.2.3. A K-Map will help. 3.5.2.3.. Since the initial state will be re-initialized each four bits, it should be all zeroes so that we can use the Clear pin for the flip-flops. 3.5.2.3.2. Next place * next to the i since * is the successor state for i. Now place *, and * adjacent to *. This leaves * and ~(*). * needs to be adjacent to i and *, and there is one place for it. We would like ~* adjacent to *, *, and i, but that is not possible. Which is why these are called rules of thumb, not fixed laws. The ~* can be placed adjacent to * and * though. i * * C * * ~(*) 3.6. Use the binary codes to create a state-assigned table Binary Input Next State Output Code A B C x A B C z i i * * * * * * * * ~(*) ~(*) 3.7. Create K-Map for each flip-flop based on input and present state in the state-assigned table.

A d d d d d A = AC + A Bx z B d d d d d B = C +A Bx C d d d d d C = BC x +AC + A BC 3.7 Use derivations from the K-maps to design initial combinational circuit. 3.8 Create a K-Map based on flip-flops and, since this is a Mealy model, the input, to determine the output combinational circuit. d d d d z = C + A B +Bx