The covering procedure The covering procedure The covering

  • Slides: 59
Download presentation
The covering procedure

The covering procedure

The covering procedure

The covering procedure

The covering procedure • Remove rows with essential PI’s and any columns with x’s

The covering procedure • Remove rows with essential PI’s and any columns with x’s in those rows

The covering procedure • Remove rows that are covered by other rows • Remove

The covering procedure • Remove rows that are covered by other rows • Remove columns that cover other columns • Why?

The covering procedure • Remove rows that are covered by other rows • Remove

The covering procedure • Remove rows that are covered by other rows • Remove columns that cover other columns

The covering procedure • Rows PI’s – Covering row takes care of more minterms

The covering procedure • Rows PI’s – Covering row takes care of more minterms – Minterms included in a smaller (covered) row are also included in the bigger (covering) one – Can discard the small ones and use only the covering row; minterm coverage is preserved • Columns min/max terms – Whenever a min/max term corresponding to a covered (smaller) column is included by some PI, the min/max term corresponding to the covering (bigger) column also gets included – Covering column can be dropped – Reduces # of PI’s that include this min/max term

Cyclic PI charts • Cyclic PI charts have no essential PI’s – Cannot be

Cyclic PI charts • Cyclic PI charts have no essential PI’s – Cannot be reduced by rules 1 and 2 • Example of cyclic PI chart of 3 variables BC A 00 01 11 10 0 1 1 1 1

Cyclic PI chart chosen PI • Cyclic PI charts have no essential PI’s –

Cyclic PI chart chosen PI • Cyclic PI charts have no essential PI’s – Select the row with max number of x’s (randomly if more than one); PI 1 in this example

Cyclic PI chart After removing PI 1, apply rules 1 and 2. Remove covered

Cyclic PI chart After removing PI 1, apply rules 1 and 2. Remove covered PI 2 and PI 6 PI 3 and PI 5 cover the resulting chart. Minimal cover: PI 1, PI 3, PI 5

Cyclic PI charts • Example of cyclic PI chart of 4 variables 1 1

Cyclic PI charts • Example of cyclic PI chart of 4 variables 1 1 1 • Q: if PI’s covering 4 minterms are allowed, can one create a cyclic PI chart where no PIs are essential?

Cyclic PI charts • A: yes 1 1 1 • Q: what about a

Cyclic PI charts • A: yes 1 1 1 • Q: what about a 4 variable K-map and groups of 8 ones? – In general n variable functions with a K-map and PIs covering 2 n-1 min/max terms – can there be a cyclic PI chart?

Incompletely specified functions • When some of the minterms can be either 0 or

Incompletely specified functions • When some of the minterms can be either 0 or 1, we can denote them by ‘d’ (don’t care) • When simplifying, we use ‘d’s to generate PIs, but do not include them in the PI chart

Incompletely specified functions

Incompletely specified functions

Incompletely specified functions

Incompletely specified functions

Multiple simultaneous outputs

Multiple simultaneous outputs

Multiple simultaneous outputs

Multiple simultaneous outputs

Multiple simultaneous outputs • In general, # of lists ≤ n+1 (n = #

Multiple simultaneous outputs • In general, # of lists ≤ n+1 (n = # variables)

‘d’s are not in the charts, but are used for PIs • List 1,

‘d’s are not in the charts, but are used for PIs • List 1, group 1 • Group 2, list 2 • Group 3, list 3

Multiple simultaneous outputs Why select PI 3 over PI 11? • PIs from higher-numbered

Multiple simultaneous outputs Why select PI 3 over PI 11? • PIs from higher-numbered list are likely to cover more PIs (not always true: don’t cares)

Multiple simultaneous outputs

Multiple simultaneous outputs

Hazards and K-maps • Static hazard or glitch: unwanted output transition when inputs change

Hazards and K-maps • Static hazard or glitch: unwanted output transition when inputs change and the output should have remained the same • For simplicity consider only a single input changes at a time • Different gates have different propagation delays

Hazards and K-maps t 1 t 3 t 2 t 1 = t 2

Hazards and K-maps t 1 t 3 t 2 t 1 = t 2 = t 3

Hazards and K-maps t 1 t 3 t 2 t 1 > t 2

Hazards and K-maps t 1 t 3 t 2 t 1 > t 2 > t 3

Hazards and K-maps • A hazard exists when a changing input requires corresponding minterms/maxterms

Hazards and K-maps • A hazard exists when a changing input requires corresponding minterms/maxterms to be covered by different product/sum terms • Remove hazards by bridging the gaps on the K -map:

