Boolean Methods for Multi-level Logic Synthesis Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial.

Slides:



Advertisements
Similar presentations
1 EECS 219B Spring 2001 Node minimization Andreas Kuehlmann.
Advertisements

Based on text by S. Mourad "Priciples of Electronic Systems" Digital Testing: Design Representation and Fault Detection
Types of Logic Circuits
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
Global Flow Optimization (GFO) in Automatic Logic Design “ TCAD91 ” by C. Leonard Berman & Louise H. Trevillyan CAD Group Meeting Prepared by Ray Cheung.
Partial Implications, etc.
ECE 331 – Digital System Design
Logic Synthesis 2 Outline –Two-Level Logic Optimization –ESPRESSO Goal –Understand two-level optimization –Understand ESPRESSO operation.
Multilevel Logic Minimization -- Introduction. ENEE 6442 Outline > Multi-level minimization: technology independent local optimization. > What to optimize:
Chapter 2 – Combinational Logic Circuits Part 1 – Gate Circuits and Boolean Equations Logic and Computer Design Fundamentals.
Asynchronous Sequential Logic
Chapter 3 Simplification of Switching Functions
Logic Synthesis Outline –Logic Synthesis Problem –Logic Specification –Two-Level Logic Optimization Goal –Understand logic synthesis problem –Understand.
Logic Synthesis 5 Outline –Multi-Level Logic Optimization –Recursive Learning - HANNIBAL Goal –Understand recursive learning –Understand HANNIBAL algorithms.
Rewiring – Review, Quantitative Analysis and Applications Matthew Tang Wai Chung CUHK CSE MPhil 10/11/2003.
Gate Logic: Two Level Canonical Forms
Contemporary Logic Design Two-Level Logic © R.H. Katz Transparency No. 3-1 Chapter #2: Two-Level Combinational Logic Section 2.1, Logic Functions.
Contemporary Logic Design Two-Level Logic © R.H. Katz Transparency No. 4-1 Chapter #2: Two-Level Combinational Logic Section 2.3, Switches and Tools.
ECE 667 Synthesis and Verification of Digital Systems
Canonical Forms and Logic Miniminization
1 COMP541 Combinational Logic - II Montek Singh Aug 27, 2014.
ENEE244-02xx Digital Logic Design Lecture 7. Announcements Homework 3 due on Thursday. Review session will be held by Shang during class on Thursday.
Sequential Redundancy Removal w/o State Space Exploration A. Mehrotra, S. Qadeer, V. Singhal, R. Brayton, A. Aziz, A. Sangiovanni-Vincentelli, “Sequential.
Logic gate level Part 3: minimizing circuits. Improving circuit efficiency Efficiency of combinatorial circuit depends on number & arrangement of its.
Overview Part 2 – Circuit Optimization 2-4 Two-Level Optimization
Chapter 3 Simplification of Switching Functions. Simplification Goals Goal -- minimize the cost of realizing a switching function Cost measures and other.
Department of Computer Engineering
CHAPTER 1 INTRODUCTION TO DIGITAL LOGIC. K-Map (1)  Karnaugh Mapping is used to minimize the number of logic gates that are required in a digital circuit.
Optimization Algorithm
Heuristic Two-level Logic Optimization Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial purposes.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. Circuit Optimization Logic and Computer Design Fundamentals.
4. Combinational Logic Networks Layout Design Methods 4. 2
Two Level Networks. Two-Level Networks Slide 2 SOPs A function has, in general many SOPs Functions can be simplified using Boolean algebra Compare the.
CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.
Chapter3: Gate-Level Minimization Part 1 Origionally By Reham S. Al-Majed Imam Muhammad Bin Saud University.
CHAPTER 3: PRINCIPLES OF COMBINATIONAL LOGIC
Unit 1 Minimization Techniques and Logic Gates. Introduction to Digital Systems Analog devices and systems process time-varying signals that can take.
1 K-Maps, Multi-level Circuits, Time Response Today: Reminder: Test #1, Thu 7-9pm K-map example, espressoFirst Hour: K-map example, espresso –Section 2.3.
05 BA2 Page 1 ECEn/CS 224 Boolean Algebra – Part 2.
KFUPM COE 202: Digital Logic Design Combinational Logic Part 1 Courtesy of Dr. Ahmad Almulhem.
1 BOOLEAN ALGEBRA Basic mathematics for the study of logic design is Boolean Algebra Basic laws of Boolean Algebra will be implemented as switching devices.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
© BYU 03 BA1 Page 1 ECEn 224 Boolean Algebra – Part 1.
BOOLEAN ALGEBRA AND LOGIC SIMPLIFICATION
Digital Logic (Karnaugh Map). Karnaugh Maps Karnaugh maps (K-maps) are graphical representations of boolean functions. One map cell corresponds to a row.
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect10: Two-level Logic Minimization.
TOPIC : Fault detection and fault redundancy UNIT 2 : Fault modeling Module 2.3 Fault redundancy and Fault collapsing.
1 Using Don’t Cares - full_simplify command Major command in SIS - uses SDC, ODC, XDC Key Questions: How do we represent XDC to a network? How do we relate.
Chapter 3 Simplification of Switching Functions. Simplification Goals Goal -- minimize the cost of realizing a switching function Cost measures and other.
1 CS 352 Introduction to Logic Design Lecture 4 Ahmed Ezzat Multi-level Gate Circuits and Combinational Circuit Design Ch-7 + Ch-8.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect18: Multi Level Logic Minimization.
©2010 Cengage Learning SLIDES FOR CHAPTER 8 COMBINATIONAL CIRCUIT DESIGN AND SIMULATION USING GATES Click the mouse to move to the next page. Use the ESC.
1 CS 352 Introduction to Logic Design Lecture 2 Ahmed Ezzat Boolean Algebra and Its Applications Ch-3 + Ch-4.
CHAPTER 3 Simplification of Boolean Functions
DeMorgan’s Theorem DeMorgan’s 2nd Theorem
CSE 140 : Components and Design Techniques for Digital Systems
Multi-Level Minimization
Optimization Algorithm
SAT-Based Optimization with Don’t-Cares Revisited
CSE 370 – Winter Combinational Implementation - 1
Topics Logic synthesis. Placement and routing..
332:437 Lecture 3 Hardware Design Methodology and Advanced Logic Design Hardware design.
Testability of Two-Level Circuits
Synthesis and Verification of Finite State Machines
Overview Part 2 – Circuit Optimization
ECE 352 Digital System Fundamentals
Illustrative Example p p Lookup Table for Digits of h g f e ) ( d c b
*Internal Synthesizer Flow *Details of Synthesis Steps
Presentation transcript:

Boolean Methods for Multi-level Logic Synthesis Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial purposes as long as this note and the copyright footers are not removed © Giovanni De Micheli – All rights reserved

(c) Giovanni De Micheli 2 Module 1 u Objectives s What are Boolean methods s How to compute don’t care conditions t Controllability t Observability s Boolean transformations

(c) Giovanni De Micheli 3 Boolean methods u Exploit Boolean properties of logic functions u Use don’t care conditions u More complex algorithms s Potentially better solutions s Harder to reverse the transformations u Used within most synthesis tools

(c) Giovanni De Micheli 4 External don’t care conditions u Controllability don’t care set CDC in s Input patterns never produced by the environment at the network’s input u Observability don’t care set ODC out s Input patterns representing conditions when an output is not observed by the environment s Relative to each output s Vector notation

(c) Giovanni De Micheli 5 Example

(c) Giovanni De Micheli 6 Overall external don’t care set u Sum the controllability don’t cares to each entry of the observability don’t care set vector

(c) Giovanni De Micheli 7 Internal don’t care conditions

(c) Giovanni De Micheli 8 Internal don’t care conditions u Induced by the network structure u Controllability don’t care conditions: s Patterns never produced at the inputs of a sub-network u Observability don’t care conditions s Patterns such that the outputs of a sub-network are not observed

(c) Giovanni De Micheli 9 Example of optimization with don’t cares u CDC of y includes ab’x + a’x’ u Minimize f y to obtain: g y = ax + a’c x = a’ + b y = abx + a’cx x = a’ + b y = ax + a’c

(c) Giovanni De Micheli 10 Satisfiability don’t care conditions u Invariant of the network: x = f x → x ≠ f x  SDC u SDC = ∑ all internal nodes x  f x u Useful to compute controllability don't cares

(c) Giovanni De Micheli 11 CDC Computation u Method 1: Network traversal algorithm s Consider initial CDC = CDC in at the primary inputs s Consider different cutsets moving through the network from inputs to outputs s As the cutset moves forward t Consider SDC contribution of the newly considered block t Remove unneeded variables by consensus

(c) Giovanni De Micheli 12 Example a bc d e x1x4x3x2 z1z2 a bc d e x1x4x3x2 z1z2 {d,e} {b,c} {b,a,x4} {x1,a,x4} {x1,x2,x3,x4}

(c) Giovanni De Micheli 13 Example u Assume CDC in = x 1 ’x 4 ’ u Select vertex v a s Contribution of v a to CDC cut = a  (x 2  x 3 ) s Updated CDC cut = x’ 1 x’ 4 + a  (x 2  x 3 ) s Drop variables D = {x 2, x 3 } by consensus: s CDC cut = x 1 ’x 4 ’ u Select vertex v b s Contribution to CDC cut : b  (x 1 + a). t Updated CDC cut = x 1 ’x 4 ’ + b  (x 1 + a) s Drop variables x 1 by consensus: t CDC cut = b’x 4 ’ + b’a u…u… u CDC out = e’ = z 2 ’ a b c d e x1x4x3x2 z1z2 {d,e} {b,c} {b,a,x4} {x1,a,x4} {x1,x2,x3,x4}

(c) Giovanni De Micheli 14 CDC Computation CONTROLLABILITY( G n ( V,E ), CDC in ) { C = V I ; CDC cut = CDC in ; foreach vertex v x  V in topological order { C = C U v x ; CDC cut = CDC cut + f x  x ; D = { v  C s.t. all direct successors of v are in C } foreach vertex v y  D CDC cut = C y ( CDC cut ); C = C – D ; }; CDC out = CDC cut ; }

(c) Giovanni De Micheli 15 CDC Computation u Method 2: range or image computation u Consider the function f expressing the behavior of the cutset variables in terms of primary inputs u CDC cut is the complement of the range of f when CDC in = 0 u CDC cut is the complement of the image of (CDC in )’ under f u The range and image can be computed recursively s Terminal case: scalar function s The range of y = f( x ) is y + y’ (any value) unless f ( or f’ ) is a tautology and the range is y ( or y’ )

(c) Giovanni De Micheli 16 Example b c d e b c u range (f) = d range ((b+c)| d=bc=1 ) + d’ range ((b+c)| d=bc=0 ) u When d = 1, then bc = 1 → b + c = 1 is TAUTOLOGY u If I choose 1 as top entry in output vector: s the bottom entry is also 1. s u When d = 0, then bc = 0 → b+c = {0,1} u If I choose 0 as top entry in output vector: s The bottom entry can be either 0 or 1. u range (f) = de + d’(e + e’) = de + d’ = d’ + e 1?1? 1111 →

(c) Giovanni De Micheli 17 Example a bc d e x1x4x3x2 z1z2 f = f1f2f1f2 ( x 1 + a )( x 4 + a ) ( x 1 + a ) + ( x 4 + a ) x 1 x 4 + a x 1 + x 4 + a ==

(c) Giovanni De Micheli 18 range (f) = d range (f 2 | (x 1 x 4 + a)=1 ) + d’ range (f 2 | (x 1 x 4 + a)=0 ) = d range (x 1 + x 4 + a| (x 1 x 4 + a)=1 ) + d’ range (x 1 + x 4 + a| (x 1 x 4 + a)=0 ) = d range (1) + d’ range (a’(x 1  x 4 )) = de + d’(e + e’) = e + d’ u CDC out = (e + d’)’ = de’ = z 1 z 2 ’ Example a b c f2f2 f1f1 f’ 1

(c) Giovanni De Micheli 19 Example a bc d e x1x4x3x2 z1z2 f = f1f2f1f2 ( x 1 + a )( x 4 + a ) ( x 1 + a ) + ( x 4 + a ) x 1 x 4 + a x 1 + x 4 + a == CDC in = x’ 1 x’ 4

(c) Giovanni De Micheli 20 image (f) = d image (f 2 | (x 1 x 4 + a)=1 ) + d’ image (f 2 | (x 1 x 4 + a)=0 ) = d image (x 1 + x 4 + a| (x 1 x 4 + a)=1 ) + d’ image (x 1 + x 4 + a| (x 1 x 4 + a)=0 ) = d image (1) + d’ image (1) = de + d’e = e u CDC out = e’ = z 2 ’ Example a b c f2f2 f1f1 f’ 1

(c) Giovanni De Micheli 21 Observability analysis u Complementary to controllability s Analyze network from outputs to inputs u More complex because network has several outputs and observability depends on output u Observability may be understood in terms of perturbations s If you flip the polarity of a signal at net x, and there is no change in the outputs, then x is not observable

(c) Giovanni De Micheli 22 Observability analysis u Complementary to controllability s Analyze network from outputs to inputs u More complex because network has several outputs and controllability depends on output u Observability may be understood in terms of perturbations s If you flip the polarity of a signal at net x, and there is no change in the outputs, then x is not observable  Perturbed function f x  δ  Perturbed terminal behavior f x ( δ )

(c) Giovanni De Micheli 23 Observability don’t care conditions u Conditions under which a change in polarity of a signal x is not perceived at the output u If there is an explicit representation of the function, the ODC is the complement of the Boolean difference ODC = ( ∂f / ∂x)’ u Often, the terminal behavior is described implicitly s Applying chain rule to Boolean difference is computationally hard

(c) Giovanni De Micheli 24 Tree-network traversal u Consider network from outputs to input u At root s ODC out is given s It may be empty u At internal nodes: s Local function y = f y (x) s ODC x = (∂f y / ∂x )’ + ODC y u Observability don’t care set has two components: s Observability of the local function and observability of the network beyond the local block

(c) Giovanni De Micheli 25 Example e = b + c b = x 1 + a 1 c = x 4 + a 2 u Assume ODC out = ODC e = 0 u ODC b = (∂f e /∂b)’ = (b + c)| b = 1  (b + c)| b = 0 = c u ODC c = (∂f e /∂c)’ = b u ODC x 1 = ODC b + (∂f b /∂x 1 )’ = c + a 1 bc e x1x4a2a1

(c) Giovanni De Micheli 26 Non-tree network traversal u General networks have forks and fanout reconvergence u For each fork point, the contribution to the ODC depends on both paths u Network traversal cannot be applied in a straightforward way u More elaborate analysis is needed

(c) Giovanni De Micheli 27 Two-way fork u Compute ODC sets associated with edges u Recombine ODCs at fork point u Theorem: s ODC x = ODC x,y|x=x’  ODC x,z s ODC x = ODC x,z|x=x’  ODC x,y u Multi-way forks can be reduced to a sequence of two-way forks

(c) Giovanni De Micheli 28 ODC formula derivation

(c) Giovanni De Micheli 29 ( ) ODC d = 0000 ; Example a bc d e x1x4x3x2 z1z2 a ed cb x1x3x2 z1 x4 z2 ODC c = ( ) b’ b ;ODC b = ( ) c’ c ; ODC e = ( ) 0000 ;ODC a,b = ( ) a’x 4 ’ + x 1 a + x 4 + x 1 ( ) c’ + x 1 c + x 1 = ODC a,c = ( ) b’ + x 4 b + x 4 ( ) a’x 1 ’ + x 4 a + x 1 + x 4 =ODC a = ( ) x 1 x 4 x 1 + x 4 =ODC a,c ( ) a’x 1 ’ + x 4 a + x 1 + x 4 ODC a,b | a=a’ ( ) a x 4 ’ + x 1 a’ + x 4 + x 1  =

(c) Giovanni De Micheli 30 Don’t care computation summary u Controllability don’t cares are derived by image computation s Recursive algorithms and data structure are applied u Observability don’t cares are derived by backward traversal s Exact and approximate computation s Approximate methods compute don’t care subsets

(c) Giovanni De Micheli 31 Transformations with don’t cares u Boolean simplification s Generate local DC set for local functions s Use heuristic minimizer (e.g., Espresso) s Minimize the number of literals u Boolean substitution: s Simplify a function by adding one (ore more) inputs s Equivalent to simplification with global don’t care sets

(c) Giovanni De Micheli 32 Example – Boolean substitution u Substitute q = a + cd into f h = a + bcd + e s Obtain f h = a + bq + e u Method s Compute SDC including q  (a+cd) = q’a +q’cd + qa’(cd)’ s Simplify f h = a + bcd + e with DC = q’a + q’cd + qa’ (cd)’ s Obtain f h = a + bq +e u Result s Simplified function has one fewer literal by changing the support of f h

(c) Giovanni De Micheli 33 Simplification operator u Cycle over the network blocks s Compute local don’t care conditions s Minimize u Issues: s Don’t care sets change as blocks are being simplified s Iteration may not have a fixed point s It would be efficient to parallelize some simplifications

(c) Giovanni De Micheli 34 Optimization and perturbation u Minimizing a function at a block x is the replacement of a local function f x with a new function g x u This is equivalent to perturbing the network locally by  δ x = f x  g x u Conditions for a feasible replacement s Perturbation bounded by local don’t care sets  δ x included in DC ext + ODC + CDC u Smaller, approximate don’t care sets can be used s But have smaller degrees of freedom

(c) Giovanni De Micheli 35 Example u No external don’t care set. u Replace AND by wire: g x = a u Analysis:  δ = f x  g x = ab  a = ab’ s ODC x = y’ = b’ + c’  δ = ab’  DC x = b’ + c’  feasible! x y b c a z x y b c a z

(c) Giovanni De Micheli 36 Parallel simplification u Parallel minimization of logic blocks is always possible when blocks are logically independent s Partitioned network u Within a connect network, logic blocks affect each other u Doing parallel minimization is like introducing multiple perturbations s But it is attractive for efficiency reasons u Perturbation analysis shows that degrees of freedom cannot be represented by just an upper bound on the perturbation s Boolean relation model

(c) Giovanni De Micheli 37 Example u Perturbations at x and y are related because of the reconvergent fanout at z u Cannot change simultaneously s ab into a s cb into c

(c) Giovanni De Micheli 38 Boolean relation model

(c) Giovanni De Micheli 39 Boolean relation model u Boolean relation minimization is the correct approach to handle Boolean optimization at multiple vertices u Necessary steps s Derive equivalence classes for Boolean relation s Use relation minimizer u Practical considerations s High computational requirement to use Boolean relations s Use approximations instead

(c) Giovanni De Micheli 40 Parallel Boolean optimization compatible don’t care sets u Determine a subset of don’t care sets which is safe to use in a parallel minimization s Remove those degrees of freedom that can lead to transformations incompatible with others effected in parallel u Using compatible don’t care sets, only upper bounds on the perturbation need to be satisfied u Faster and efficient method

(c) Giovanni De Micheli 41 Example u Parallel optimization at two vertices u First vertex x s CODC equal to ODC set s CODC x = ODC x u Second vertex y s CODC is smaller than its ODC to be safe enough to allow for transformations permitted by the first ODC s CODC y = C x (ODC y ) + ODC y ODC’ x u Order dependence

(c) Giovanni De Micheli 42 Example u CODC y = ODC y = x’ = b’ + a’ u ODC x = y’ = b’ + c’ u CODC x = C y (ODC x ) + ODC x (ODC y )’ = C y (y’) + y’x = y’x = (b’ + c’)ab = abc’ x y b c a z

(c) Giovanni De Micheli 43 Example (2) u Allowed perturbation: s f y = bc → g y = c  δ y = bc  c = b’c  CODC y = b’ + a’ u Disallowed perturbation: s f x = ab → g x = a.  δ x = ab  a = ab’  CODC x = abc’ x y b c a z

(c) Giovanni De Micheli 44 Boolean methods Summary u Boolean methods are powerful means to restructure networks s Computationally intensive u Boolean methods rely heavily on don’t care computation s Efficient methods s Possibility to subset the don’t care sets u Boolean method often change the network substantially, and it is hard to undo Boolean transformations

(c) Giovanni De Micheli 45 Module 2 u Objectives s Testability s Relations between testability and Boolean methods

(c) Giovanni De Micheli 46 Testability u Generic term to mean easing the testing of a circuit u Testability in logic synthesis context s Assume combinational circuit s Assume single/multiple stuck-at fault u Testability is referred to as the possibility of generating test sets for all faults s Property of the circuit s Related to fault coverage

(c) Giovanni De Micheli 47 Test for stuck-at s u Net y stuck-at 0 s Input pattern that sets y to TRUE s Observe output s Output of faulty circuit differs from correct circuit u Net y stuck-at 1 s Input pattern that sets y to FALSE s Observe output s Output of faulty circuit differs from correct circuit u Testing is based on controllability and observability

(c) Giovanni De Micheli 48 Test sets – don’t care interpretation u Stuck-at 0 on net y s { Input vector t such that y(t) ODC’y (t) = 1 } u Stuck-at 1 on net y s { Input vector t such that y’(t) ODC’y (t) = 0 }

(c) Giovanni De Micheli 49 Using testing methods for synthesis u Redundancy removal s Use ATPG to search for untestable fault u If stuck-at 0 on net y is untestable: s Set y = 0 s Propagate constant u If stuck-at 1 on net y is untestable s Set y = 1 s Propagate constant u Iterate for each untestable fault

(c) Giovanni De Micheli 50 Example

(c) Giovanni De Micheli 51 Redundancy removal and perturbation analysis u Stuck-at 0 on y s y set to 0. Namely g x = f x | y=0 s Perturbation:  δ = f x  f x | y=0 = y· ∂f x /∂y u Perturbation is feasible  fault is untestable s No input vector t can make y(t)· ODC y ’(t) true s No input vector t can make y(t)· ODC x ’(t)· ∂f x /∂y true t Because ODC y = ODC x + (∂f x /∂y)’ zx y

(c) Giovanni De Micheli 52 Redundancy removal and perturbation analysis u Assume untestable stuck-at 0 fault. u y· ODC x ’· ∂f x /∂y  SDC u Local don’t care set: s DC x  ODC x + y· ODC x ’· ∂f x /∂y s DC x  ODC x + y· ∂f x /∂y  Perturbation δ = y· ∂f x /∂y s Included in the local don’t care set

(c) Giovanni De Micheli 53 Rewiring u Extension to redundancy removal s Add connection in a circuit s Create other redundant connections s Remove redundant connections u Iterate procedure to reduce network s A connection corresponds to a wire s Rewiring modifies gates and wiring structure s Wires may have specific costs due to distance

(c) Giovanni De Micheli 54 Example gcfh a b c d x y z m

(c) Giovanni De Micheli 55 Synthesis for testability u Synthesize fully testable circuits s For single or multiple stuck-at faults u Realizations s Two-level forms s Multi-level networks u Since synthesis can modify the network properties, testability can be addressed during synthesis

(c) Giovanni De Micheli 56 Two-level forms u Full testability for single stuck-at faults: s Prime and irredundant covers u Full testability for multiple stuck-at faults s Prime and irredundant cover when t Single output function t No product-term sharing t Each component is prime and irredundant

(c) Giovanni De Micheli 57 Example f = a’b’ + b’c + ac + ab

(c) Giovanni De Micheli 58 Multiple-level networks u Consider logic networks with local functions in sop form u Prime and irredundant network s No literal and no implicant of any local function can be dropped s The AND-OR implementation is fully testable for single stuck-at faults u Simultaneous prime and irredundant network s No subsets of literals and no subsets of implicants can be dropped s The AND-OR implementation is fully testable for multiple stuck-at s

(c) Giovanni De Micheli 59 Synthesis for testability u Heuristic logic minimization (e.g., Espresso) is sufficient to insure testability of two-level forms u To achieve fully testable networks, simplification has to be applied to all logic blocks with full don’t care sets u In practice, don’t care sets change as neighboring blocks are optimized u Redundancy removal is a practical way of achieving testability properties

(c) Giovanni De Micheli 60 Summary – Synthesis for testability u There is synergy between synthesis and testing s Don’t care conditions play a major role in both fields u Testable network correlate to a small area implementation u Testable network do not require to slow-down the circuit u Algebraic transformations preserve multi-fault testability, and are preferable under this aspect