COE 561 Digital System Design & Synthesis Library Binding Dr. Muhammad Elrabaa Computer Engineering Department King Fahd University of Petroleum & Minerals.

Slides:



Advertisements
Similar presentations
Logic Gates.
Advertisements

Other Gate Types COE 202 Digital Logic Design Dr. Aiman El-Maleh
Technology Mapping. Perform the final gate selection from a particular library Two basic approaches 1. ruled based technique 2. graph covering technique.
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
Sequential Circuit Analysis & Design Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Dr. Aiman H. El-Maleh.
ECE 667 Synthesis and Verification of Digital Systems
COE 561 Digital System Design & Synthesis Architectural Synthesis Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum.
Technology Mapping.
Technology Mapping 2 Outline Goal Reading Tree Pattern Matching
EDA (CS286.5b) Day 2 Covering. Why covering now? Nice/simple cost model problem can be solved well (somewhat clever solution) general/powerful technique.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 2: January 23, 2008 Covering.
1 Technology Mapping as a Binate Covering Problem Slides adapted from A. Kuehlmann, UC Berkeley 2003.
Boolean Functions and their Representations
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 16: March 23, 2009 Covering.
Boolean Matching in Logic Synthesis. Equivalence of Functions Equivalence of two functions defined under l Negation of input variables l Permutation of.
Technology Mapping 1 Outline –What is Technology Mapping? –Rule-Based Mapping –Tree Pattern Matching Goal –Understand technology mapping –Understand mapping.
COE 561 Digital System Design & Synthesis Resource Sharing and Binding Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum.
ECE Synthesis & Verification - Lecture 4 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Circuits Allocation:
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
ECE Synthesis & Verification - Lecture 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
 2000 M. CiesielskiPTL Synthesis1 Synthesis for Pass Transistor Logic Maciej Ciesielski Dept. of Electrical & Computer Engineering University of Massachusetts,
ECE 667 Synthesis and Verification of Digital Systems
ICS 252 Introduction to Computer Design Multi-level Logic Optimization Fall 2006 Eli Bozorgzadeh Computer Science Department-UCI.
Technology Mapping Outline Goal What is Technology Mapping?
FPGA Technology Mapping. 2 Technology mapping:  Implements the optimized nodes of the Boolean network to the target device library.  For FPGA, library.
ECE Synthesis & Verification, Lecture 17 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Technology.
Overview Part 1 – Design Procedure 3-1 Design Procedure
Binary Logic and Gates COE 202 Digital Logic Design Dr. Aiman El-Maleh
1 VLSI CAD Flow: Logic Synthesis, Lecture 13 by Ajay Joshi (Slides by S. Devadas)
Combinatorial Algorithms Unate Covering Binate Covering Graph Coloring Maximum Clique.
Electrical and Computer Engineering Archana Rengaraj ABC Logic Synthesis basics ECE 667 Synthesis and Verification of Digital Systems Spring 2011.
Combinational Logic Design BIL- 223 Logic Circuit Design Ege University Department of Computer Engineering.
VLSI Backend CAD Konstantin Moiseev – Intel Corp. & Technion Shmuel Wimer – Bar Ilan Univ. & Technion.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 2: January 26, 2015 Covering Work preclass exercise.
Zvi Kohavi and Niraj K. Jha 1 Multi-level Logic Synthesis.
Logic Circuits Chapter 2. Overview  Many important functions computed with straight-line programs No loops nor branches Conveniently described with circuits.
05/04/06 1 Integrating Logic Synthesis, Tech mapping and Retiming Presented by Atchuthan Perinkulam Based on the above paper by A. Mishchenko et al, UCAL.
Shantanu Dutt ECE Dept. UIC
Important Components, Blocks and Methodologies. To remember 1.EXORS 2.Counters and Generalized Counters 3.State Machines (Moore, Mealy, Rabin-Scott) 4.Controllers.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
1 Technology Mapping Example: t t 1 = a + bc; t 2 = d + e; t 3 = ab + d; t 4 = t 1 t 2 + fg; t 5 = t 4 h + t 2 t 3 ; F = t 5 ’; This shows an unoptimized.
ICS 252 Introduction to Computer Design Lecture 12 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Computer Systems 1 Fundamentals of Computing Simplifying Boolean Expressions.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
Logic synthesis flow Technology independent mapping –Two level or multilevel optimization to optimize a coarse metric related to area/delay Technology.
Give qualifications of instructors: DAP
Static Timing Analysis
BITS Pilani Pilani Campus Data Structure and Algorithms Design Dr. Maheswari Karthikeyan Lecture1.
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 2: September 28, 2005 Covering.
Presented By Anna Fariha Roll : SN – 213 MS, 1 st Semester Session: Boolean Matching.
Mu.com.lec 9. Overview Gates, latches, memories and other logic components are used to design computer systems and their subsystems Good understanding.
CHAPTER 3 Simplification of Boolean Functions
Eng. Mai Z. Alyazji October, 2016
Finite state machine optimization
Finite state machine optimization
DIGITAL LOGIC CIRCUITS
Reconfigurable Computing
Universal gates.
King Fahd University of Petroleum and Minerals
Sungho Kang Yonsei University
ECE 667 Synthesis and Verification of Digital Systems
Technology Mapping I based on tree covering
VLSI CAD Flow: Logic Synthesis, Placement and Routing Lecture 5
Fast Min-Register Retiming Through Binary Max-Flow
Presentation transcript:

