310 likes | 456 Views
2- Level Minimization. Classic Problem in Switching Theory Tabulation Method Transformed to “Set Covering Problem” “Set Covering Problem” is Intractable n -input Function Can Have 3 n /n Prime Implicants n -input Function Can Have 2 n Minterms
E N D
2-Level Minimization • Classic Problem in Switching Theory • Tabulation Method Transformed to “Set Covering Problem” • “Set Covering Problem” is Intractable • n-input Function Can Have 3n/n Prime Implicants • n-input Function Can Have 2n Minterms • Exponentially Complex Algorithms for Exact Solutions NOTE: Sometimes the Covering Problem is Easy to Solve (when no cyclic tables result)
Heuristic – Branch and Bound Quine-McCluskey Methodis Tabulation Method Using a Branch and Bound Algorithm with Heuristic in Branch Operation for Solution of the Cyclic Cover Branch and Bound Approaches BRANCH STEP • Reduce, HALT if not Cyclic Cover • Heuristically Choose a PI • Solve Cyclic Cover in Two Ways • Assume Chosen PI is in the Final Cover Set • Assume Chosen PI is not in the Final Cover Set • Select Between 1) and 2) Depending on Minimal Cost BOUND STEP • If Current Solution is Better Than Previous, Return from this Level of Recursion (Note: Initially Set to Entire Set of PIs in Table) • Go to Branching Step
Branch and Bound Diagram Cyclic Cover 1 Initial CC1 Soln is All PIs Heuristically Choose a PI – Reduce to CC2 Cyclic Cover 2 Initial CC2 Soln is All PIs Heuristically Choose a PI – Reduce to CC3 Cyclic Cover 3 Initial CC3 Soln is All PIs Heuristically Choose a PI1 – Reduce to CC3 Heuristically Choose a PI2 – Reduce to CC3 CC3 Solution 1 CC3 Solution 2 Soln 2 Better CC3 Entire Set and Fully Reduced Soln 1 Fully Reduced Equal to All PIs in CC3 – No Bounding
Choosing Candidate PIs • Choose PI With Fewest Literals • That is, One that Covers the most Minterms • Select One that Covers a Minterm Covered by Very Few Other Minterms • Note if Minterm Covered by Single PI, it is EPI • This Technique Chooses One that is “Almost” an EPI • Independent Set Heuristic
Independent Set Heuristic • Find Maximum Set of Independent Rows in Cover Matrix • Partition Matrix as Shown 0 • I is Sub-Matrix of Independent RowsI = {I1, I2, I3, ...} A C • Choose PI in I that Covers Most Rows in A • Reduce Matrix Using New EPI Selection and Dominance • If Matrix is 00 Solution is Found Else Go To 1)
Exact Method – Petrick’s Method • When Cyclic Cover Table is Found use Covering Clauses in POS Form • Each Product Corresponds to Minterm • Transform the POS to SOP • Product Terms Represent Selected Primes • Minimum Cover Identified by Product with Fewest Literals • Finds ALL Solutions to the Cyclic Cover
Petrick’s Method Example Write Clauses as a POS Expression: We Solve this Equation
Solving the Satisfying Clause • It is Easy to Find a Satisfying Argument for a SOP Expression • Classic “Petrick’s Method” Transforms POS to SOP
Multi-Output Functions • Minimizing Each Output Separately Usually Results in Poor Minimization • Term Sharing Occurs Only by Chance • Can Use “Multi-Output Prime Implicants” • More Complex Version of Tabulation Method • Can Use “Characteristic Function for Multi-Output Functions” • Utilizes Principles in Multiple-Valued Logic
Product Functions • Consider x f1 y f2 z • Minterms in f1•f2 are Minterms for Both f1 and f2 • f1•f2 is a Product Function
Multi-Output Prime Implicant DEFINITION A MOPI for a set of switching functions f1, f2, …, fm is a product of literals which is either: • A Prime Implicant of One of the functions, fi, for i=1,2,…,m • A Prime Implicant of one of the Product Functions, fi•fj•…•fk where i,j,k=1,2,…,m and ij k THEOREM The set of all MOPIs is sufficient for the determination of at least one multi-output minimized SOP.
Tagged Product Terms • Could Generate Using K-map or Tabulation Method for Each Output Separately AND all Product Functions • too lengthy • instead use Tagged Product Terms • Tagged Product Terms have Two Parts: • kernel – a product term of literals (as normal) • tag – appended entity to kernel that indicates which function outputs it applies to
Generating MOPIs • 0-0f1- and 0-1-f2DO NOT combine • No Common Tag Elements • They WOULD Combine Under Cube Merging for Single Output Function • Only Place Check Mark on Terms with COMMON Tag Outputs • EXAMPLE 000f1- and 001f1f2 Results in 000f1- Being Checked ONLY
MOPI Cover Table • F is an essential row for f1, only • Column dominance, remove m5 under f2
MOPI Cover Table • Will use Petrick’s method applied to multiple outputs
Exact Solution (Cont.) • Minimum Product Term: {A,B,G} • f1ON =All MOPIs that havef1in Tag • f2ON = All MOPIs that havef2in Tag
Hazard-Free2-Level Minimization • Tabular Method Can Be Applied To Realize 2-Level Designs That Eliminate Certain Hazards • Considers Delay of Logic Circuits Example:
Hazard Types • Static Hazard – Output value the same after input change 0-Hazard 1-Hazard • Dynamic Hazard – Output value different after input change
Analysis of Networks with Static Hazards • SOP Expression with 1-Hazard • POS Expression with 0-Hazard
Elimination of Hazard • Prime Implicant added to eliminate static 1-hazard
Other Hazard Classifications for More than One Input Change • Logic Hazard – Hazard caused by the particular implementation. Can be eliminated by adding Pis • Function Hazard – Presence of hazard due to the function realized by the output. Present for transitions in which more than one input changes. Cannot be eliminated
Tabular Approach to Hazard-Free Design • Uses Minimum number of prime implicants • A Network will contain no static or dynamic hazards if its 1-sets satisfy the following two conditions • For each pair of adjacent input states that both produce a 1 output, there is at least one 1-set that includes both input states of the pair • There are no 1-sets that contain exactly one pair of complementary literals
Tabular Approach Steps • Find prime implicants using tabular approach • Create prime implicant table, however, columns will be any essential single minterm & all pairs of adjacent states (these have been found in the second table of 1) • See Example Handout
Problems to consider • Finding prime implicants using tabular approach • Hazard, what is it? • Use Covering to solve non-hazard realizations • Petrick Function and its uses • How to program Petrick Function? • How to program Backtracking? • How to program Branch–and-Bound? • How can we generalize the concept of Petrick Function?