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

Similar documents
Chapter 6. Logic Design Optimization Chapter 6

LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado.

Redundant States in Sequential Circuits

Lectures 11 & 12: Synchronous Sequential Circuits Minimization

Advanced Digital Logic Design EECS 303

ESE535: Electronic Design Automation. Today. LUT Mapping. Simplifying Structure. Preclass: Cover in 4-LUT? Preclass: Cover in 4-LUT?

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited

Optimized Implementation of Logic Functions

1 Construct implication chart, one square for each combination of states. 2 Square labeled S i, S j, if outputs differ than square gets X (0).

Incompletely Specified Functions with Don t Cares 2-Level Transformation Review Boolean Cube Karnaugh-Map Representation and Methods Examples

Laboratory Exercise 3 Davide Rossi DEI University of Bologna AA

Chapter 3. Gate-Level Minimization. Outlines

Unit 4: Formal Verification

IMPLEMENTATION DESIGN FLOW

Heuristic Optimisation

CS137: Electronic Design Automation

COE 561 Digital System Design & Synthesis Introduction

ECE 3060 VLSI and Advanced Digital Design

CSE 140 Homework Three

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

Assign auniquecodeto each state to produce a. Given jsj states, needed at least dlog jsje state bits. (minimum width encoding), at most jsj state bits

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design

COPYRIGHTED MATERIAL INDEX

Simplification of two-level combinational logic

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

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

9/10/2016. ECE 120: Introduction to Computing. The Domain of a Boolean Function is a Hypercube. List All Implicants for One Variable A

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

ESE535: Electronic Design Automation. Today. EDA Use. Problem PLA. Programmable Logic Arrays (PLAs) Two-Level Logic Optimization

Code No: 07A3EC03 Set No. 1

Preclass Warmup. ESE535: Electronic Design Automation. Motivation (1) Today. Bisection Width. Motivation (2)

Combinatorial Algorithms. Unate Covering Binate Covering Graph Coloring Maximum Clique

The k-center problem Approximation Algorithms 2009 Petros Potikas

Lecture 24: More Reductions (1997) Steven Skiena. skiena

FSM and Efficient Synthesizable FSM Design using Verilog

R07

PROGRAMMABLE LOGIC DEVICES

ECE 5745 Complex Digital ASIC Design Topic 12: Synthesis Algorithms

EECS150. Implement of Processor FSMs

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

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).

A New Decomposition of Boolean Functions

cs281: Introduction to Computer Systems Lab03 K-Map Simplification for an LED-based Circuit Decimal Input LED Result LED3 LED2 LED1 LED3 LED2 1, 2

Advanced Digital Logic Design EECS 303

Sequential Logic Synthesis

Outcomes. Unit 9. Logic Function Synthesis KARNAUGH MAPS. Implementing Combinational Functions with Karnaugh Maps

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

VHDL for Synthesis. Course Description. Course Duration. Goals

Don't Cares in Multi-Level Network Optimization. Hamid Savoj. Abstract

Read-Once Functions (Revisited) and the Readability Number of a Boolean Function. Martin Charles Golumbic

EEL 4783: HDL in Digital System Design

CSE241 VLSI Digital Circuits UC San Diego

Sequential Circuits. inputs Comb FFs. Outputs. Comb CLK. Sequential logic examples. ! Another way to understand setup/hold/propagation time

CS8803: Advanced Digital Design for Embedded Hardware

Algorithms: Decision Trees

: : (91-44) (Office) (91-44) (Residence)

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

Introduction to Machine Learning CMU-10701

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING QUESTION BANK NAME OF THE SUBJECT: EE 2255 DIGITAL LOGIC CIRCUITS

Code No: R Set No. 1

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

Rigidity, connectivity and graph decompositions

On the Verification of Sequential Equivalence

Debouncing a Switch. A Design Example. Page 1

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

ECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Retiming. Adapted from: Synthesis and Optimization of Digital Circuits, G. De Micheli Stanford. Outline. Structural optimization methods. Retiming.

TECHNOLOGY MAPPING FOR THE ATMEL FPGA CIRCUITS

FSM-based Digital Design using Veriiog HDL

Verilog for High Performance

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne

DigSim Assignment 2: Finite State Machine Simplifications

6.001 Notes: Section 4.1

Some Hardness Proofs

VLSI Test Technology and Reliability (ET4076)

Control in Digital Systems

Chapter 3: Number Systems and Codes. Textbook: Petruzella, Frank D., Programmable Logic Controllers. McGraw Hill Companies Inc.

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

Chapter 8: Data Abstractions

Applications. Foreground / background segmentation Finding skin-colored regions. Finding the moving objects. Intelligent scissors

A GENETIC ALGORITHM FOR CLUSTERING ON VERY LARGE DATA SETS

Combinational Logic Circuits Part III -Theoretical Foundations

IN5050: Programming heterogeneous multi-core processors Thinking Parallel

Abstraction of State Elements. Sequential Logic Implementation. Forms of Sequential Logic. Finite State Machine Representations

Exact Algorithms for NP-hard problems

Efficiently Utilizing ATE Vector Repeat for Compression by Scan Vector Decomposition

Programmable Logic Devices

Department of Electrical and Computer Engineering University of Wisconsin Madison. Fall Midterm Examination CLOSED BOOK