COE 561 Digital System Design & Synthesis Library Binding Dr. Muhammad Elrabaa Computer Engineering Department King Fahd University of Petroleum & Minerals Dr. Muhammad Elrabaa Computer Engineering Department King Fahd University of Petroleum & Minerals

2 OutlineOutline n Modeling and problem analysis n Rule-based systems for library binding n Heuristic Algorithms for library binding n Decomposition and partitioning n Structural matching/covering n Tree-based matching n Tree-based covering n Boolean matching/covering n Modeling and problem analysis n Rule-based systems for library binding n Heuristic Algorithms for library binding n Decomposition and partitioning n Structural matching/covering n Tree-based matching n Tree-based covering n Boolean matching/covering

3 Library Binding n Given an unbound logic network and a set of library cells Transform into an interconnection of instances of library cells. Optimize area, (under delay constraints.) Optimize delay, (under area constraints.) Optimize power, (under delay constraints.) n Called also technology mapping Method used for re-designing circuits in different technologies. n Given an unbound logic network and a set of library cells Transform into an interconnection of instances of library cells. Optimize area, (under delay constraints.) Optimize delay, (under area constraints.) Optimize power, (under delay constraints.) n Called also technology mapping Method used for re-designing circuits in different technologies.

4 Library Models n A cell library is a set of primitive gates including combinational, sequential, and interface elements. n Each cell is characterized by Its function. Input/output terminals. Area, delay, capacitive load. n Combinational elements Single-output functions: e.g. AND, OR, NAND, NOR, INV, XOR, XNOR, AOI. Compound cells: e.g. adders, encoders. n Sequential elements Flip-flops, registers, counters. n Miscellaneous Tri-state drivers. Schmitt triggers. n A cell library is a set of primitive gates including combinational, sequential, and interface elements. n Each cell is characterized by Its function. Input/output terminals. Area, delay, capacitive load. n Combinational elements Single-output functions: e.g. AND, OR, NAND, NOR, INV, XOR, XNOR, AOI. Compound cells: e.g. adders, encoders. n Sequential elements Flip-flops, registers, counters. n Miscellaneous Tri-state drivers. Schmitt triggers.

5 Major Approaches n Rule-based systems Mimic designer activity. Handle all types of cells including multiple-output, sequential and interface elements. Requires creation and maintenance of set or rules. Slower execution. n Heuristic algorithms Restricted to single-output combinational cells. Implementation of registers, input/output circuits and drivers straightforward. n Most tools use a combination of both. n Rule-based systems Mimic designer activity. Handle all types of cells including multiple-output, sequential and interface elements. Requires creation and maintenance of set or rules. Slower execution. n Heuristic algorithms Restricted to single-output combinational cells. Implementation of registers, input/output circuits and drivers straightforward. n Most tools use a combination of both.

