You are on page 1of 8

Kombinacne obvody

Sposoby funkcii: zapisu kombinacnych logickych

konguracia). Pouzitim logickych operatorov sa to zapise takto: y =b c dc d ba b (1)

Pravdivostna tabulka Logicky vyraz (sucin/sucet) Karnaughova mapa Schematicke zapojenie Z popisu LS prostrednictvom mapy je mozne ziskat dva typy algebraickych tvarov: (i) iredudantna normalna disjunktivna forma (INDF), ktora popisuje vsetky jednotkove body (najdeme suciny ktore popisuju konguraciu jednotiek a scitame ich) a (ii) iredudantna normalna konjunktivna forma (INKF), ktora popisuje maximalny pocet konguracii nul a vyrobime ju tak, ze kazdu konguraciu popiseme zakladnym suctom a tieto sucty vynasobime. Priklad 1: Napisat INDF podla Karnaughovej mapy:

a to je hladana INDF. Este taka poznamka, ze konguracie by mali byt co najmensie (optimalizacia - mensi pocet hradiel). Priklad 2: Napisat INKF podla Karnaughovej mapy:

Obr. 2: Priklad 2 Toto je analogia k hladaniu a popisovaniu jednotkovych konguracii v predchadzajucom priklade taka, ze sa budeme zaoberat popisom nul. Riesime otazku, ze KEDY BUDE NA VYSTUPE NULA? Postupujeme tak, ze pri popise sa za kazdu cenu snazime obchadzat nulove konguracie. Nula teda bude na vystupe ak: ( a alebo b alebo d bude jedna) A ZAROVEN ( b nula alebo c nula alebo d jedna ) A ZAROVEN ( a nula alebo d nula alebo c nula) A ZAROVEN (d nula alebo a nula alebo b jedna). Logicky to spiseme ako abd (2) a to je to co sme chceli. Tu je potrebne si uvedomit, ze hodnota vstupnej premennej je v ramci oblasti (riadku/stlpca) svojej hrubej ciary jednotkova. Ak teda obchadzame nulove konguracie, tak tie, co sa nachadzaju pod/vedla hrubej ciary niektorej premennej obideme (vylucime) tym, ze premennu NEGUJEME - je to akysi opacny postup ako pri popise jednotiek... K tymto formam to je asi tak vsetko a na zaver spomeniem uz len slova kapitana Picarda ohladom optimalizacie konguracii: v pripade, ak je mapa funkcie zlozita, pre malo 1 y = (a b d) bcd acd

