IGITÁLIS TEHNIK I r. Pıdör álint MF KVK Mikroelektronikai és Technológia Intézet 8. ELİÁS 8. ELİÁS. Kódváltók, kódoló és dekódolók 2. Egyszerő kódátalakító (kombinációs) hálózatok 3. ináris/ és /bináris kódátalakítók 2008/2009 tanév. félév 2 ISMÉTLÉS ÉS KIEGÉSZÍTÉS típusú és egyéb különleges kódok Összeadás kódban: lgoritmus Realizálás RITMETIKI MŐVELETEK TETRÁ KÓN digitális rendszerek, és ezen belül a számítógépek jelentıs része a négy aritmetikai mőveletet, illetve azok egy részét közvetlenül a binárisan kódolt decimális () számokon is el tudja végezni. Pl. a mikroprocesszorok alkalmasak kódú számok összeadására, egy részük kivonására is. Egyes célprocesszorok a kódú, szorzást illetve osztást is el tudják végezni. 3 4 ÖSSZEÁS TETRÁ KÓOKN z összeadást a közönséges bináris összeadásra vezetik vissza. Elv: az operandusok egyes tetrádjait közönséges bináris számoknak tekintve tetrádonként elvégzik az összeadást, majd ha szükséges (pszeudotetrádok keletkeznek) korrigálják az eredményt. 5 ÖSSZEÁS KÖZÖNSÉGES (842 SÚLYOZÁSÚ) KÓN Ha két tetrád összege nem nagyobb mint 9, akkor az eredmény helyes, nincs szükség korrekcióra. Ha az eredmény nagyobb mint 9 (ekkor átvitel és pszeudotetrád lép fel) akkor az eredmény csak binárisan helyes, kódban nem. Ekkor a korrekció 6 (decimális) azaz 00 (bináris) hozzáadásával elvégezhetı. Mindezt a legalacsonyabb helyértéktıl kezdve tetrádról tetrádra haladva kell elvégezni. 6
Példa: decimális (842) ÖSSZEÁS 427 000 000 0 + 3 + 000 00 000 558 00 00 000 Mivel egyetlen helyértéken sem volt az összeg 9nél nagyobb, ezért korrekcióra nem volt szükség 7 ÖSSZEÁS: +6 KORREKIÓ 789 0 000 00 + 23 + 000 000 00 002 00 00 00 + 00 00 00 000 + 00 00 0000 000 + 00 0000 0000 000 8 (842) ÖSSZEÁS LGORITMUS PSZEUOTETRÁOK ZONO SÍTÁS KRNUGH TÁLÁN + = + bin ha + bin 9 Minimalizálás után P = + + = + bin + bin 6 ha + bin > 9 9 Hibajelzı: 0 Átvitel két dekád között 3 2 0 3 2 0 3 2 0 3 2 0 számok összeadása 4 ináris összeadó 0 S3 S2 S S0 + > 9. érvénytelen kódszó ecimális 6 (bináris 0 0) korrekció 0 0 3 2 0 ináris összeadó 3 2 0 0 S3 S2 S S0 4 S3 S2 S S0 KIVONÁS TETRÁ KÓOKN bináris számokhoz hasonlóan itt is komplemens kódú összeadásra vezetik vissza a kivonást. Mind a 9es, mind a 0es komplemens használható, de az elızınél itt is kell korrigálni az eredményt a körátvitellel, ha az fellépett. 0 0 2
MULTIPLIKTÍV MŐVELETEK TETRÁ KÓOKN Léteznek a megfelelı algoritmusok a szorzás és osztás elvégzésére. Mivel gyakori feladat a 2vel való szorzás vagy osztás (pl. bináris, illetve bináris átalakítás), ezért a hatékonyság növelése érdekében erre vannak külön algoritmusok. ináris: egy helyértékkel jobbra vagy balra léptetés. szorzás: egy helyértékkel balra léptetés, és +6 korrekció a pszeudotetrádoknál. 3 KÓÁTLKÍTÓ HÁLÓZTOK, KÓVÁLTÓK, EKÓEREK digitális technikában gyakran van szükség különbözı kódrendszerek közötti átalakításra, kódváltásra. kódátalakító hálózatok lényegében több bemeneti és kimeneti ponttal rendelkezı kombinációs hálózatok. Megvalósíthatók egyedi logikai kapukból a kombinációs hálózatok megvalósítása ismert eljárásai szerint. Sok esetben célszerőbb a memóriaelemeken alapuló megvalósítás. 4 KÓÁTLKÍTÓK Kódátalakítókra akkor van szükség, ha az adatforrás és a nyelı kódrendszere nem egyezik meg. Pl.: EKÓOLÓK, KÓOLÓK Helyzet érzékelı Gray ináris Gray 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ináris N 0 842 842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 leggyakrabban szükséges kódátalakító áramkörök készen rendelkezésre állnak mint ún. közepes integráltságú áramkörök (medium scale integrated (MSI) circuits). 5 6 INTEGRÁLT ÁRMKÖRÖK OSZTÁLYOZÁS Integrált áramkörök osztályozása komplexitás (integráltsági fok) szerint: EKÓOLÓ (EOER) ÁRMKÖR Kódolt információ dekódolása (konverzió) SSI Small Scale Integration: kb. 0 alacsony szintő elem (kapu) MSI Medium Scale Integration: 000 LSI Large Scale Integration: 00000 VLSI Very Large Scale Integration: > 000 ULSI Ultra Large Scale Integration: > 0000 GLSI Giga Large Scale Integration: > 00000 RLSI Ridiculously (?) Large Scale Integration : Egyidıbenegyszerre csak egy logikai kimeneti változó (tehát a dekódolt) lehet igaz, a többi hamis! 2 N kimenet dekódolásához N bemenet kell! Gyakran alkalmazott eszköz, kapható 2, 3, 4, bemenető I formájában > 000000 7 8
TIPIKUS FELTOK, TIPIKUS ÁRMKÖRÖK emeneti kód Kimeneti kód nbites bináris kódszó a 2 n bıl (számjegy) tiszta decimális számjegy ( a 0bıl) 3többletes tiszta decimális számjegy ( a 0bıl) 7szegmenses kijelzı tiszta bináris (szám) tiszta bináris 9 Z N KÖZÜL EKÓOLÓK az N közül ( out of N vagy of N) dekódolók: Kombinációs áramkör, melynek n bemente és m kimenete van. bemeneti kombinációk lehetséges száma 2 n, a kimenetek száma pedig m 2 n. kimenetek közül mindig csak az egyik és az összes többi 0, vagy fordítva, az egyik 0 és a többi. z nbites bináris bemeneti kóddal kiválaszt egyet az m kimeneti vonal közül, mely csak az adott bemeneti kód megjelenése esetén lesz aktív. legtöbbször MSI integrált áramkörként megvalósított hálózat tartalmazhat egyéb kényelmi vezérlı bemeneteket (pl. engedélyezı) is. 20 2to4 ecoder 3to8 ecoder data address 2 22 PÉL: 8 KÖZÜL EKÓÓLÓ ecoder with enable: 2to4 E E 2 3/8 O 0 O O 7 Háromból nyolcvonalas dekódoló engedélyezı bemenettel. kimeneti kapuk négy bemenetőek, három fogadja a bemeneti kódot, az engedélyezı jel a kimeneti kapuk negyedik bemenetére kerül. ekóder engedélyezı bemenettel 23 24
EKÓER İVÍTÉS 2 0 2 2 2 2 3 LKLMZÁSOK: (IN)/EIMÁLIS EKÓOLÓ /E 00 bin 5 dec 0 2... 5... 8 9 Gyakori alkalmazás a /E átalakító. bemenetek száma 4, a kimeneteké pedig 0. z aktív kimenet lehet akár H szintő () akár L szintő () a realizálástól függıen. 25 26 (IN)/EIMÁLIS EKÓOLÓ 0 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0 0 0 X X X X X X X X X X... X X X X X X X X X X 27 ÖSSZEVONT ÁRÁZOLÁS KRNUGH TÁLÁN K0 K K3 K2 K4 K8 K5 K9 K7 K6 K0 és K nem egyszerősíthetı. K3... K7 tagok egyszerősíthetık egy egy don t care mintermmel való összevonással. K8, illetve K9 körül négyes hurkok alakíthatók ki. 28 MINIMLIZÁLÁS EREMÉNYE /E EKÓOLÓ K0 K K3 K2 K4 K5 K7 K6 K8 K9 K0 = K = K2 =... K8 = MSI realizálásban nem kell takarékoskodni a kapukkal és így nem szükséges minimalizálni, ekkor a tiltott kombinációk kihasználásával kiegészítı áramköri funkciók valósíthatók meg. Pl. a tiltott kombinációknál a kimenetek letilthatók. Lehet más elıírást is alkalmazni, de a fı, hogy a tiltott bemenetekre is lehet a kimenetek állapotát definiálni. K9 = 29 30
2 0 2 2 2 /E EKÓOLÓ MINT IN/OKTÁLIS EKÓOLÓ /E 0 2... 5... 8 9 Engedélyezı bemenetként tilt 0 engedélyez /E dekódolót bináris/oktális dekódolónak használva csak a 0... 7 kimenetek lényegesek, a 8 és 9 kimeneteket nem használják. 3 /7SZEGMENSES KIJELZİ EKÓOLÓ emenet : 4 bit digit (,,, ) Kimenet : 7 szegmens vezérlıjele (06) c5 c4 c0 c6 c3 c0 c c2 c3 c4 c5 c6 to 7 segment control signal decoder c c2 32 Formalize the problem Truth table Show don't cares hoose implementation target If ROM, we are done on't cares imply PL/PL may be attractive Follow implementation procedure 023456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Implementation as Minimized SumofProducts 5 unique product terms when minimized individually 0 X 0 X 0 X X X X X X X X 0 X 0 = + + + ' ' 0 X 0 X = ' ' + + ' 2 = + ' + 0 0 X X 0 X X 3 = ' ' + ' + ' + ' 0 X X X X 4 = ' ' + ' 5 = + ' ' + ' + ' 6 = + ' + ' + ' Minimization using Kmaps 33 on t care termek: erıs egyszerősítések adódnak! 34 X 0 X X X X X X 0 X X 0 X 0 X 0 0 0 X 0 0 X X 0 0 X X X X 0 X X X MINIMLIZÁLÁS EREMÉNYE (0) 0 0 0 0 = + + + 35 Implementation as Minimized SoP (cont'd) Van jobb megoldás! 9 különbözı szorzat tag (5 helyett) Közös termek z egyes kimenetek nem szükségképen minimális 2 X X X X 0 X X 0 = + + + ' ' = ' ' + + ' 2 = + ' + 3 = ' ' + ' + ' + ' 4 = ' ' + ' 5 = + ' ' + ' + ' 6 = + ' + ' + ' 2 X X X X 0 X X 0 = ' + + ' ' + ' + = ' + ' ' + + ' ' 2 = ' + ' + ' ' + + ' 3 = ' + ' + ' ' + ' 4 = ' ' + ' 5 = ' + ' ' + + ' 6 = ' + ' + ' + 36
PL MEGVLÓSÍTÁS ' ' ' ' '' '' ' 0 2 3 4 5 6 7 37 LOGIKI FÜGGVÉNYEK RELIZÁLÁS EKÓERREL Tetszıleges kombinációs hálózat realizálható dekóder(ek) és VGY kapuk felhasználásával! Példa: Teljes összeadó (TÖ) megvalósítása egy dekóderrel és két VGY kapuval. TÖ logikai összefüggései (a bemenetek X, Y, és Z): S(X,Y,Z) = X plus Y plus Z = Σ3(,2,4,7) (X,Y,Z) = Σ3(3, 5, 6, 7). Mivel 3 bemenet és összesen 8 minterm van, egy 3to8 dekóderre van szükség. 38 Implementing a inary dder Using a ecoder KÓOLÓ (ENOER) S(X,Y,Z) = SUM m(,2,4,7) (X,Y,Z) = SUM m(3,5,6,7) dekódoló ellentéte: 2 N bemeneti és N kimeneti vonala van. Pl. 6 bemenet és 4 kimenet. kimeneti vonalakon azon bemeneti vonal sorszáma bináris ekvivalense jelenik meg, mely vonalon logikai szint van. 39 40 KÓOLÓ PÉL Példa 8ból 3ra bináris kódóló (octaltobinary) 0 = + 3 + 5 + 7 = 2 + 3 + 6 + 7 3 5 7 OKTÁLIS/INÁRIS KÓOLÓ = + + + 2 4 5 6 7 4 42 2 0 2 3 2 6 7 4 5 6 7 Oktális/bináris aktív bemenető, aktív kimenető kódoló 2 2
Encoder Example (cont.) EIMÁLIS/ ÉS OKTÁLIS/INÁRIS KÓOLÓK ecimális/ kódoló: emenet 9 vezeték, sorszámozva... 9 Kimenet négy vezeték (), az aktív bementi vezetéknek megfelelı kód. Elvi megvalósítás: VGY kapuk, pl. = 2 +3 + 6 + 7 43 ( helyérték súlya 2 = 2) 44 PRIORITÁS KÓOLÓ Prioritás kódoló (priority encoder), decimális/, MSI áramkör: Prioritási elven kódol, ha egyszerre több bemeneti vonal aktív, akkor a legmagasabb sorszámút kódolja át alakká. EGYLÉPÉSES KÓOK, GRYKÓ Graykód olyan kód, amivel a kvantált mintát digitálisan kifejezve, a szomszédos kvantálási szinteket képviselı kódszavak egymástól csak egy bitjükben különböznek. Graykódot minimális változású kód. Graykód speciális esete az ún. egylépéses kódoknak. Fı felhasználási területe: különbözı jelek sorrendbe állítása, a legmagasabb prioritású jel lkalmazás: méréstechnika és automatika, lineáris vagy szöghelyzet érzékelése és kódolása (pozíció hatása érvényesül. 45 kódolás). 46 4ITES GRY KÓ KRNUGH TÁLÁN EGYSZERŐ PÉL: 3ITES GRYKÓ ec in Gray 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 6 0 0 7 0 0 in/gray átalakítás: Gray elsı bitje azonos a bináris kód. (MS) bitjével, a második bit a bináris szám. és 2. bitjének KIZÁRÓVGY függvénye, a harmadik bit a bináris kód 2. és 3. bitjének KIZÁRÓVGY függvénye, és így tovább. Gray kód képzési szabálya 4biten 47 48
GRYKÓ, HMMINGTÁVOLSÁG Graykód 2n számú nbites bites kódszavak olyan sorrendben, hogy bármelyik két szomszédos kódszó csak egyetlen bitben különbözik. Ez áll az elsı és utolsó kódszóra is (ciklikusság). Ha n = 3, a kódszavak ciklikus sorrendje: 0 00 000 00 00 0 0 49 HMMING TÁVOLSÁG Két kódszó Hamming távolságát úgy határozzák meg, hogy a két kódszó azonos helyen álló elemeit összehasonlítják, és megállapítják hány helyen áll különbözı bit. z így kapott szám a Hamming távolság. Gray kód bármely két szomszédos kódszava csak egy bitben különbözik. 50 5 52 INÁRIS/GRY ÉS GRY/INÁRIS KONVERZIÓ LGORITMUSI ináris: b3b2bb0 Gray: a3a2aa0 ináris Gray Gray ináris a3 = b3 b3 = a3 a2 = b3 b2 b2 = a3 a2 a = b2 b b = a3 a2 a = b2 a a0 = b b0 b0 = a3 a2 a a0 = stb. INÁRIS/GRY KÓÁTLKÍTÓ 0 b3 0 a3 = b2 a2 b = 0 a ináris Gray: Gray ináris: ai = bi+ bi bi = bi+ ai 53 b0 = 0 a0 54
MÁS EGYLÉPÉSES KÓOK Sok más, hasonló tulajdonságú (egylépéses) kód ismeretes. Vannak pl. decimális () egylépéses kódok: PÉL: GRY/IKEN KÓ ÁTLKÍTÓ Pl. Glixonkód, tetrád kódszavak, sorrendjük 0000 (0) 000 () 00 (2) 000 (3) 00 (4) 0 (5) 00 000 (7) 00 (8) 000 (9) 55 kódátalakító 08ig mőködjön! z átalakító igazságtáblázatának kitöltése Logikai függvények egyszerősítése Realizálás NN/NN hálózattal 56 GRY/IKEN: IGZSÁGTÁLÁZT Gray kód iken kód EGYSZEŐSÍTETT FÜGGVÉNYEK _ X = + Y = + _ Z = + + _ K = + + + Redundáns (don t care) mintermek: i = 8, 35 57 58 RELIZÁLÁS (X) RELIZÁLÁS (Y) _ X = + 59 Y = + 60
RELIZÁLÁS (Z) RELIZÁLÁS (K) _ Z = + + 6 _ K = + + + 62 INÁRIS/ KONVERZIÓ Korrekció (+6): pszeudotetrád fellépésekor, dekádok közötti határ átlépésekor. Konverzió végrehajtása: bináris számot a MStól kezdve balra léptetjük, minden lépés után megvizsgáljuk kelle korrekció, ha igen elvégezzük. 63 INÁRIS/ KONVERZIÓ LGORITMUS * 0 0 (bin) = 57(dec) * 0 0 balra lép * 0 0 balra lép * 0 0 balra lép * 0 * 0 balra lép pszeudotetrád +0 0 * korrigál * 0 0 0 * 0 balra blép 0 * 0 0 0 * balra lép dekád 0 * 0 0 0 * balra lép átlépés +0 0 * korrigál 0 * 0 0 * 5 7 64 INÁRIS/ KONVERZIÓ Mindkét, a léptetés utáni korrekció +6 hozzáadása. Léptetés elıtt is elvégezhetı, ekkor +3 a korrekció, ha a tetrád decimális értéke nagyobb mint 5. Elınye: az állandóan elvégzett pszeudotetrád korrekció miatt 9nél nagyobb szám sosem fordul elı, a dekádhatár átlépési korrekció is automatikusan elvégzıdik. Így csak egyfajta korrekciós hálózatra van szükség. VÉGE 65 66