6 Rule-Based Library Binding n Binding by stepwise transformations. n Data-base Set of patterns associated with best implementation. n Rules Select subnetwork to be mapped. Handle high-fanout problems, buffering, etc. n Binding by stepwise transformations. n Data-base Set of patterns associated with best implementation. n Rules Select subnetwork to be mapped. Handle high-fanout problems, buffering, etc.

7 Rule-Based Library Binding n Execution of rules follows a priority scheme. n Search for a sequence of transformations. n A greedy search is a sequence of rules each decreasing cost. n Search space Breadth (options at each step). Depth (look-ahead). n Meta-rules determine dynamically breadth and depth. n Advantages Applicable to all kinds of libraries. n Disadvantages Large rule data-base Completeness issue. Data-base updates. n Execution of rules follows a priority scheme. n Search for a sequence of transformations. n A greedy search is a sequence of rules each decreasing cost. n Search space Breadth (options at each step). Depth (look-ahead). n Meta-rules determine dynamically breadth and depth. n Advantages Applicable to all kinds of libraries. n Disadvantages Large rule data-base Completeness issue. Data-base updates.

8 Algorithms for Library Binding n Mainly for single-output combinational cells. n Fast and efficient Quality comparable to rule-based systems. n Library description/update is simple Each cell modeled by its function or equivalent pattern. n Involves two steps Matching A cell matches a subnetwork if their terminal behavior is the same. Input-variable assignment problem. Covering A cover of an unbound network is a partition into subnetworks which can be replaced by library cells. n Mainly for single-output combinational cells. n Fast and efficient Quality comparable to rule-based systems. n Library description/update is simple Each cell modeled by its function or equivalent pattern. n Involves two steps Matching A cell matches a subnetwork if their terminal behavior is the same. Input-variable assignment problem. Covering A cover of an unbound network is a partition into subnetworks which can be replaced by library cells.

9 MatchingMatching n Given two single-output combinational functions f(x) and g(x) with same number of support variables. n f matches g if there exists a permutation P such that f(x) = g(P x). n Example f = ab + c ; g = p + qr. By assigning {q, r, p} to {a, b, c}, f is equal to g. f and g have a Boolean match. By representing functions f and g by their AND-OR decomposition graphs, f and g have a structural match since their graphs are isomorphic. n Given two single-output combinational functions f(x) and g(x) with same number of support variables. n f matches g if there exists a permutation P such that f(x) = g(P x). n Example f = ab + c ; g = p + qr. By assigning {q, r, p} to {a, b, c}, f is equal to g. f and g have a Boolean match. By representing functions f and g by their AND-OR decomposition graphs, f and g have a structural match since their graphs are isomorphic.

10 AssumptionsAssumptions n Network granularity is fine. Decomposition into base functions: 2-input NAND, NOR, INV. n Trivial binding Replacement of each vertex by base cell. n Network granularity is fine. Decomposition into base functions: 2-input NAND, NOR, INV. n Trivial binding Replacement of each vertex by base cell.

11 Example …

12 … Example n Vertex covering Covering v1: (m1 +m4 +m5). Covering v2: (m2 +m4). Covering v3: (m3 +m5). n Input compatibility Match m2 requires m1: (m2’ +m1). Match m3 requires m1: (m3’ +m1). n Overall binate clause (m1 +m4 +m5)(m2 +m4)(m3 +m5)(m2’ +m1)(m3’ +m1) = 1 n Optimum solution: m1’m2’m3’m4m5 Cost=10 n Vertex covering Covering v1: (m1 +m4 +m5). Covering v2: (m2 +m4). Covering v3: (m3 +m5). n Input compatibility Match m2 requires m1: (m2’ +m1). Match m3 requires m1: (m3’ +m1). n Overall binate clause (m1 +m4 +m5)(m2 +m4)(m3 +m5)(m2’ +m1)(m3’ +m1) = 1 n Optimum solution: m1’m2’m3’m4m5 Cost=10