History: Combinational Logic! single FSM! Hierarchy. Facilities for managing networks of FSMs MISII. Facilities for handling latches

Final Exam Solution Sunday, December 15, 10:05-12:05 PM

Music. Numbers correspond to course weeks EULA ESE150 Spring click OK Based on slides DeHon 1. !

Lecture 08 Finite State Machine Design Using VHDL

ADVANCED MACHINE LEARNING MACHINE LEARNING. Kernel for Clustering kernel K-Means

A Hybrid Recursive Multi-Way Number Partitioning Algorithm

Lesson 2 7 Graph Partitioning

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

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Transcription:

State minimization fewer states require fewer state bits fewer bits require fewer logic equations Encodings: state, inputs, outputs state encoding with fewer bits has fewer equations to implement however, each may be more complex state encoding with more bits (e.g., onehot has simpler equations complexity directly related to complexity of state diagram input/output encoding may or may not be under designer control " Goal identify and combine states that have equivalent behavior Equivalent states: same output for all input combinations, states transition to same or equivalent states Algorithm sketch 1. place all states in one set 2. initially partition set based on output behavior 3. successively partition resulting subsets based on next state transitions 4. repeat (3 until no further partitioning is required states left in the same set are equivalent polynomial time procedure!

# Sequence detector for 010 or 110 %&! "! "! " $

% &% State minimized sequence detector for 010 or 110 %# Multiple input example & " #$%"! " %! *

% &% Implication chart method cross out incompatible states based on outputs then cross out more cells if indexed chart entries are already crossed out present next state output state 00 01 10 11 S0' S0' S1 S2 S3' 1 S1 S0' S3' S1 S3' 0 S2 S1 S3' S2 S0' 1 S3' S1 S0' S0' S3' 0 minimized state table (S0==S4 (S3==S5 %,'&% Equivalence of states is transitive when machine is fully specified But its not transitive when don't cares are present e.g., state output S0 0 S1 is compatible with both S0 and S2 S1 1 but S0 and S2 are incompatible S2 1 No polynomial time algorithm exists for determining best grouping of states into equivalent sets that will yield the smallest number of final states +

%,,&. Example: edge detector outputs 1 when last two input changes from 0 to 1 * * * + * +, * + * "* * + * * "'&& "Ad hoc" solution not minimal but cheap and fast

Choose bit vectors to assign to each symbolic state with n state bits for m states there are 2 n! / (2 n m! [log n <= m <= 2 n ] 2 n codes possible for 1st state, 2 n 1 for 2nd, 2 n 2 for 3rd, huge number even for small values of n and m intractable for state machines of any size heuristics are necessary for practical solutions optimize some metric for the combinational logic size (amount of logic and number of FFs speed (depth of logic and fanout dependencies (decomposition Possible strategies sequential just number states as they appear in the state table random pick random codes onehot use as many state bits as there are states (bit=1 > state output use outputs to help encode states heuristic rules of thumb that seem to work in most cases No guarantee of optimality another intractable problem!

/ Simple easy to encode easy to debug Small logic functions each state function requires only predecessor state bits as input Good for programmable devices lots of flipflops readily available simple functions with small support (signals its dependent upon Impractical for large machines too many states require too many flipflops decompose FSMs into smaller pieces that can be onehot encoded Many slight variations to onehot onehot + all0 0' Adjacent codes to states that share a common next state group 1's in next state map * * +. % / * * + %. /! * * + %. 0. 1 + 1 % % 1 / 1. 1 + 1 % 1 0 1 %. / Adjacent codes to states that share a common ancestor state group 1's in next state map. /! % Adjacent codes to states that have a common output behavior group 1's in output map. % 0. $

1 All current methods are variants of this 1 determine which states attract each other (weighted pairs 2 generate constraints on codes (which should be in same cube 3 place codes on Boolean cube so as to maximize constraints satisfied (weighted sum Different weights make sense depending on whether we are optimizing for twolevel or multilevel forms Can't consider all possible embeddings of state clusters in Boolean cube heuristics for ordering embedding to prune search for best embedding expand cube (more state bits to satisfy more constraints /.&& Reuse outputs as state bits use outputs to help distinguish states why create new functions for state bits when output can serve as well fits in nicely with synchronous Mealy implementations < 4= 4 4 2 5,, 23 23,, 23 23, 23 26,, 26 26,, 26 53, 53 53,, 53 56,, 53 56,, 56 56,, 56 23 23 4 2 2 5 5 + 4 2 2 5 5 26 4 2 2 5 5 + 4 2 2 5 5 53 4 2 2 5 5 + 4 2 2 5 5 26 4 2 2 5 5 + 4 2 2 5 5 " 7 8 0" " 0 96 %, $!$ :" " :" & " 0 ": ; "! % *

For tight encodings using close to the minimum number of state bits best of 10 random seems to be adequate (averages as well as heuristics heuristic approaches are not even close to optimality used in custom chip design Onehot encoding easy for small state machines generates small equations with easy to estimate complexity common in FPGAs and other programmable logic Outputbased encoding ad hoc no tools most common approach taken by human designers yields very small circuits for most FSMs, State minimization straightforward in fullyspecified machines computationally intractable, in general (with don t cares State assignment many heuristics bestof10random just as good or better for most machines output encoding can be attractive (especially for PAL implementations +