Hazards and K-maps • Hazard-free circuit: • Cover each pair of adjacent minterms by

Hazards and K-maps • Hazard-free circuit: • Cover each pair of adjacent minterms by a different product term • Deliberate redundancy like this makes circuits impossible to test completely • Static 1 hazards: in SOP circuits: 1 0 1 • Static 0 hazards: in POS circuits: 0 1 0

Hazards and K-maps • Static 0 hazards in POS circuits: • Identify the hazard(s):

Hazards and K-maps • Static 0 hazards in POS circuits: • Identify the hazard(s): how many? Where?

Hazards and K-maps • Hazards identified and fixed? What is missing?

Hazards and K-maps • Hazards identified and fixed? What is missing?

Hazards and K-maps • Dynamic hazards: – When input change requires output change –

Hazards and K-maps • Dynamic hazards: – When input change requires output change – Occur when output makes more than one transition • Always result from static hazards elsewhere – Eliminating the static hazards eliminates the dynamic ones as well

Prime number detector: F = (1, 2, 3, 5, 7, 11, 13) 00 N

Prime number detector: F = (1, 2, 3, 5, 7, 11, 13) 00 N 3 N 2 01 11 10 00 01 x x x N 1 N 0 11 x 10 x x x 0001 0011 00 -1 0101 0111 01 -1 0 --1

Karnaugh maps: 2, 3, and 4 variable

Karnaugh maps: 2, 3, and 4 variable

Example: F = X’YZ’ + XZ + Y’Z

Example: F = X’YZ’ + XZ + Y’Z

Another example: Prime implicants (maximal clusters)

Another example: Prime implicants (maximal clusters)

Prime number detector

Prime number detector

Prime number detector

Prime number detector

Another example: distinguished cell: covered by only one prime implicant essential prime implicant: contains

Another example: distinguished cell: covered by only one prime implicant essential prime implicant: contains distinguished cell

Another example: primes, distinguished cells, essentials

Another example: primes, distinguished cells, essentials

Selecting essentials leaves an uncovered cell cover with simpler implicant: W’Z

Selecting essentials leaves an uncovered cell cover with simpler implicant: W’Z

Eclipsing (in reduced map) P eclipses Q if P covers all of Q’s ones

Eclipsing (in reduced map) P eclipses Q if P covers all of Q’s ones if P is no more expensive (same or fewer literals), then choose P over Q

Alas, no essential prime implicants branching: choose a cell and examine all implicants that

Alas, no essential prime implicants branching: choose a cell and examine all implicants that cover that cell

Don’t cares. .

Don’t cares. .

Multiple functions can use separate Karnaugh maps

Multiple functions can use separate Karnaugh maps

. . . or can manage to find common terms. . .

. . . or can manage to find common terms. . .

For more than 6 input variables, Karnaugh maps are difficult to manipulate Need computer

For more than 6 input variables, Karnaugh maps are difficult to manipulate Need computer program. . Quine-Mc. Cluskey algorithm