13 Heuristic Algorithms n To render covering problem tractable, network is decomposed and partitioned. n Decomposition Cast network and library in standard form. Decompose into base functions. Example: NAND2 and INV. Guarantees that each vertex is covered by at least one match. n Partitioning Break network into cones called subject graphs. Reduce to many multi-input single-output subnetworks. n Covering Cover each subnetwork by library cells. n To render covering problem tractable, network is decomposed and partitioned. n Decomposition Cast network and library in standard form. Decompose into base functions. Example: NAND2 and INV. Guarantees that each vertex is covered by at least one match. n Partitioning Break network into cones called subject graphs. Reduce to many multi-input single-output subnetworks. n Covering Cover each subnetwork by library cells.

14 PartitioningPartitioning n Rationale for partitioning Size of each covering problem is smaller. Covering problem becomes tractable. n Used to isolate combinational portions from sequential elements and I/Os. n Partitioning of combinational circuits Mark vertices with multiple fanout. Edges whose tails are marked vertices define partition boundary. n Rationale for partitioning Size of each covering problem is smaller. Covering problem becomes tractable. n Used to isolate combinational portions from sequential elements and I/Os. n Partitioning of combinational circuits Mark vertices with multiple fanout. Edges whose tails are marked vertices define partition boundary.

15 DecompositionDecomposition

16 PartitioningPartitioning

17 CoveringCovering

18 MatchingMatching n Structural matching Model functions by patterns. Example: trees, dags (fanout only at the inputs). Both subject graph and library cells cast into comparable form (subject and pattern graphs). Rely on pattern matching techniques. Some library cells may have more than one pattern graph. n Boolean matching Use Boolean models. Solve tautology problem to check equivalence of two functions. More powerful. n Structural matching Model functions by patterns. Example: trees, dags (fanout only at the inputs). Both subject graph and library cells cast into comparable form (subject and pattern graphs). Rely on pattern matching techniques. Some library cells may have more than one pattern graph. n Boolean matching Use Boolean models. Solve tautology problem to check equivalence of two functions. More powerful.

19 Boolean versus Structural Matching n Example f = xy +x’y’ +y’z g = xy +x’y’ +xz n Function equality is a tautology Boolean match. n Patterns are different No structural match. n Example f = xy +x’y’ +y’z g = xy +x’y’ +xz n Function equality is a tautology Boolean match. n Patterns are different No structural match.

20 Structural Matching and Covering n Expression patterns Represented by dags using a decomposition of 2-inp NAND and INV. n Identify pattern dags in network Matching by sub-graph isomorphism. n Simplification Use tree patterns. Most library cells can be represented as trees. Tree matching & tree covering is linear. n Expression patterns Represented by dags using a decomposition of 2-inp NAND and INV. n Identify pattern dags in network Matching by sub-graph isomorphism. n Simplification Use tree patterns. Most library cells can be represented as trees. Tree matching & tree covering is linear. F = a b c d F = a b F = a  b

21 Tree-Based Matching … n Network Partitioned and decomposed NOR2 (or NAND2) + INV. Generic base functions. Each partition called Subject tree. n Library Represented by trees. Possibly more than one tree per cell. Pattern recognition Simple binary tree match. Aho-Corasick automaton. n Network Partitioned and decomposed NOR2 (or NAND2) + INV. Generic base functions. Each partition called Subject tree. n Library Represented by trees. Possibly more than one tree per cell. Pattern recognition Simple binary tree match. Aho-Corasick automaton.

22 Simple Library

23 … Tree-Based Matching

24 Tree-Based Covering n Dynamic programming Visit subject tree bottom-up. n At each vertex attempt to match Locally rooted subtree. Check all library cells for a match. n Optimum solution for the subtree. n Dynamic programming Visit subject tree bottom-up. n At each vertex attempt to match Locally rooted subtree. Check all library cells for a match. n Optimum solution for the subtree.

25 ExampleExample

26 Minimum Area Cover Example n Minimum-area cover. n Area costs INV:2; NAND2:3; AND2:4; AOI21:6. n Best choice AOI21 fed by a NAND2 gate. n Minimum-area cover. n Area costs INV:2; NAND2:3; AND2:4; AOI21:6. n Best choice AOI21 fed by a NAND2 gate.

