Quine McCluskys algoritm

Relevanta dokument
Digitalteknik F2. Digitalteknik F2 bild 1

Definition av kombinatorisk logik Olika sätt att representera kombinatorisk logik Minimering av logiska uttryck

Digitalteknik syntes Arne Linde 2012

SMD033 Digitalteknik. Digitalteknik F1 bild 1

Digitalteknik F4. NOR-labben. Digitalteknik F1b bild 1

IE1205 Digital Design: F4 : Karnaugh-diagrammet, två- och fler-nivå minimering

2.1 Disjunktiv och konjunktiv normalform

IE1204 Digital Design

Mintermer. SP-form med tre mintermer. William Sandqvist

F5 Introduktion till digitalteknik

Tenta i Digitalteknik

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

F5 Introduktion till digitalteknik

IE1205 Digital Design: F9: Synkrona tillståndsautomater

Digital- och datorteknik

Tentamen i IE1204/5 Digital Design onsdagen den 5/

IE1204 Digital Design

IE1205 Digital Design: F10: Synkrona tillståndsautomater del 2

Sekvensnät Som Du kommer ihåg

Tentamen i IE1204/5 Digital Design måndagen den 15/

Repetition delay-element

Digital Design IE1204

IE1204/IE1205 Digital Design

Digital- och datorteknik

Grundläggande Datorteknik Digital- och datorteknik

Tenta i Digitalteknik

Tenta i Digitalteknik

Försättsblad till skriftlig tentamen vid Linköpings universitet

Digital Design IE1204

Asynkrona sekvensmaskiner

Tentamen i Digitalteknik, EITF65

Lösningförslag till Exempel på tentamensfrågor Digitalteknik I.

Tentamen med lösningar för IE1204/5 Digital Design Torsdag 15/

Maurice Karnaugh. Karnaugh-diagrammet gör det enkelt att minimera Boolska uttryck! William Sandqvist

Lösningsförslag till tentamen i Digitalteknik, TSEA22

IE1205 Digital Design: F13: Asynkrona Sekvensnät (Del 2)

Styrteknik: Grundläggande logiska funktioner D2:1

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

Tentamen i Digital Design

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Digitalteknik F9. Automater Minneselement. Digitalteknik F9 bild 1

Tenta i Digitalteknik

Tentamen i Digitalteknik TSEA22

Digital Design IE1204

Digital- och datorteknik

Sekvensnät i VHDL del 2

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Laboration D181. ELEKTRONIK Digitalteknik. Kombinatoriska kretsar, HCMOS v 2.1

Tenta i Digitalteknik

Grundläggande digitalteknik

Tenta i Digitalteknik

Institutionen för systemteknik, ISY, LiTH. Tentamen i. Tid: kl

TSEA22 Digitalteknik 2019!

Lösningsföslag till Exempel på tentamensuppgifter i Digitalteknik I

D2 och E3. EDA321 Digitalteknik-syntes. Fredag den 13 januari 2012, fm i M-salarna

Moment 2 - Digital elektronik. Föreläsning 1 Binära tal och logiska grindar

GPIO - General Purpose Input Output

Tentamen IE1204 Digital Design Måndag 15/

Kombinationskretsar. Föreläsning 4 Digitalteknik Mattias Krysander Institutionen för systemteknik

ÅBO AKADEMI LOGIKSTYRNING. Hannu Toivonen Jari Böling. Augusti Biskopsgatan 8 FIN Åbo Finland

Tentamen med lösningar i IE1204/5 Digital Design Torsdag 29/

Tentamen i EDA320 Digitalteknik för D2

IE1205 Digital Design. F2 : Logiska Grindar och Kretsar, Boolesk Algebra. Fredrik Jonsson KTH/ICT/ES

1 Reducerat faktorförsök rf f

Digital elektronik CL0090

Switch. En switch har två lägen. Sluten/Till (Closed/On) Öppen/Från (Open/Off) Sluten. Öppen. Symbol. William Sandqvist

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Tenta i Digitalteknik

Tentamen i IE1204/5 Digital Design Torsdag 29/

LKT325/LMA521: Faktorförsök

Tentamen med lösningar i IE1204/5 Digital Design Måndag 27/

IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare

LMA201/LMA521: Faktorförsök

Simulering med ModelSim En kort introduktion

Laboration i digitalteknik Introduktion till digitalteknik

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

Tentamen med lösningar i IE Digital Design Fredag 15/

Diskreta Linjära System och Skiftregister

DIGITALTEKNIK. Laboration D164. Logiska funktioner med mikroprocessor Kombinatoriska funktioner med PIC16F84 Sekvensfunktioner med PIC16F84

Laboration D151. Kombinatoriska kretsar, HCMOS. Namn: Datum: Epostadr: Kurs:

-c wc. Pre- Next state Out- Vi ser att tillstånden är redan sorterade i grupper med olika utsignaler,

Tentamen i Digitalteknik, EIT020

Digital Design IE1204

Tentamen i Digitalteknik, EIT020

Digital- och datorteknik

D0013E Introduktion till Digitalteknik

IE1204/5 Digital Design typtenta

Booleska variabler och översättning mellan programuttryck och booleska variabler

Studiehandledning. Digitalkonstruktion 5p

Omtentamen med lösningar i IE1204/5 Digital Design Fredag 10/

Tentamen i Digitalteknik, TSEA22

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Digital- och datorteknik

Elektronik grundkurs Laboration 6: Logikkretsar

Sanningstabell. En logisk funktion kan också beskrivas genom en sanningstabell (truth table) 1 står för sann (true) 0 står för falsk (false)

TSIU05 Digitalteknik. LAB1 Kombinatorik LAB2 Sekvensnät LAB3 System

DIGITALTEKNIK I. Laboration DE1. Kombinatoriska nät och kretsar

Digital- och datorteknik

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

EDA Digital och Datorteknik 2009/2010

Transkript:

Quine McCluskys algoritm Tabellmetod för att systematiskt finna alla primimplikatorer ƒ(a,b,c,d) = m(4,5,6,8,9,0,3) + d(0,7,5) Moment : Finn alla primimplikatorer Steg: Fyll i alla mintermer i kolumn. Bilda grupper med mintermer där varje term har lika många ettor. Column I 0000 Implikatortabell 000 000 00 00 00 00 0 0 Digitalteknik F3 bild

Quine McCluskys algoritm Tabellmetod för att systematiskt finna alla primimplikatorer ƒ(a,b,c,d) = m(4,5,6,8,9,0,3) + d(0,7,5) Moment : Finn alla primimplikatorer Steg: Fyll i alla mintermer i kolumn. Bilda grupper med mintermer där varje term har lika många ettor. Steg 2: Tillämpa (x+x ) = Jämför implikatorer i rad Q N ettor med implikatorer med N+ ettor. Skillnad i en position innebär att (x+x ) är uppfyllt för en variabel. Ta bort variabeln och placera den nya implikatorn i nästa kolumn. Ex: 0000 och 000 ger 0-00 0000 och 000 ger -000 Implikatorer som kan kombineras markeras med. De som inte kan kombineras markeras med *. Dessa är primimplikatorer. Implikatortabell Column I Column II 0000 0-00 -000 000 000 00-0-0 00 00-00 0-0 00 00 0- -0 0 0-0 -0 - - Digitalteknik F3 bild 2

Quine McCluskys algoritm Tabellmetod för att systematiskt finna alla primimplikatorer ƒ(a,b,c,d) = m(4,5,6,8,9,0,3) + d(0,7,5) Moment : Finn alla primimplikatorer Steg: Fyll i alla mintermer i kolumn. Bilda grupper med mintermer där varje term har lika många ettor. Steg 2: Tillämpa (x+x ) = Jämför implikatorer i rad Q N ettor med implikatorer med N+ ettor. Skillnad i en position innebär att (x+x ) är uppfyllt för en variabel. Ta bort variabeln och placera den nya implikatorn i nästa kolumn. Ex: 0000 och 000 ger 0-00 0000 och 000 ger -000 Implikatorer som kan kombineras markeras med. De som inte kan kombineras markeras med *. Dessa är primimplikatorer. Steg 3: Upprepa tills inga fler kombinationer kan göras Implikatortabell Column I Column II Column III 0000 0-00 * 0-- * -000 * 000 -- * 000 00-0-0 00 00- * 00 0-0 * 00 00 0- -0 0 0-0 -0 * - - Digitalteknik F3 bild 3