typedef unsigned short WORD; /* assume 16 -bit registers */ struct cube { WORD

typedef unsigned short WORD; /* assume 16 -bit registers */ struct cube { WORD t; /* marks uncomplemented variables */ WORD f; /* marks complemented variables */ } typedef struct cube CUBE; CUBE P 1, x, y, z;

Example in four variables Equation: w x’ y z’ + w’ x’ y z’

Example in four variables Equation: w x’ y z’ + w’ x’ y z’ = x’ y z’ Karnaugh map: wx 00 01 yz 00 01 11 10 1 Cubes (last four bits): 1010 0010 = 1000 ==> single one in common position ==> combinable 0101 1101 = 1000 1010 & 0010 ==> w now missing, new cube corresponds to z’ y z’ 0101 & 1101 = 0101

Start with minterms (0 -cubes) Combine when possible to form (1 -cubes). . Example:

Start with minterms (0 -cubes) Combine when possible to form (1 -cubes). . Example: w’xy’z + w’xyz + wxyz = xz yz 00 01 11 10 wx 00 01 11 1 1 Cubes: 0101 1010 1101 0010 0111 1000 1111 0000 10 1101 0010 0101 1101 = 1000 1010 0010 = 1000 0111 1000 1111 0000 0101 & 1101 = 0101 1010 & 0010 = 0010

Start with minterms (0 -cubes) Combine when possible to form (1 -cubes). . Example:

Start with minterms (0 -cubes) Combine when possible to form (1 -cubes). . Example: w’xy’z + w’xyz + wxyz = xz yz 00 01 11 10 wx 00 01 11 1 1 Cubes: 0101 1010 10 1101 0010 0101 1101 = 1000 1010 0010 = 1000 0111 1000 0101 & 1101 = 0101 1010 & 0010 = 0010 1111 0000 0101 1010 1101 0010 0111 1000 1111 0000 wx 00 yz 00 01 11 1 1 10

Start with minterms (0 -cubes) Combine when possible to form (1 -cubes). . Example:

Start with minterms (0 -cubes) Combine when possible to form (1 -cubes). . Example: w’xy’z + w’xyz + wxyz = xz yz 00 01 11 10 wx 00 01 11 1 1 Cubes: 0101 1010 10 1101 0010 0111 1000 1111 0000 0101 1010 wx 00 1101 0010 yz 00 01 11 10 0111 0101 1000 1111 0000 1101 0000 0111 0000 01 11 1 1 10

Continue to form 2 -cubes Example: w’xy’z + w’xyz + wxyz = xz yz

Continue to form 2 -cubes Example: w’xy’z + w’xyz + wxyz = xz yz 00 01 11 10 wx 00 01 11 1 1 Cubes: 0101 0010 10 0101 1000 0101 0010 0101 1000 1101 0000 0111 0000 0101 0000 1101 0000 0111 0000

Quine-Mc. Cluskey Algorithm: Read in all minterms (0 -cubes); mark all 0 -cubes “uncovered”;

Quine-Mc. Cluskey Algorithm: Read in all minterms (0 -cubes); mark all 0 -cubes “uncovered”; for (m = 0; m < Nvar; m++) for (j = 0; j < Ncubes[m]; j++) for (k = j + 1; k < Ncubes[m]; k++) if (combinable(cube[m][j], cube[m][k])) { mark cube[m][j] and cube[m][k] “covered” temp = combined cube; if (temp not already at level m + 1) { add temp to level m + 1; mark temp “uncovered” } }

Manual algorithm: F = (2, 5, 7, 9, 13, 15) (variables WXYZ) uncovered terms

Manual algorithm: F = (2, 5, 7, 9, 13, 15) (variables WXYZ) uncovered terms 0010 0101 1001 01 -1 -101 1 -01 0111 1101 -111 11 -1 1111 -1 -1

Manual algorithm: F = (2, 5, 7, 9, 13, 15) (variables WXYZ) WY’Z 0010

Manual algorithm: F = (2, 5, 7, 9, 13, 15) (variables WXYZ) WY’Z 0010 0101 x 1001 x 0111 x 1101 x 01 -1 x -101 x 1 -01 -1 -1 XZ -111 x 11 -1 x WX 01 11 10 01 1 1111 x 00 00 YZ W’X’YZ’ 10 1

Prime Implicants 0010 1 -01 -1 -1 Minterms 2 5 7 9 13 15

Prime Implicants 0010 1 -01 -1 -1 Minterms 2 5 7 9 13 15 x x x x distinguished minterms (cells): 2, 5, 7, 9, 15 essential prime implicants: 0010, 1 -01, -1 -1 (all) F = 0010 + 1 -01 + -1 -1 = W’X’YZ’ + WY’Z + XZ

Not all prime implicants are necessarily essential distinguished cells essential implicants remainder Minimal form:

Not all prime implicants are necessarily essential distinguished cells essential implicants remainder Minimal form: A + E + C C eclipses B and D

Not all prime implicants are necessarily essential distinguished cells essential implicants remainder Minimal form:

Not all prime implicants are necessarily essential distinguished cells essential implicants remainder Minimal form: A + E + C C eclipses B and D

Not all prime implicants are necessarily essential distinguished cells essential implicants remainder Minimal form:

Not all prime implicants are necessarily essential distinguished cells essential implicants remainder Minimal form: A + E + C C eclipses B and D

Static hazard: X = Y = 1, Z falls from 1 to 0 XZ’

Static hazard: X = Y = 1, Z falls from 1 to 0 XZ’ Z’ Z’ XZ’ Reconstruct Karnaugh map: F = XZ’ + YZ = XYZ’ + XY’Z’ + XYZ + X’YZ Consensus term

Solution: add consensus term XZ’ Z’ Z’ XZ’ Z’ Consensus term

Solution: add consensus term XZ’ Z’ Z’ XZ’ Z’ Consensus term