27 Minimum Delay Cover n Dynamic programming approach. n Cost related to gate delay. n Delay modeling Constant gate delay: straightforward. Load-dependent delay Load fanout unknown. n Minimum delay cover with constant delays The cell tree is isomorphic to a subtree with leaves L. The vertex is labeled with the cell cost plus the maximum of the labels of L. n Dynamic programming approach. n Cost related to gate delay. n Delay modeling Constant gate delay: straightforward. Load-dependent delay Load fanout unknown. n Minimum delay cover with constant delays The cell tree is isomorphic to a subtree with leaves L. The vertex is labeled with the cell cost plus the maximum of the labels of L.

28 Minimum Delay Cover Example n Inputs data-ready times are 0 except for t d = 6 n Constant delays INV:2; NAND2:4; AND2:5; AOI21:10. n Compute data-ready times bottom-up t x = 4; t y = 2; t z = 10; t w = 14. n Best choice AND2, two NAND2 and an INV gate. n Inputs data-ready times are 0 except for t d = 6 n Constant delays INV:2; NAND2:4; AND2:5; AOI21:10. n Compute data-ready times bottom-up t x = 4; t y = 2; t z = 10; t w = 14. n Best choice AND2, two NAND2 and an INV gate.

29 Minimum Delay Cover Load-Dependent Delays n Model For most libraries, input capacitances are a finite small set. Label each vertex with all possible load values. n Dynamic programming approach Compute an array of solutions for each vertex corresponding to different loads. For each match, arrival time is computed for each load value. For each input to a matching cell the best match for the given load is selected. n Optimum solution, when all possible loads are considered. n Model For most libraries, input capacitances are a finite small set. Label each vertex with all possible load values. n Dynamic programming approach Compute an array of solutions for each vertex corresponding to different loads. For each match, arrival time is computed for each load value. For each input to a matching cell the best match for the given load is selected. n Optimum solution, when all possible loads are considered.

30 ExampleExample n Inputs data-ready times are 0 except for t d = 6 n Load-dependent delays INV:1+l; NAND2:3+l; AND2:4+l; AOI21:9+l; SINV:1+0.5l. n Loads INV:1; NAND2:1; AND2:1; AOI21:1; SINV:2. n Assume output load is 1 Same solution as before. n Assume output load is 5 Solution uses SINV cell. n Inputs data-ready times are 0 except for t d = 6 n Load-dependent delays INV:1+l; NAND2:3+l; AND2:4+l; AOI21:9+l; SINV:1+0.5l. n Loads INV:1; NAND2:1; AND2:1; AOI21:1; SINV:2. n Assume output load is 1 Same solution as before. n Assume output load is 5 Solution uses SINV cell.

31 Boolean Matching/Covering n Decompose network into base functions. n When considering vertex v i Construct clusters by local elimination. Several functions associated with v i. n Limit size and depth of clusters. n Decompose network into base functions. n When considering vertex v i Construct clusters by local elimination. Several functions associated with v i. n Limit size and depth of clusters. j = x y;x = e + z; y = a + c;z = c’ + b; f j,1 = x y; f j,2 = x (a + c); f j,3 = (e + z) y; f j,4 = (e + z) (a + c) f j,5 = (e + c’ + b) y; f j,6 = (e + c’ + b) (a + c);

32 Boolean Matching: P-Equivalence n Cluster function f(x): sub-network behavior. n Pattern function g(y): cell behavior. n P-equivalence Exists a permutation operator P, such that f(x) = g(P x) is a tautology? n Approaches Tautology check over all input permutations. Multi-rooted pattern ROBDD capturing all permutations. n Cluster function f(x): sub-network behavior. n Pattern function g(y): cell behavior. n P-equivalence Exists a permutation operator P, such that f(x) = g(P x) is a tautology? n Approaches Tautology check over all input permutations. Multi-rooted pattern ROBDD capturing all permutations.