Quine McCluskys algoritm AB CD 00 0 0 00 X 0 0 0 0 0 X X 0 0 0 Primimplikatorer: 0-00 = A' C' D' 00- = A B' C' -0 = A C' D -- = B D -000 = B' C' D' 0-0 = A B' D' 0-- = A' B Digitalteknik F3 bild 4

Quine McCluskys algoritm AB CD 00 0 0 00 X 0 0 0 0 0 X X 0 0 0 Primimplikatorer: 0-00 = A' C' D' 00- = A B' C' -0 = A C' D -- = B D -000 = B' C' D' 0-0 = A B' D' 0-- = A' B Moment 2: Identifiera den minsta mängd primimplikatorer som behövs för att täcka samtliga mintermer Kom ihåg att samtliga mintermer måste vara täckta av åtminstone en primimplikator. Vi använder en tabellmetod primimplikatortabellen Digitalteknik F3 bild 5

Primimplikatortabellen rader = primimplikatorer kolonner = mintermer X markerar att en minterm täcks av en primimplikator Digitalteknik F3 bild 6

Primimplikatortabellen rader = primimplikatorer kolonner = mintermer X markerar att en minterm täcks av en primimplikator Om en kolonn har endast ett X så är motsvarande primimplikator väsentlig. Denna måste vara med i den minimerade funktionen. Digitalteknik F3 bild 7

Primimplikatortabellen Ta bort alla kolonner som täcks av väsentliga primimplikatorer Digitalteknik F3 bild 8

Primimplikatortabellen Stryk alla kolonner som täcks av väsentliga primimplikatorer Identifiera den minsta mängd rader som täcker resterande kolonner. (Kan innebära val mellan likvärdiga alternativ.) ƒ = A B' D' + A C' D + A' B Digitalteknik F3 bild 9

Iterativ konsensus Minimeringsmetod som utnyttjar dels konsensuslagen, dels täckningsteoremet i den Booleska algebran:. Generering av termer xy + x z = xy + x z + yz 2. Stykning av termer x + xy = x x + x = x 3. Val av primimplikatorer Metoden kan transformeras till tabellmetod lämplig för datorberäkning Digitalteknik F3 bild 0

Iterativ konsensus - exempel AB CD 00 0 0 00 0 0 0 0 0 0 0 0 0 Ofullständigt minimerad funktion: ƒ(abcd) = abd + bc d + bcd + b cd 2 3 4 5 (-2) abc 6 (-3) abc 0 7 (2-3) bd 8 (4-6) acd 9 (4-7) cd 0 (5-6) ab De kursiva termerna återstår efter strykning. De kan inte bilda ytterligare konsensustermer Digitalteknik F3 bild

Iterativ konsensus - exempel AB CD 00 0 0 00 0 0 0 0 0 0 0 0 0 Ofullständigt minimerad funktion: ƒ(abcd) = abd + bc d + bcd + b cd 2 3 4 5 (-2) abc 6 (-3) abc 0 7 (2-3) bd 8 (4-6) acd 9 (4-7) cd 0 (5-6) ab I detta fall är samtliga primimplikatorer väsentliga. Urval behöver ej göras. ƒ(abcd) = ab + bd + cd Digitalteknik F3 bild 2

Espressoalgoritmen Ett alternativ som minskar beräkningstiden. Nödvändigt för funktioner med många insignaler. n Övre gräns: 3 /n, där n är antalet insignaler. Att finna en minimal lösning är ett NP-komplett problem, dvs en process som är mycket beräkningskrävande och som inte kan uttryckas som en effektiv algoritm. (Samtliga lösningar måste genereras och testas...) Espresso: prioriterar beräkningshastighet framför att finna den minimala lösningen. genererar inte samtliga primimplikatorer (Quine-McCluskey moment ) väljer ut en delmängd primimplikatorer som täcker samtliga mintermer arbetssättet påminner om det manuella arbetet med Karnaughdiagram Digitalteknik F3 bild 3

Espressoalgoritmen. Implikatorer expanderas till maximal storlek Implikatorer som täcks av en expanderad implikator ingår inte i det fortsatta arbetet Resultatets kvalitet beror på ordninen för implikatorexpansionen Heuristiska metoder (försök-misstag) används för att bestämma ordningen Momentet kallas expansion 2. 3. 4. 5. Icke-redundant täckning (t ex en ofullständig delmängd är också en täckning) bryts ut från de expanderade primimplikatorerna Detta görs med en primimplikatortabell på samma sätt som QuineMcCluskymetoden Momentet kallas irredundant cover Lösningen är vanligen ganska bra men kan ibland förbättras Det kan existera en annan täckning med färre termer eller insignaler Minska primimplikatorerna till dess minsta storlek där de fortfarande täcker hela funktionen Momentet kallas reducering Upprepa sekvensen reducera expandera irredundant cover i syfte att finna alternativa primimplikatorer så länge den nya lösningen är en förbättring Ett antal optimeringar, t ex att identifiera och ta bort väsentliga primimplikatorer i ett tidigt skede, ingår också Digitalteknik F3 bild 4

Espressoalgoritmen ƒ(a,b,c,d) = m(4,5,6,8,9,0,3) + d(0,7,5) Espresso Indata Espresso Utdata.i 4.o.ilb a b c d.ob f.p 0 000 00 00 000 00 00 0 0000-0 - -.e -- # inputs -- # outputs -- input names -- output name -- number of product terms -- A'BC'D' -- A'BC'D -- A'BCD' -- AB'C'D' -- AB'C'D -- AB'CD' -- ABC'D -- A'B'C'D' don't care -- A'BCD don't care -- ABCD don't care -- end of list.i 4.o.ilb a b c d.ob f.p 3-0 0-0 0--.e ƒ = A C' D + A B' D' + A' B Digitalteknik F3 bild 5

Espressoalgoritmen: iteration över reducera - irredundant cover - expandera AB CD 00 0 0 AB CD 00 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 Första lösning genererad av steg och steg 2 i Espressoalgoritmen 4 primimplikatorer, icke-redundant lösning som inte är minimal! Resultat av reducering: Minska primimplikatorerna så att de fortfarande täcker funktionen Valet av minskningsordning är väsentligt Digitalteknik F3 bild 6

Espressoalgoritmen: iteration över reducera - irredundant cover - expandera AB CD 00 0 0 00 0 0 AB CD 00 0 0 00 0 0 0 0 0 0 0 0 0 0 Andra expansionen genererar en annan mängd primimplikatorer Icke-redundant täckning upptäcks av Espresso Endast tre primimplikatorer! Digitalteknik F3 bild 7

Tvånivåminimering - sammanfattning Syfte: tvånivåimplementering med minimalt antal grindar och ingångar på grindarna Erhålls med hjälp av räknereglerna i Boolesk algebra eller Booleska kuber och (x+x ) = eller Karnaughdiagram (upp till 6 insignaler) eller Quine-McCluskeys algoritm eller Iterativ konsensusalgoritmen eller Espressoalgoritmen Digitalteknik F3 bild 8

Implementationsdetaljer - Att representera en minterm i datorn Varje insignal kan vara 0, eller don t care, dvs tre alternativ En minterm kan beskrivas t ex: 00d d00 d0d d00 I datorns minne kan detta lagras i två 6-bitars ord: One-set: 000 000 000 000 Zero-set: 00 00 000 00 Det går att definiera operationer för att testa/utföra jämförelse, x+x =, x+xy =, konsensus etc för mintermer representerade på detta vis. Detta är en förutsättning för att kunna bearbeta Booleska funktioner med dator. Av effektivitetsskäl bör datorns maskininstruktioner användas... Digitalteknik F3 bild 9

term X + term X = term Princip: C: C2: C.t C.f C2.t C2.f Exempel: C: C2: 00 000 000 00 Beräkna bitvis xor: C.t xor C2.t C.f xor C2.f En etta i respektive delresultat? Om ja: Beräkna resulterande term Beräkna bitvis xor: 000 000 En etta i respektive delresultat? Om ja: Beräkna resulterande term C3: C.t and C2.t C.f and C2.f C3: 000 000 Om nej: term X + term X = term ej tillämpligt reducerad term Digitalteknik F3 bild 20

Täckning (x + xy = x)? Princip: C: C2: C.t C.f C2.t C2.f Exempel: C: C2: 00 000 0 000 Beräkna bitvis or: Beräkna bitvis or: C.t or C2.t C.f or C2.f = C2.t? = C2.f? 0 000 = C2.t = C2.f Båda svaren ja: C täcker C2 (implikatorn C2 är en delmängd av implikatorn C) Båda villkoren uppfyllda, dvs C2 är en delmängd av C Ett eller båda svaren nej: C täcker inte C2 Digitalteknik F3 bild 2

Konsensus (xy + x z = xy + x z + yz) Princip: C: C2: C.t C.f C2.t C2.f Exempel: C: C2: 00 0000 000 000 Beräkna: T: F: C.t or C2.t C.f or C2.f Beräkna: 00 000 D: T and F D: 000 Ingen etta - konsensus existerar ej En etta - konsensus existerar En etta - konsensus existerar Flera ettor - Konsensustermen = 0 Beräkna konsensusterm T: F: Beräkna konsensusterm: C3: T and not D F and not D C3: 000 0000 Digitalteknik F3 bild 22

Timing i kombinatoriska kretsar Timingen påverkar kretsarnas funktion: - reagerar utsignalen tillräckligt snabbt? - förekommer icke önskade variationer i utsignalen? Grafisk presentation tydliggör händelseförloppen Simulering kan användas för att studera en konstruktion i ett tidigt stadium Termer: grindfördröjning Den tid det tar för en ändring i insignal att ändra utsignalen i en grind. Specificeras som dels typvärde, dels maxvärde. Konstruktörer använder maxvärdet, optimister använder typvärdet! kretsfördröjning samma som d.o. för en hel krets stigtid tid för en utgång att växla från låg till hög nivå falltid tid för en utgång att växla från hög till låg nivå Digitalteknik F3 bild 23

Pulsskapande krets A' A = 0 3 grindfördröjningar D förblir under tre grindfördröjningar efter A:s växling från 0 till F är inte alltid 0! Digitalteknik F3 bild 24

Hasard/glitchar och hur man undviker dem Icke önskvärda växlingar av utsignalen Uppträder då olika signalvägar genom kretsen har olika fördröjning Förorsakar problem om efterföljande logik tar beslut medan utsignalen är instabil eller styr en asynkron ingång (som reagerar direkt på signalen i stället för att vänta på synk.). Vanliga lösningar: vänta tills signalerna är stabila (synkronisera med klocka) använd aldrig kretsar med asynkrona ingångar konstruera hasardfri logik I regel används de två första alternativen, men metoder för att konstruera hasardfri logik skall vara kända. Digitalteknik F3 bild 25

Hasardtyper 0 0 0 Statisk -hasard Statisk 0-hasard Insignalen skapar en nollpuls på utsignalen Förekommer i AND/OR- och NAND/NANDkretsar. Insignalen skapar en ettpuls på utsignalen Förekommer i OR/AND- och NOR/NORkretsar. 0 0 Dynamiska hasarder Insignalen skapar ett kortare eller längre pulståg på utsignalen. Förekommer i flernivåkretsar. 0 0 Digitalteknik F3 bild 26

Statisk -hasard A C A D A C A D 0 0 0 G G2 0 ABCD = 0 G G2 0 0 G3 G3 F 0 F ABCD = 00 (A är fortfarande 0) A AB 00 0 0 CD 00 0 0 0 0 0 C 0 0 0 0 0 B F = A' D + A C' D A C A D 0 0 G G3 F G2 ABCD = 00 (A är nu ) A AC A A D F Digitalteknik F3 bild 27

Att förebygga statisk hasard Generell strategi: lägg till redundanta primimplikatorer F = A' D + A C' blir A' D + A C' + C' D Detta tar bort -hasarden. 0-hasard då? Skriv om F i konjunktiv form: F = (A' + C')(A + D) AB CD 00 A 00 0 0 0 0 Hasard förekommer! Lägg till: (C' + D) 0 0 0 D Detta uttryck är ekvivalent med den hasardfria funktionen ovan. C 0 0 0 0 0 B Digitalteknik F3 bild 28