Obr. 1: Priklad 1 Tie hrube ciary s oznacenim vstupnych premennych a, b, c, d hovoria, ze v akej oblasti mapy su jednotlive vstupne premenne jednotkove (v ostatnych oblastiach su nulove). Otazka k tomu co chceme dosiahnut: KEDY (za akych hodnot vstupnych premennych a, b, c, d) BUDE NA VYSTUPE NAVRHOVANEJ KOMBINACNEJ SIETE LOG. 1? Z obrazku sa da zistit, ze na vystupe bude log. 1 ak budu ( b A c A d ) nulove (prva konguracia) ALEBO ( b A c A d ) budu jednotkove (druha konguracia) ALEBO (a bude nula a b jednotka ) (tretia

skuseneho navrhara je obtiazne vybrat optimalny subor konguracii. Vybratie optimalneho suboru konguracii umozni tzv. Quine - Mc Cluskey-ho algoritmus. Realizacia pomocou blokov AND/OR/INV Priama realizacia z logickeho vyrazu. V pripade potreby pouzitia len jedneho typu logickych obvodov prepisat logicku funkciu na tvar len s jednym typom logickeho operatora prostrednictvom DeMorganovho pravidla: a b = a+b a+b = a b Realizacia pomocou blokov NAND/NOR Udajne velmi vyhodna realizacia logickych obvodov s pouzitim clenov NAND a NOR pomocou ktorych je mozne realizovat vsetky mozne logicke operacie. Aby sme to mohli pouzit, musime vediet prepisat logicku funkciu na nejaky iny tvar (necakane na tvar podla Sheffera alebo Pierca) a algebry pouzivajuce len operacie NAND a NOR sa volaju inverzne algebry. Sheffer Na realizaciu vyuziva bloky NAND.

- v KM popisuje logicke 0 (log. fcia f v konjunktivnej forme = sucin suctov) - sucty do zatvoriek, premenne invertovat, operatory nahradit Shefferovymi a na cely vyraz aplikovat Shefferov operator - ak niektory sucet neni sucet ale samostatna premenna, pri prepise do 2.NSF ju neinvertujeme! Pierce Realizacia vedie na bloky NOR. 1. Normalny Pierce: yP i1 f = = (x11 x12 ...) ... (... xmn ) (x11 x12 ...) ... (... xmn )

- v KM popisuje logicke 0 (INKF) - sucty do zatvoriek a operatory nahradit Piercovymi - samostatnu premennu pri prepise invertovat! 2. Normalny Pierce: yP i2 f = = [(x11 x12 ...) ... (... xmn )] (x11 x12 ...) ... (... xmn )

1. Normalny Sheffer: ySh1 f = = (x11 x12 ...) ... (... xmn ) (x11 x12 ...) ... (... xmn )

- v KM popisuje logicke 1 (INDF) - suciny do zatvoriek, premenne invertovat, operatory nahradit Piercovymi a na cely vyraz aplikovat Piercov operator - samostatnu premennu pri prepise neinvertovat! Prikad 3: Prepisat funkciu y = b c d do 1.NSF, 2.NSF, 1.NPF a 2.NPF. 1.NSF: y = b (c d) 2.NSF: y = b c d 1.NPF: y = b c d 2.NPF: y = [(b c) d] A uz ked mame taketo pekne popisy, mozme ich prekreslit schematicky (to sem snad nemusim kreslit) za pouzitia blokov NAND resp. NOR a blikat ledkou. Este k tej osamotenej premennej: je zrejme, ze takato premenna sa sprava voci ostatnym inverzne. Tj. v pripade prepisu, kde 2

- vychadza z popisu logickych jednotiek (vid vyssie mapa)(log. fcia f v disjunktivnej forme = sucet sucinov) - suciny do zatvoriek a vsetky operatory nahradit Shefferovymi - v pripade, ze niektory sucin neni sucin ale osamotena premenna, musime ju pri prepise do 1.NSF invertovat! 2. Normalny Sheffer: ySh2 f = = [(x11 x12 ...) ... (... xmn )] (x11 x12 ...) ... (... xmn )

sa premenne invertuju (2.NSF+2.NPF) sa tato neinvertuje. A zasa tam, kde sa ostatne premenne pri prepise neinvertuju (1.NSF+1.NPF) je treba tuto osamotenu invertit.

siete sa tam na chvilu objavi ina (nechcena) logicka uroven.

Dalsie realizacie
Vseliake dalsie styri moznosti realizacie kombinacnych sieti: - multiplexor / demultiplexor - EPROM, EEPROM, .. pamate... - programovatelne logicke obvody - tranzistory (najpouzivanejsie) Obr. 3: Staticky hazard v jednotke Dynamicky hazard nastava vtedy, ak dva signaly, ktore maju byt rovnake na chvilu nie su. Stane sa to vtedy, ked sa signal siri z vstupu na vystup roznymi cestami s roznym oneskorenim (a v konecnom dosledku to generuje zafrce na vystupe).

Druhy integrovanych obvodov


Toto len pre zaujimavost: - TTL (Transistortransistor logic). Varianty: L, LS, ALS, H, S, AS, - IIL (Integrated Injection logic) - ECL (Emmiter-Coupled logic) - CMOS (Complementary metaloxide semiconductor)

Obr. 4: Dynamicky hazard (vystup) Priklad obvodu s prislusnou Karnaughovou mapou s hazardom je na dalsom obrazku.

Hazardy v kombinacnych systemoch


Vsetky tieto problemy vyplyvaju z nedokonalosti realnych obvodov, ktore vykazuju urcite oneskorenie medzi zmenou hodnoty na vstupe a prejavenim sa tejto zmeny na vystupe (oneskorenie). Hazardne spravanie sa systemu je take, ked ma na vystupe hodnotu, ktora tam nema co robit. Tento jav sa vola hazard a pozname tri skupiny: (i) staticky hazard v jednotke (na vystupe sa objavi log. nula aj ked tam byt nema), (ii) staticky hazard v nule (analogicky k hazardu v jednotke) a (iii) dynamicky hazard (nezelany zakmit vystupu pri prechode z jednej urovne do druhej). Staticky hazard je stav taky, ze vystup kombinacnej siete je v urcitej logickej urovni (0 alebo 1) a zmeni sa jej vstup, ktory vystupnu hodnotu neovplyvni, ale vplyvom nedokonalosti prvkov dojde k chvilkovej zmene urovne na vystupe. Tj. ze na vystupe mala byt nula (alebo jedna), ale vplyvom zmeny vstupu 3

(a) Mapa

(b) Obvod

Obr. 5: Hazard Ak kazdy log. clen vykazuje oneskorenie z vstupu na vystup o jednu casovu jednotku, tak napr. pri zmene hodnoty vstupu b sa zmena prejavi v bode x1 o jednu casovu jednotku neskor, ale v bode x2 o dve. Vystup y bude teda pocas jednej casovej jednotky v stave nezodpovedajucom hodnotam vstupnych signalov co znamena hazardne spra-

vanie sa log. siete (lepsie je to vidiet ked sa nakreslia casove priebehy jednotlivych signalov v zavislosti na case). Hazardny stav mozeme osetrit bud pridanim oneskorovacieho clena do vetvy, ktora vykazuje mensie oneskorenie, alebo obvod realizujeme podla tzv. bezhazardnej disjunktivnej (konjunktivnej) formy, ktoru dostaneme upravou konguracii v K. mape tak, ze jednotlive konguracie vzajomne prepojime (pridame sice nadbytocnu funkciu ale odstranime tym hazard):

Realizacia automatu: Moore (priklad) Toto je Moore-ov automat:

Obr. 7: Moore xt predstavuje vstupny vektor, y t vystupny. Blok riesi zmeny stavov a podmienky, kedy k nim dochadza. Blok generuje vystupny vektor yt a blok predstavuje oneskorenie. Riesenie sekvencneho systemu zacina denovanim nejakeho zadania. Napr. Vyrobit automat, ktory bude na svojom vystupe detekovat ci presiel dlhy alebo kratky vyrobok (vid obrazok):

Obr. 6: Bezhazardna forma v K. mape

Sekvencne obvody
Vystup sekvencneho obvodu na rozdiel od kombinacneho nie je jednoznacne urceny stavom na vstupe, ale zavisi aj od aktualneho vnutorneho stavu systemu. Konecny automat denujeme ako usporiadanu paticu M = {X, S, Y, , } pricom X je neprazdna mnozina vstupnych stavov, S je neprazdna mnozina vnutorych stavov, Y neprazdna mnozina vystupnych stavov, je prechodova funkcia automatu a vystupna funkcia. Pozname dva typy automatov (i) Moore-ov a (ii) Mealy-ho. Rozdiel spociva v zavislosti vystupnej funkcie na vstupnom stave. Obr. 8: Priklad Vyrobok prichadza sprava a senzory A a B nam davaju informaciu, ze pod nimi nieco je (log. 1) alebo neni (log. 0), pricom kratky vyrobok sa medzi ne zmesti tak, ze su oba 0,0 a dlhy vyrobok pri prechode zakryje oba senzory naraz (1,1). Spravanie najskor vyjadrime pomocou orientovaneho grafu, v ktorom popiseme jednotlive zmeny stavov na zaklade zmien vstupneho vektora xt = {a, b} a prislusny vystupny vektor yt pre kazdy stav (kedze sa jedna o Moore-ov automat, vystup bude zavisiet len na vnutornom stave). Reprezentaciu, ci sa jedna o dlhy, kratky alebo ziadny vyrobok mozme vymysliet hociako - v tomto pripade povieme, ze to bude podla tabulky takto: y0 0 0 1 y1 0 1 0 Vyrobok ziadny dlhy kratky

Mooreov automat Vystupny stav je Y (t) = (S(t)), tj. vystup v case t zavisi iba na vnutornom stave.

Mealyho automat Vystup je dany ako Y (t) = (X(t), S(t)), cize vystup zavisi na vnutornom stave ale aj na vstupnom stave. Prechodova a vystupna funkcia sa zapisuje ako (i) graf prechodov a stavov alebo (ii) tabulka prechodov a stavov. 4

Tabulka 1: Reprezentacia vystupu

Obr. 9: Graf prechodov a stavov Stav S0 reprezentuje pociatocny stav a automat v nom zotrvava az pokym nedetekuje log. uroven 1 od senzoru A. Vtedy prechadza do stavu S1 , kde caka na dalsi vyvoj situacie. V pripade ze prechadza dlhy vyrobok, obidva senzory A aj B budu signalizovat vysoku uroven (1,1) a automat prejde do stavu S3 ktory zabezpeci na vystupe signalizaciu dlheho vyrobku (1,0). V pripade ze prechadza kratky, automat z S1 prejde do stavu S2 a na vystupe signalizuje kratky vyrobok (0,1). Prechody medzi jednotlivymi stavmi a prislusne hodnoty vystupu yt = {y0 , y1 } je mozne (celkom aj potrebne) zapisat pomocou tabulky prechodov:

stav a automat sa pri normalnej prevadzke donho nikedy nedostane (teda nemal by sa). Za hrubou ciarou su v tejto tabulke este zadenovane vystupy. Ak chceme takyto system realizovat, v prvom rade si musime jednotlive stavy zakodovat pomocou nejakych dvoch (lebo potrebujeme kodovat styri stavy tak preto si povieme, ze chceme DVE) vnutornych premennych z1 a z2 napriklad takto:

Obr. 11: Kodovanie stavov (Mapa kodovania) Vnutorne premenne z1 a z2 budu teda reprezentovat vektor St . Podla blokovej schemy Moor-ovho automatu teraz mozme pristupit k realizacii bloku . Z tej blokovky vyplyva, ze to musi byt nejaka kombinacna siet, ktora na zaklade vstupneho vektora xt a vektora popisujuceho aktualny stav St musi na na zaklade vyssie denovanych poziadaviek vygenerovat novy stav. Kedze vektor St sa sklada z DVOCH zloziek z1 a z2 tak v ramci realizacie bloku bude potrebne vyrobit dve Karnaughove mapy - tj. aj pre z1 aj pre z2 . Podla tabulky prechodov a kodovania stavov teda vyrobime toto:

Obr. 10: Tabulka prechodov a vystup systemu Takato mapa hovori o tom, ze za akych podmienok za automat dostane z aktualneho stavu do ineho stavu a aky bude vystup. Kazdy riadok tabulky reprezentuje jeden dostupny stav, ako je oznacene na jej lavej strane. Napriklad ak zaciname v stave S0 (pricom vystup je v tomto stave 0,0) tak do stavu S1 sa dostaneme vtedy, ak hodnota vstupej premennej a = 1 a b = 0. Analogicky do stavu S3 (kedy vystup bude y0 = 0 a y1 = 1) sa dostaneme, ked v stave S1 pride na vstup automatu kombinacia a = 1 a b = 1 atd. To co je oznacene krizikom je tzv. zakazany 5

Obr. 12: Blok Jednotlive riadky su vysedene preto, aby bolo vidno v akom stave sa automat aktualne nachadza a do akeho stavu sa planuje dostat (inak povedane: to oznacenie na lavej strane map zodpoveda kombinacii premennych z1 a z2 tak ako bolo uvedene v mape kodovania

stavov) (este inak: nalavo su oznacene aktualne stavy, ale v mapach uz su kody NOVYCH stavov). Funkcnost bloku je potom asi jasna: Ak sa automat nachadza napriklad v stave S0 (z1 = 0, z2 = 1) a na vstup dojde kombinaObr. 14: Mealy cia a = 1, b = 0, blok vygeneruje novy stav S1 kodovany ako z1 = 0 a z2 = 0 (novy stav sa vyrobi tak, ze sa vygeneruju nove hodnoty Ak by sme predchadzajuci priklad (dlhost pre interne premenne z1 , z2 ). Zakazane stavy vyrobkov) navliekli na Mealy-ho automat, su osetrene tym, ze ak sa vyskytnu (nemali dospeli by sme k tomu, ze: (i) blok sa nijako by sa ale mozu sa), nic sa menit nebude a nezmeni - stale bude treba nejako kodovat automat ostane v povodnom stave. stavy ale (ii) zmeni sa blok , pretoze vystup Pri popise automatu sme zadenovali hod- bude zavisly aj na vstupnom vektore xt = noty vystupu pre kazdy stav - teda sme bude treba vacsiu Karnaughovu mapu (lebo povedali, ze co ma byt na vystupe automatu v sak dve premenne kodujuce stav + dva vstupy kazdom stave. Zrejme riesime Moore-ov au- od snimacov) = mapa pre 4 premenne... tomat a tieto jednotlive vystupne hodnoty budu zavisiet LEN od stavu v ktorom sa nachadza. Dekodovanie stavov na vystupne Synteza sekvencnych obvodov s hodnoty bude podla blokovky riesit blok . pouzitim elementarnych pamati Bude sa realizovat taktiez kombinacnou sietou, ktorej vstupom bude vektor premen- Elementarne pamate su klopne obvody ktore nych kodujucich aktualny stav a vystupom mozme popisat Moore-ovym automatom s pozadovany vystupny vektor. V sulade so dvoma stavmi a jednym vystupom Q. Tieto zadanim (presnejsie s tabulkou reprezentacie pamate sa vedia spravat styrmi sposobmi (i) vystupu) vyrobime kombinacnu siet popisanu nulovo - N (ii) jednotkovo - J (iii) pamatovo zasa DVOMA Karnaughovymi mapami (pre y0 - P a (iv) klopne - K. Pri nulovom sprajedna a pre y1 druha): vani je vystup Q bez ohladu na jeho aktualny stav nastaveny do nuly, pri jednotkovom do jednotky. Pamatove spravanie ponechava na vystupe aktualnu hodnotu a klopne spravanie nastavi vystup do jednotky, tak tam bola nula a naopak do nuly ak tam bola jednotka. Obr. 13: Blok R-S Pamat (Reset - Set): Spravanie sa pamate (prechody medzi jej dvoma stavmi) su denovane hodnotami vstupnych signalov R a S. Tato pamat moze byt synchronna aj asynchronna.

Tymto je automat vyrieseny a realizovatelny a vie blikat dvoma ledkami :-/

Realizacia automatu: Mealy Toto je blokova schema Mealy-ho automatu: 6 Obr. 15: R-S Pamat

J-K Pamat: Riadi sa vstupmi J a K a moze dvoch map na zaklade tabulky prechodov byt LEN asynchronna. (obr. 10) na strane 5. S vyuzitim mapy kodovania stavov (obr. 11) vieme pre kazdu pamat P1 a P2 napisat jej spravanie sa pri prechode z jedneho stavu do druheho. Napriklad: automat sa nachadza v stave S0 a podla tab. prechodov pride na jeho vstup kombiObr. 16: J-K Pamat nacia hodnot a, b taka, ze sposobi posun do stavu S1 . Z mapy kodovania stavov je vidno, Pouzitie tychto elementarnych pamati pri ze z1 = 0 0 a z2 = 1 0. Vystup pamate P1 synteze sekvencnych obvodov ovplyvnuje len teda nadobudne hodnotu 0 (nulove spravanie blok (blok ostava nezmeneny). Ak pouz- alebo pamatove) a vystup pamate P2 prejde ijeme elementarne pamate, tak struktura z hodnoty 1 do 0 (nulove alebo klopne spravanie). bloku sa zmeni na:

Obr. 17: Blok s pouzitim elementarnych pamati kde P1 az Pq su tie pamate. Jednotlive riadiace signaly cxy su generovane prostrednictvom tzv. budiacich funkcii a je ich potrebne denovat tak, aby generovali vnutorne premenne (to su tie ktore koduju stav automatu) denovane tabulkou prochodov. Synteza teda pozostava z dvoch krokov:

Obr. 18: Mapy spravania sa pamati

Druhym krokom je vyrobenie budiacich funkcii pre obe pamate. Kedze J-K obvod ma dva vstupy, tak pre kazdy z nich musime nakreslit mapu logickych hodnot na zaklade pozadovaneho spravania sa pamate. Napriklad v pripade, ze automat prechadza zo stavu 1. Denovat spravanie sa elementarnych S0 do S1 , spravanie sa pamate P1 sme urpamati, aby generovali spravne hod- cili ze ma byt nulove alebo pamatove. Z tabnoty vnutornych premennych (tj. nakres- ulky popisujucej J-K pamat vieme, ze palit mapy pozadovaneho spravania sa pa- mat sa bude spravat nulovo alebo pamatovo v pripade, ak vstup J1 bude rovny 0 pricom mati) vstup K1 nas nezaujima (je nam jedno, ci 2. Vyrobit budiace funkcie (pre kazdu pa- sa bude pamat spravat nulovo alebo pammat tolko budiacich funkcii, kolko ma vs- atovo a takymto zanedbanim dostavame v tupov) mape pre vstup K1 nedenovanu hodnotu, co bude neskor vyhodne pri urcovani konguPriklad Robime system s dvoma elemen- racii). Rovnako urcime vstupy pre pamat P2 , tarnymi pamatami typu J-K podla prikladu ktora sa ma v pripade S0 S1 spravat nulovo na kratkost-dlhost vyrobkov. Takyto automat alebo klopne. V tomto pripade staci, ak vstup ma 4 stavy, preto budeme potrebovat dve K2 bude jednotkovy a do mapy pre vstup J2 vnutorne premenne (z1 ,z2 ) na ich kodovanie. zapiseme nedenovanu hodnotu. Kompletne Tieto premenne budu vyrabat dva kusy J- budiace funkcie oboch pamati su na nasleK pamati, ktorych spravanie sa zapiseme do dujucom obrazku: 7

Kriticky subeh Stav automatu je zavisly na vnutornych premennych ktore ho koduju. Vplyvom nedokonalosti moze ale dojst k situacii, kedy sa tieto vnutorne premenne nezmenia sucasne. To moze mat za nasledok chvilkovy prechod do ineho, falosneho stavu, ktory moze skoncit tym, ze tento prechod bude fakt len chvilkovy a automat sa nakoniec dostane do chceneho stavu, alebo tym, ze si povie, ze toto je stav ktory som chcel a ostane v nom = error. To, ci sa to stane, zavisi od dynamickych pomerov (oneskorenie kombinacnej siete, trvanie falosneho stavu, ... ). V ramci prevencie kritickeho subehu sa posudzuje pouzite kodovanie, ci je vhodne pre realizaciu asynchronneho automatu. Toto hodnotenie sa vykonava na zaklade Vartapelovej vety (nenajdes na nete co zahynes) pre kazdu dvojicu kodovych slov kodujucich stavy.

Obr. 19: Budiace funkcie Tymto je vyriesena synteza bloku s pouzitim elementarnych pamati typu J-K.

Unikody a Multikody
Kodovanie je priradovanie kombinacii hodnot vnutornym premennym za ucelom rozlisenia stavov automatu. Unikod je taky, ze kazdemu stavu priradi len jednu kombinaciu hodnot ale multikod dovoluje jednemu stavu priradit viac kombinacii vnutornych premennych (stav nie je popisany iba jednym kodovym slovom). Vztahy medzi jednotlivymi kodovymi slovami sa daju vyjadrit napr. pomocou Hammingovej vzdialenosti co je cislo, ktore nam hovori, ze v kolkych hodnotach vnutornych premennych sa dve kodove slova lisia. Napriklad ked mame stavy automatu vyjadrene pomocou styroch vnutornych premennych z0 , z1 , z2 , z3 (dokopy teda existuje 16 kodovych slov / stavov) a povieme, ze kodove slova A a B budu A B z0 0 1 z1 0 1 z2 1 1 z3 0 0

Tabulka 2: Priklad na kodove slova tak ich Hammingova vzdialenost bude 2, lebo sa lisia v hodnotach premennych z0 a z1 . Totozne stavy maju vzdialenost 0, susedne stavy vzdialenost 1. 8

You might also like