33 Signatures and Filters … n Drastically reduce the number of permutations to be considered. n Capture some properties of Boolean functions. n If signatures do not match, there is no match. n Used as filters to reduce computation. n Signatures Unateness. Symmetries. n Any pin assignment must associate unate (binate) variables in f(x) with unate (binate) variables in g(y). n Variables or groups of variables that are interchangeable in f(x) must be interchangeable in g(y). n Drastically reduce the number of permutations to be considered. n Capture some properties of Boolean functions. n If signatures do not match, there is no match. n Used as filters to reduce computation. n Signatures Unateness. Symmetries. n Any pin assignment must associate unate (binate) variables in f(x) with unate (binate) variables in g(y). n Variables or groups of variables that are interchangeable in f(x) must be interchangeable in g(y).

34 … Signatures and Filters … n Cluster and pattern functions must have the same number of unate and binate variables to match. n If there are b binate variables, un upper bound on number of variable permutations is b! (n-b)! (instead of n!) n Example g = s1 s2 a + s1 s2’ b + s1’ s3 c + s1’s3’ d. n=7 variables; 4 unate and 3 binate. Only 3! 4! = 144 variable orders and corresponding OBDDs. need to be considered in worst case. Compare this with overall number of permutations 7!=5040 n Cluster and pattern functions must have the same number of unate and binate variables to match. n If there are b binate variables, un upper bound on number of variable permutations is b! (n-b)! (instead of n!) n Example g = s1 s2 a + s1 s2’ b + s1’ s3 c + s1’s3’ d. n=7 variables; 4 unate and 3 binate. Only 3! 4! = 144 variable orders and corresponding OBDDs. need to be considered in worst case. Compare this with overall number of permutations 7!=5040

35 … Signatures and Filters … n A symmetry set is a set of variables that are pairwise interchangable. n A symmetry class is an ensemble of symmetry sets with the same cardinality. n A symmetry class C i has symmetry sets with cardinality i. n A necessary condition for two functions to match is having symmetry classes of the same cardinality for each i. n Example F = x1 x2 x3 + x4 x5 + x6 x7 Symmetry sets: (x1, x2, x3), (x4, x5), (x6, x7) C 2 = {(x4, x5), (x6, x7)}; |C 2 |=2 C 3 = {(x1, x2, x3)}; |C 3 |=1 n A symmetry set is a set of variables that are pairwise interchangable. n A symmetry class is an ensemble of symmetry sets with the same cardinality. n A symmetry class C i has symmetry sets with cardinality i. n A necessary condition for two functions to match is having symmetry classes of the same cardinality for each i. n Example F = x1 x2 x3 + x4 x5 + x6 x7 Symmetry sets: (x1, x2, x3), (x4, x5), (x6, x7) C 2 = {(x4, x5), (x6, x7)}; |C 2 |=2 C 3 = {(x1, x2, x3)}; |C 3 |=1

36 … Signatures and Filters n Symmetry classes can be used to determine non-redundant variable orders All variables in a given symmetry set are equivalent. Number of permutations required is  i=1 to n (|C i |!). n Example F = x1 x2 x3 + x4 x5 + x6 x7 Number of permutations = 2! = 2 variable orders. (x1, x2, x3, x4, x5, x6, x7) (x1, x2, x3, x6, x7, x4, x5) n Cluster function: f = abc. Symmetries: {(a, b, c)} – 3 unate. n Pattern functions g1 = a+b+c Symmetries: {(a, b, c)} – 3 unate. g2 = ab+c Symmetries: {(a, b) (c)} -- 3 unate. g3 = abc +a’b’c’ Symmetries: {(a, b, c)} -- 3 binate. n Symmetry classes can be used to determine non-redundant variable orders All variables in a given symmetry set are equivalent. Number of permutations required is  i=1 to n (|C i |!). n Example F = x1 x2 x3 + x4 x5 + x6 x7 Number of permutations = 2! = 2 variable orders. (x1, x2, x3, x4, x5, x6, x7) (x1, x2, x3, x6, x7, x4, x5) n Cluster function: f = abc. Symmetries: {(a, b, c)} – 3 unate. n Pattern functions g1 = a+b+c Symmetries: {(a, b, c)} – 3 unate. g2 = ab+c Symmetries: {(a, b) (c)} -- 3 unate. g3 = abc +a’b’c’ Symmetries: {(a, b, c)} -- 3 binate.