On the Existence of Hazard-Free Multi-Level Logic Steven M. Nowick - - PowerPoint PPT Presentation
On the Existence of Hazard-Free Multi-Level Logic Steven M. Nowick - - PowerPoint PPT Presentation
On the Existence of Hazard-Free Multi-Level Logic Steven M. Nowick Charles W. ODonnell Department of Computer Science Columbia University Preliminaries Combinational Circuit Preliminaries Combinational Circuit multiple-input
Preliminaries
Combinational Circuit
Preliminaries
Combinational Circuit
(1)
multiple-input transition
Preliminaries
hazard = potential for a glitch Combinational Circuit
(1)
multiple-input transition
- utput transition
Preliminaries
hazard-free = no potential for a glitch Combinational Circuit
(1)
multiple-input transition
- utput transition
Goal: design hazard-free combinational circuits
Outline
- Background:
Background: Hazard-Free 2-Level Logic
- Overview of Multi
Overview of Multi-
- Level Method
Level Method
– Hazard-Free Decomposition – Algorithm + Examples – Standard 3-Level Circuit Structures – Canonicity
- Related Work:
Related Work: Bredeson Bredeson [ [’ ’74] 74]
- Experimental Results
Experimental Results
- Conclusions
Conclusions
Circuit & Environmental Models: #1
Combinational Circuit CIRCUIT MODEL: unbounded gate & wire delays (no timing assptns.) ENVIRONMENTAL MODEL: “generalized fundamental mode” (env. must wait until circuit stable) … used for “burst-mode” controllers, etc.
Our Focus:
Environment …
Goal: synthesize hazard-free circuit under this model
Circuit & Environmental Models: #2
Combinational Circuit CIRCUIT MODEL: isochronic fork assptn. (i.e. timing assptn.) ENVIRONMENTAL MODEL: “input/output mode” (no timing assptns.) … used for “QDI” controllers, etc.
Alternative Model:
Environment …
Combinational Hazards in 2-Level Circuits: Notation
Combinational Circuit F
(1)
input transition t1: start point: 0100 end point: 1101
1 1 1 1 AB CD 1 1 1 1
F:
(1)
A B C D
1 1 1 1 1 1 1 1 1 1
t1 t2
end point start point Function F: represented using Karnaugh Map (= truth table)
Function Hazards
- An input transition which is not monotonic in function F itself [Unger69]
- Intuition: occurs when user specifies glitchy behavior
– circuit implementations cannot be guaranteed glitch-free!
1 1 1 1 AB CD 1 1 1 1
1 1 1 1 1 1 1 1 1 1
F:
t4 t3 t4: function hazard-free t3: function hazard
… only consider function hazard-free input transitions [Unger 69]
Logic Hazards: Conditions for Hazard-Free Transitions
- Property of a given circuit implementation
- An input transition has a logic hazard if circuit impltn. may glitch
Case 1: 00 Transition
1 1 1 1 AB CD 1 1 1 1
1 1 1 1 1 1 1 1 1 1
t5
C D B D logic hazard-free
F:
A D C
…every AND-OR circuit is logic hazard-free for 00 transitions [Unger 69]
(1)
Logic Hazards (cont.)
Case 2: 11 Transition
C D B D A D
1 1 1 1 AB CD 1 1 1
F:
1 1 1 1 1 1 1 1
t1
(1)
A B C D
Example: input transition t1
hazard!
1 1 1 1 1
F:
1 1 1 1 1 1 1 1 1 1
t1
C D B D
hazard-free
C B
(1)
new gate
1
1 1
1 1 1 AB CD
C
(0) (0)
A D C
(1)
“required cube” Transition t1’s “required cube” must be covered
B A
(1)
Logic Hazards (cont.)
C D B D A D
1 1 1 1 AB CD 1 1 1
F:
1 1 1 1 1 1 1 1
t2
(1)
A B C D
Example: input transition t2
hazard!
1 1 1 1 1
F:
1 1 1 1 1 1 1 1 1 1
C D B D
hazard-free
(1)
Transition t2: each max 11 subtransition = “required cube” which must be covered new gate
1
1 1
1 1 1 AB CD
C A D C
(1)
Case 3: 10 (01) Transition
t2
(0)
partial transition
(0) (0)
“required cubes”
B modify gate A D B A
(1)
Logic Hazards (cont.)
C D B D
1 1 1 1 AB CD 1 1 1
F:
1 1 1 1 1 1 1 1
t2
(1)
A B C D
Example: input transition t2
hazard!
1 1 1 1 1
F:
1 1 1 1 1 1 1 1 1 1
D B D
hazard-free
1
1 1
1 1 1 AB CD
C A D C
Case 3: 10 (01) Transition (cont.)
t2
(0)
complete transition
(0)
A C B illegal intersection no illegal intersection
(1)
Transition t2: avoid “illegal intersections” of 10 (01) transitions
Hazard-Free Two-Level Logic Minimization Summary: “Hazard-Free Covering Rules”
In Karnaugh map for function F …: – each required cube: must be covered by some product – no illegal intersections: with any 10 (01) transition
Hazard-Free Minimization Algorithm [Nowick/Dill ICCAD92,TCAD95]
– produce a minimum-cost hazard-free AND-OR circuit
Existence of a Two-Level Solution: not always!
Example #1: Hazard-Free Two-Level Solution
F A C D B A A B D
(a) (b)
AB CD 1 1 1 1 1 1 1 1
1 1 1 1 1 1
F:
1
AB CD 1 1 1 1 1 1 1 1
1 1 1 1 1 1
F:
1
Example #2: No Hazard-Free 2-Level Solution Exists
AB CD 1 11 1 1 1 1 1
1 1 1 1 1 1
F:
1 1 1 1 1 1
(b)
AB CD 1 11 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
F:
(a)
[Nowick/Dill, ICCAD-92]
Example #2 (cont.)
D C A C B C D B C A C D A B C A C D A B C B C D C B C D A C A C D C A C B A D C B A
(a) (b)
However, several hazard-free multi-level implementations do exist!
Contribution
- Problem. Given a Boolean function F and specified set
- f input transitions T:
Does any multi-level hazard-free implementation exist?
- Assumptions. Consider only networks of simple combinational gates:
AND, OR, INV, NAND, NOR General Solution: 2 new algorithms, always find a solution if one exists.
1. Basic Recursive Method 2. Iterative Method
Key Contribution: show that, if some hazard-free multi-level implementation exists, then there is always a hazard-free 3-level implementation: – 3-Level NAND – OR-AND-OR
Outline
- Background:
Background: Hazard-Free 2-Level Logic
- Overview of Multi
Overview of Multi-
- Level Method
Level Method
– Hazard-Free Decomposition – Algorithm + Examples – Standard 3-Level Circuit Structures – Canonicity
- Related Work:
Related Work: Bredeson Bredeson [ [’ ’74] 74]
- Experimental Results
Experimental Results
- Conclusions
Conclusions
Basic Overview of Approach: Use Recursive “Hazard-Free Decomposition”
f f1 f2 f4 f1 f2 f4 f f f3 f2 f3 f f1 f2 f4 f3 f3 f f1 f2 f4 f3 f3 f2 f21 f22 f21 f22
First Hazard-Free Decomposition: Disjunction General disjunctive decomposition:
F :
2
F :
1
AB CD 1 11 1 1 1 1 1 AB CD 1 11 1 1 1 1 1 AB CD 1 11 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
(a) (b) (c)
F:
“Required cubes” are divided among the new subfunctions
First Hazard-Free Decomposition: Disjunction (cont.) Maximal disjunctive decomposition: a special case
F :
1
AB AB CD 1 11 1 1 1 1 1 AB CD 1 11 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
(a) (b) (d) (c)
F:
Each new subfunction gets exactly one (distinct) “required cube”
F :
2
CD 1 11 1 1 1 1 1
1 1
F :
3
AB CD 1 11 1 1 1 1 1
1 1 1 1
Second Hazard-Free Decomposition: Inversion
Swap OFF-set and required cubes
F:
AB CD 1 1 1 1 1 1 1 1
1 1 1 1 1
AB CD 1 1 1 1 1 1 1 1
1 1
F:
Basic Summary of Approach: alternate disjunction + inversion
f f f1 f2 f4 f2 f f1 f2 f4 f3 f3 f f1 f2 f4 f3 f3 f f1 f2 f4 f3 f3 f2 f21 f22 f21 f22
hazard-free impltns. (single-product) max disjunctive decomposition NO SOLUTION max disjunctive decomposition inversion inversion hazard-free impltns. (single-product)
First Complete Example: Finding a Hazard-Free Multi-Level Implementation
1 1 1 1 1 1 1 1 1 1 1 1 1 1
AB CD 1 1 1 1 1 1 1 1
F:
AB CD 1 1 1 1 1 1 1 1
F:
Given Boolean Function + Specified Transitions
Level-0: Maximal Disjunctive Decomposition
AB CD 1 11 1 1 1 1 1 AB CD 1 11 1 1 1 1 1
F : F :
2 1
1 1 1 1
AB CD 1 11 1 1 1 1 1
F :
3
AB CD 1 11 1 1 1 1 1
F :
4
1 1 1 1
1 1 1 1 1 1 1
AB CD 1 1 1 1 1 1 1 1
F:
3
Level-0: Maximal Disjunctive Decomposition (cont.)
F1 F2 F3 F F4
Level-0: Maximal Disjunctive Decomposition (cont.)
AB CD 1 11 1 1 1 1 1 AB CD 1 11 1 1 1 1 1
F : F :
2 1
1 1 1 1
AB CD 1 11 1 1 1 1 1
F :
3
AB CD 1 11 1 1 1 1 1
F :
4
1 1 1 1
1 1 1 1 1 1 1
AB CD 1 1 1 1 1 1 1 1
F:
3
NO SOLUTION!
Level-0: Maximal Disjunctive Decomposition (cont.)
B C D A F1 F2 F3 F F4 A B C
Level-1: Inversion
AB CD 1 1 1 1 1 1 1 1
F :
4
1 1 1 1 1
AB CD 1 1 1 1 1 1 1 1
F :
4
1 1
Level-1: Inversion (cont.)
F4
B C D A F1 F2 F3 F A B C
Level-1: Maximal Disjunctive Decomposition
F :
(a) (b) (c) (d) (e) AB CD 1 11 1 1 1 1 1
F :
4
AB CD 1 11 1 1 1 1 1
F :
41
AB CD 1 11 1 1 1 1 1
F :
42
AB CD 1 11 1 1 1 1 1
43
1 1 1 1 1 1 1 1 1 1
AB CD 1 11 1 1 1 1 1
F :
44
1 1
Level-1: Maximal Disjunctive Decomposition (cont.)
F4 F1 F2 F3 F F4 C D B A B D A F44 F43 F42 F41
F :
(a) (b) (c) (d) (e) AB CD 1 11 1 1 1 1 1
F :
4
AB CD 1 11 1 1 1 1 1
F :
41
AB CD 1 11 1 1 1 1 1
F :
42
AB CD 1 11 1 1 1 1 1
43
1 1 1 1 1 1 1 1 1 1
AB CD 1 11 1 1 1 1 1
F :
44
1 1
NO SOLUTION
Level-1: Maximal Disjunctive Decomposition (cont.)
Level-1: Maximal Disjunctive Decomposition (cont.)
F4 F1 F2 F3 F F4 D B C D B A B D A A C A F41 F42 F44 F43
Level-2: Inversion
AB CD 1 1 1 1 1 1 1 1
F :
43
1 1
AB CD 1 1 1 1 1 1 1 1
1 1
43
F :
AB CD 1 1 1 1 1 1 1 1
F :
44
1 1
AB CD 1 1 1 1 1 1 1 1
1 1
44
F :
Level-2: Inversion (cont.)
F4 F1 F2 F3 F F4 D B C D B A B D A A C A F41 F42 F44 F43
Final Hazard-Free Multi-Level Implementation
F4 F1 F2 F3 F F4 D B C D B A B D A A C A F41 F42 A F44 F43 C A C
Deriving a 3-Level NAND Implementation: First Step
C C A D B A A C D A B B D A C A D B A C D A B C C A A C A B D A
Deriving a 3-Level NAND Implementation: Final Step
C C A D B A A B D A A C A C C D A B C A B D A
(b) (a) (c)
D B A C A C D A B B D A A C D B A C A C D A B
standard form
Deriving a 3-Level OR-AND-OR Implementation
D B A C C C D A B A A C A B D A C C D A B A B D A C A D B A
standard form
Second Example: No Hazard-Free Multi-Level Solution
AB C 1
1 1 1 1
AB C 1
1 1 1 1
F:
1 11 1 1 11 1 AB C 1 11 1 1
1 1
1
F: F:
One of the subfunctions: after max disjunctive decomposition
Second Example: No Multi-Level Solution (cont.)
no (single-product) hazard-free implementation
11
F :
1
F:
C 1 11 1
1 1
AB 1
1 1
C 1 11 1
1 1
AB 1 AB C 1 1 1 1 1
1 1
11
F : One of the subfunctions: after max disjunctive decomposition after inversion after inversion
Conclusion: no hazard-free multi-level solution exists!
Other Contributions Correctness of Method:
– Soundness: only produces hazard-free implementations – Completeness: if any hazard-free multi-level solution exists, method will always produce a solution
Canonicity:
– variant of algorithm: identifies unique “representative” solution
Iterative Algorithm: (…see paper)
– Observation: after 3 recursive levels, sub-problems repeat can terminate recursion – Propose 3-level iterative algorithm
Summary Given: a Boolean function F + specified set of transitions T. If (F,T) has any hazard-free multi-level solution, then it always will have a hazard-free 3-level implementation:
- 3-Level NAND
- OR-AND-OR
The proposed iterative method will always find such a solution… if one exists.
Outline
- Background:
Background: Hazard-Free 2-Level Logic
- Overview of Multi
Overview of Multi-
- Level Method
Level Method
– Hazard-Free Decomposition – Algorithm + Examples – Standard 3-Level Circuit Structures – Canonicity
- Related Work:
Related Work: Bredeson Bredeson [ [’ ’74] 74]
- Experimental Results
Experimental Results
- Conclusions
Conclusions
Related Work: Bredeson [‘74] First known approach to tackle the problem:
– uses recursive algorithm: alternates disjunction + inversion
Limitations:
– does not identify that solutions are always 3-level – does not address canonicity – highly-restricted formulation:
- tight restrictions on allowed input transitions
- limited notion of hazard-free decomposition
- cannot handle incompletely-specified functions
Experimental Results
Prototype CAD Tool:
– Reads in Berkeley PLA format + input transition list – Produces hazard-free multi-level implementation
- - or indicates if no solution exists
Exists? Solution Subfunctns Total # Inversions Total # per Level Max Inverters Depth RecursnCPU Time (ms) Inputs # Function Name
z6 z5 z3 z4 z2 z1 nowick_dill simple_ex
3
2 0.99 2.23 0.18 2 2 1 1 2 1 0.68 1.42 2.28 0.59 0.11 0.36 1 1 3 4 2 2 2 3 14 10 2 3 1 3 7 11 4 8 12 19 8 3 4 No Yes Yes Yes No Yes Yes No Yes 4 4 4 4 4 4 4 4 bredeson
Conclusions
- General Constructive Method:
– given function F and set of input transitions T, determine if any hazard-free multi-level solution exists – based on “hazard-free decomposition”: alternate disjunction + inversion
- Key Observation:
– if any solution exists, then so does a 3-level solution – target two forms: (a) 3-level NAND, (b) OR-AND-OR
- Potential Practical Benefits: