5. PREKLOPNE STRUKTURE ALI PREKLOPNI NOGOPOLI 5. atrično opisovanje preklopnih vezij in struktur 5.. Osnovna simbolika Vektor: an vodoravni vektor atrika: a m navpični vektor A :m :n :n - matrika reda m x n A :m - matrika reda n x m Opredelimo najprej tri osnovne nize matrik: :t.t :t :(m+n) = :m.n C A B - vodoravni niz matrik A in B :(m+n) :t A :n C:t = :n - navpični niz matrik A in B B :t T :n :m i j :m = :n j = i C A ; c a - transpozicija matrike C Spremenljivke A, B, C so matrike z razsežnostmi: t x n ter m x t. stran:
5..2 Operacije nad vektorji in matrikami Redukcija vektorja k skalarju: c = a n ; c = a m, kjer je: - splošni znak za operator, c = a a 2 a 3 a 4... a n vodoravna redukcija vektorja k skalarju, c = a a 2 a 3 a 4... a m navpična redukcija vektorja k skalarju. ed matrikami definirajmo splošno dvojno operacijo: :n :n.t :m = :t :m C A B ( ) i i :t j :t i c = a b Elemente vrstice v matriki A povežemo z operacijo» «z elementi stolpca matrike B. Nato pa z vektorsko redukcijo preidemo preko operacije» *«na matriko C. Negacija: C m m i i n An; c j aj = = Konjunkcija: C = i ; i m m m i i i n An Bn c j =aj bj stran: 2
Disjunkcija: m m m i i i n = n + n; c j = a j+ b j C A B Izključna ALI operacija: C = A B ; c = a b m m m i i i n n n j j j 5.2 Popolna disjunktivna normalna oblika vektorske preklopne funkcije Doslej obravnavane preklopne funkcije so imele obliko: 2 n - f(x x 2,..., x n) = f i m i ; i = x = [x,x 2,...,x n ], m,,... = m m m 2 n Funkcijske vrednosti pa: f f,f,...f = (2 n ) T Skalarna preklopna funkcija je v novi simbolični izražavi: y = f(x) = m f Vektor m je z vektorjem x povsem določen. stran: 3
intermski vektor m je dan z operacijo konjunkcije in ekvivalence: m(x) = x W T, S tem so dani vsi elementi za PDNO: y = f(x) = [ x W T ] f Izjavnostna tabela dobi obliko: x y = f (x) W f Pri posplošitvi predpostavimo vektorsko izhodno preklopno funkcijo: f(x) preide v vektorsko funkcijo y, z njo pa preide tudi vektor f vmatriko D. Torej: y = f(x) = [ x W T ] D matrična popolna disjunktivna normalna stran: 4
To obliko vektorske preklopne funkcije, včasih imenujemo tudi strukturna popolna disjunktivna normalna oblika (SPDNO). Pri vektorski preklopni funkciji dobi tudi izjavnostna tabela nove simbole: x y = f (x) W D 5.3 Standardna mnogopolna preklopna vezja 5.3. Kodirna vezja kodirniki (encoder-ji) i y = m Σ K ; k j = konstanta stran: 5
K m m m... m 2 n -............ m K y f f 2 f 3 f 4 y V konstantah matrike K je zapisano kodirno pravilo. Pri kodirniku je število mintermov vedno večje od števila izhodnih funkcij elementov vektorske izhodne funkcije. Ta zožitev števila spremenljivk se odraža tudi na blokovnem simbolu kodirnika. stran: 6
5.3.2. Dekodirna vezja dekodirniki (decoder-ji) Tu gre torej za»razširitev«; povečanje števila spremenljivk od vhoda proti izhodu. x x x 2 x n m... x m m D K m...... T m= x W ; w ij = konstanta m 2 n - stran: 7
5.3.3 ultipleksor (ultiplexer) 5.3.3.. Skalarni neadresni multipleksor k 2 n - k........... k k... y.......... m m m 2 n - m m Izhod je skalarna preklopna funkcija, ki jo določa enačba: i y = m Σ k ; k = spremenljivka k y stran: 8
5.3.3.2 Vektorski neadresni multipleksor K k k k 2 n -......... y y 2 y m y m m m n 2 - m y = m Σ K ; k = spremenljivke, ki tvorijo vektorje k i i j K m y stran: 9
5.3.3.3 Skalarni adresni multipleksor Dve elementarni operaciji: dekodiranje - multipleksiranje Tako dobimo skalarni adresni multipleksor: x k k D K m x T y y i y = ( x W ) Σ k ; k = spremenljivka - skalarna stran:
5.3.3.4 Vektorski adresni multipleksor x K K D K m x y y T i y = ( x W ) Σ K ; k = spremenljivke, ki tvorijo vektorje k i j 5.3.4 Demultipleksor (Demultiplexer) 5.3.5. Neadresni skalarni demultipleksor Demultipleksiranje je obratna operacija od multipleksiranja, zato imamo tudi tu enake različice, kot pri multipleksorjih. stran:
Skalarni neadresni demultipleksor y y m k m D D k m m k k m 2 n - k 2 n - Izhodna funkcija navadnega - neadresnega skalarnega demultipleksorja je tako: T k = m Σ y - y je skalarna funkcija stran: 2
5.3.5.2 Adresni skalarni demultipleksor Vhodna funkcija je tu enaka kot prej, naslavljanje pa je omogočeno vektorju neodvisnih spremenljivk. y x D k T T k = ( x W ) Σ y - y je še vedno skalarna funkcija stran: 3
5.3.5.3 Neadresni vektorski demultipleksor y m y y y 2 n - y m K D... k m m... K Izhod je torej matrika K, ki daje večbitne podatke zopet v paralelni obliki. k m 2 n - Vsak minterm omogoči nastop ustrezne vrstice matrike K, ki predstavlja trenutni izhodni vektor : T K = m Σ y - y je sedaj vektorska vhodna funkcija... k 2 n - stran: 4
5.3.5.4 Adresni vektorski demultipleksor Z dodajanjem dekodirnika pridemo do kompleksne strukture vektorskega adresnega demultipleksorja, ki ga z blokovnim simbolom predstavimo takole: y x D K T T K = (x W ) Σ y - y je vektorska vhodna funkcija 5.3.5 Programibilna preklopna vezja Osnovna ideja programibilnih preklopnih vezij je prilagodljivost standardizirane preklopne strukture za opravljanje čim večjega števila funkcij odločanja in pomnjenja, ki jih lahko uporabnik sam določi; to je brez pomoči proizvajalca. Zapišimo še enkrat popolno dijunktivno normalno obliko vektorske preklopne funkcije: T ) i j y = ( x W Σ K ; k = spremenljivka - skalarna stran: 5
Programibilno preklopno vezje ali strukturo lahko sedaj definiramo, kot kombinacijo dekodirnika in kodirnika, pri katerem lahko uporabnik sam določa povezave v poljih AND in ali OR. Tip vezja Programibilni bralni pomnilnik Programibilne logične mreže - PLA Programibilna logična polja - PAL Polje - AND Fiksno Programibilno Programibilno Polje - OR Programibilno Programibilno Fiksno 5. 3. 6. Bralni pomnilnik (Read Only emory - RO) Uporaba: pomnjenje stalnih vrednosti in realizacija vektorskih preklopnih funkcij. stran: 6
Blok simbol bralnega pomnilnika: x Naslavljanje pomnilnika: T m = x W ; w i = kons tanta; W D; w i d i Čitanje pomnilnika i y = m Σ K ; k = kons tanta j j j j Z vstavitvijo prvega izraza v drugega dobimo: popolno disjunktivno normalno obliko vektorske preklopne funkcije PDNOVPF: T i j y = ( x D ) Σ K ; k = kons tanta, ki je bila sprogramirana D k m K y stran: 7
Podrobno vezje bralnega pomnilnika A 2 A A Kodirnik m m m 2 m 3 m 4 m 5 Dekodirnik m 6 m 7 D 3 D 2 D D stran: 8
5.3.6.2 PLA vezja Ta vezja imajo, kot že vemo, programibilni obe polji dekodirno in kodirno polje. Zanja uporabljamo enak blokovni simbol, kot za RO, saj se po osnovni notranji strukturi ne razlikujejo od njega: x PLA Tudi izhodiščna enačba je enaka, saj gre za dijunktivno normalno obliko vektorske preklopne funkcije: y y = ( x D T ) Σ K ; k = kons tanta i j stran: 9
Podroben simbolični diagram PLA vezij x 2 x Programibilno vezje PLA Programibilne povezave Programibilne povezave < < f 2 f stran: 2
5.3.6.3 PAL vezja: x 4 x 3 x 2 x Pri uporabi PAL vezij smo zaradi vnaprej določenega kodirnika omejeni pri številu konjunkcij, ki lahko nastopajo tako v vektorski, kot tudi v skalarni preklopni funkciji. atrika K je torej določena x Programibilno vezje - PAL Katere konjunkcije nastopajo v preklopni funkciji določimo z matriko D. < f 4 f 3 < PAL y stran: 2
5. 4 Realizacija skalarnih in vektorskih preklopnih funkcij s preklopnimi strukturami 5. 5. ultipleksor g g g f(x,x 2,x 3 ) Funkcija multipleksiranja predstavlja funkcijsko polnost, njegov izhod daje preklopno funkcijo v popolni disjunktivni normalni obliki, vsi elementi matrike K pa so spremenljivke. g x x 2 V splošnem bo imela preklopna funkcija množico neodvisnih spremenljivk: X = {x, x 2,...,x n }. Te spremenljivke pri realizaciji funkcije z multipleksorjem razdelimo v dva dela; v podatkovne in adresne spremenljivke. stran: 22
Podatkovne in adresne spremenljivke: X d = {x d, x d2,...,x dd } X, X a = {x a, x a2,...,x aa }. X, razdelimo na takšen način, da vedno velja: X a X d = X X a X d = Za adresne spremenljivke najprej izberimo»a«zaporednih neodvisnih spremenljivk in naj bo: a = 2. Torej bo: x a = x in x aa = x 2. f (x, x 2,... x n ) = x x 2 g + x x 2 g + x x 2 g + x x 2 g kjer je na primer: g = f (,,x 3,...x n ). Funkcije g, g, g, g so funkcijski ostanki, ki jih kot vemo, lahko obravnavamo na enak način kot izhodiščno funkcijo, dokler ne začnejo nastopati konstante ali posamične neodvisne spremenljivke. Če ima preklopna funkcija»n«neodvisnih spremenljivk potrebujemo za takšno realizacijo multipleksor z»n - «adresnimi vhodi. stran: 23
V drugem primeru, ko ima multipleksor samo en adresni vhod se število multipleksorjev širi po nivojih z 2 i, kot to vidimo na spodnji sliki: f f 2 f 4 f 6 f 8 f f 2 f 4 x 4 x 4 x 4 x 4 x 4 x 4 x 4 x 4 x 3 x 3 x 3 x 3 N n = n x 2 N n je število realiz. nivojev x 2 N i= x f(x,x 2,x 3,x 4,x 5 ) n = i 2 ; kjer je N - število vseh potrebnih multipleksorjev stran: 24
Pri vseh vmesnih kombinacijah, ko je < a < n bo število vseh multipleksorjev odvisno od»a«pri čemer morata biti obe števili celi števili. Po tem premisleku zlahka ugotovimo, da je : in (n )/a N n (n )/a + = N n N 2 i= ai Da gornja enačba velja tudi za obe skrajnosti, se lahko prepričamo takole: V prvem primeru je bil a = n, celo število iz neenačbe je, vsota pa ima tudi samo en člen, to je 2 =. V drugem primeru, ko je a = je celo število iz neenačbe n in število vseh multipleksorjev je: Nn n 3 i i i 2 3 N = 2 = 2 = 2 = 2 + 2 + 2 + 2 = + 2+ 4+ 8 = 5 i= i= i= Kadar pa je < a < n pa ni več vseeno kako razporedimo adresne spremenljivke, ker lahko prinese poenostavljanje znaten prihranek vezja. stran: 25
Število vseh možnih minimizacijskih postopkov je enako številu kombinacij n spremnljivk s po a elementov. n! N k = ; kjer je N k število vseh možnih kombinacij. a!(n a)! Število vseh Veitch-evih diagramov za vsak minimizacijski postopek je potem 2 a. Vsak posamezen diagram pa ima n-a neodvisnih spremenljivk Redundanca pri adresnih spremenljivkah Kadar število n- ni deljivo z a se število adresnih spremenljivk ne ujema s številom adresnih vhodov. To pa pomeni, da se določene adresne spremnljivke ponovijo na različnih nivojih drevesne strukture. Takšno adresno spremenljivko lahko nadomestimo kar s konstanto. stran: 26
Primer redundance pri adresnih spremenljivkah: d 3 d 2 d d d 3 d 2 d d x x 2 d 7 d d 7 d x x 2 x 3 x x 2 x 3 f f =... + xx 2x3d 6 +... f =... + xx 2x 3(xxd 2 + xxd 2 + xxd 2 2 + xxd) 2 3 +... f =... + xx 2x 3(d + d + d2 + d 3) +... f =... + xx 2x 3(d 3) +... f stran: 27
5. 5. 2 Uporaba bralnih pomnilnikov Kot že vemo je izhodna funkcija bralnega pomnilnika vektorska popolna disjunktivna normalna oblika: y = x D T Σ K = i ( ) ; k j kons tanta Vzemimo za primer naslednjo vektorsko preklopno funkcijo: x x 2 x 3 f f 2 f 3 f 4 f= xx2x3 + xx2x3 + xx2x3 + xx2x3 + xx2x3 + xx2x3 Njena minimalna disjunktivna normalna oblika pa je: = + f x x 2 3 Vsako od komponent vektorske preklopne funkcije lahko zapišemo v njeni popolni disjunktivni normalni obliki. Tako je na primer: stran: 28
Pri uporabi bralnega pomnilnika za realizacijo preklopnih funkcij pa moramo opozoriti še na eno slabost. Ker v njem lahko realiziramo le popolno disjunktivno normalno obliko ne moremo izkoristiti minimizacije in s tem prihranka vezja. Postavlja se vprašanje ali se temu nebi dalo izogniti? Vzemimo obširnejši primer funkcije s šestimi neodvisnimi spremenljivkami, ki zavzame vrednost pri mintermih z indeksi: 4, 5, 5, 2, 29, 4, 42, 45, 47, 53, 58, 6, 63. 6 ( ) f = 4,5,5,2,29,4,42,45,47,53,58,6,63 Neposredno realizacijo te funkcije bi lahko izvedli na primer 64 x 4 RO vezjem, oziroma štirimi 6 x 4 RO vezji. stran: 29
Naredimo si tabelo nastopajočih mintermov: intermski indeks Spremenljivki Spremenljivke x x2 x3 x4 x5 x6 4 5 5 2 29 4 42 45 47 53 58 6 63 Poiščemo vse enake konjunkcije dolžine: x 3 x 4 x 5 x 6. Z njimi naredimo novo tabelo: stran: 3
spremenljivke kodirane spremenljivke x 3 x 4 x 5 x 6 z z 2 z 3 Tem izhodnim spremenljivkam moramo dodati še spremenljivki x in x 2, ki v našem primeru zavzemata vse možne vrednosti, da bomo lahko realizirali podano funkcijo. Na drugem nivoju potrebujemo RO velikosti 32 x, kar praktično pomeni 32 x 4. x 3 x 4 x 5 x 6 RO 6X4 x x 2 RO 32X4 V tem drugem pomnilniku bo na trinajstih mestih izbranega stolpca zapisana enica, na preostalih devetnajstih pa ničla. esta, kjer mora ostati zapisana enica, so podana v naslednji tabeli; pri tem smo za našo funkcijo rezervirali prvi stolpec, ostali trije pa so še prosti in jih lahko uporabimo za nek drug namen. F F 2 F 3 F 4 stran: 3
stran stran: 32 Vhodi Spremenljivke Izhodi x x 2 Z Z 2 Z 3 f f 2 f 3 f 4 Opisani postopek lahko uporabimo tudi v primeru, ko moramo realizirati več različnih funkcij, kjer je prihranek prostora v pomnilniku lahko še večji. Pri vsem tem pa ne smemo pozabiti, da smo s kaskadno vezavo zmanjšali hitrost odziva vezja.
Na vektorsko preklopno funkcijo pa lahko gledamo še iz drugega zornega kota. Vzemimo vektorsko funkcijo iz prvega primera Posamezne funkcijske vrednosti te funkcije: f, f 2, f 3, f 4 ; naj bodo biti besede: d, d 2, d 3, d 4, ki jo naslavlja mintrem m ; vhodne neodvisne spremenljivke pa preimenujmo v adresne spremenljivke : A, A, A 2. Logično enaka izjavnostna tabela je z novimi oznakami naslednja: A 2 A A D 3 D 2 D D Nespremenjeno vezje je prevzelo vlogo bralnega pomnilnika, po katerem nosi tudi ime. stran: 33
Sprogramirano RO vezje za obravnavano vektorsko preklopno funkcijo A 2 A A Kodirnik m m m 2 m 3 m 4 m 5 Dekodirnik m 6 m 7 D 3 D 2 D D stran: 34
Realizacija vektorskih preklopnih funkcij s PLA in PAL strukturami Njihova obsežnost je poleg števila vhodov odvisna tudi od števila konjunkcij, ki jih je možno programirati ter od števila izhodov Obsežnost za enako število vhodov je bistveno manjša od RO - vezij Primerjava: FPLA v TTL izvedbi 6 vhodov, 48 konjunkcij in 8 izhodov Kompleksnost se odraža pri realizaciji funkcij, ker je na razpolago le omejeno število konjunkcij Upoštevati moramo tudi to, da izolirana spremenljivka še vedno zahteva svojo konjunkcijo Velikost vezja vedno določa najdaljša konjunkcija ne glede na položaj v vektorski funkciji Potrebna je torej minimizacija Najprej izvedemo klasično minimizacijo Od tu dalje pa postopek zavisi od izbranega tipa vezja PLA oziroma PAL Pri PLA nas omejuje število konjunkcij in število spremenljivk v konjunkcijah Pri PAL pa še dodatno število konjunkcij v posamični komponenti vektorske preklopne funkcije stran: 35
Primer realizacije s PLA y = x+ x2x3 y2 = xx3 + xx2 y3 = x2x3 + xx2 y4 = x2x3 + x x x 2 x 3 Vemo, da je potrebno število spremenljivk 3: x, x 2, x 3 število različnih konjunkcij (x,x 2x 3,xx 3,xx 2,x2x 3) število izhodnih funkcij elementov vektorske funkcije 4 Kar ustreza številu vhodov v AND elemente, številu izhodov iz AND elementov in številu OR elementov Potrebujemo torej vezje z najmanj tremi vhodi, petimi konjunkcijami in štirimi izhodi > > > > Za določitev povezav vhodnih spremenljivk in povezav med AND in OR poljem uporabimo povezovalno tabelo prirejeno pravilnostno tabelo. y y 2 y 3 y 4 stran: 36
Povezovalna tabela za PLA: Konjunkcije x VHODI x 2 x 3 x x 2 - x x 2 3 - x x 3 - x 2 x 3 - x - - f IZHODI f 2 f 3 f 4 - originalna spremenljivka - komplementirana spremenljivka - spremenljivka ne nastopa v konjunkciji - konjunkcijo si deli več komponent stran: 37
Sprogramirana mreža x x 2 x 3 > > > > Kadar nam elementarna minimizacija ne zadošča, lahko uporabimo kodiranje Z njim občutno zmanjšamo potrebno število AND elementov PLA vezja y y 2 y 3 y 4 stran: 38
Pri tem pristopu v AND polju povezujemo konjunkcije namesto posamičnih spremenljivk Neodvisne spremenljivke pri tem razdelimo v skupine npr. po dve Komponente funkcije je potrebno faktorizirati, da lahko določimo skupine neodvisnih spremenljivk y = xx3 + xx2x4 + x2x3x4 y2 = xxx 2 3 + xxx 2 3 + xxx 2 3 + xxx 3 4 + xxxx 2 3 4 + xxxx 2 3 4 y3 = x2x4 + x2x4 Faktorizacija prinese: y = xx 3 + (x+ x 3)x2x4 y 2 = (xx 3 + xx 3)(x2 + x 4) + (xx 3 + xx 3)xx 2 4 = = (x + x )(x + x )(x + x ) + (x + x )(x + x )x x y 3 = (x2 + x 4) + (x2 + x 4) 3 3 2 4 3 3 2 4 Zlahka uvidimo, da je potrebna delitev v skupini x x 3 in x 2 x 4 Namesto enajst AND elementov, kolikor bi jih potrebovali pri elementarni minimizaciji, jih sedaj potrebujemo samo še pet Za dekodiranje lahko uporabimo standarden demultipleksor, ki ima poleg originalnih tudi negirane izhode Takšno izvedbo pogosto srečamo tako pri demultipleksorju, kot pri multipleksorju, ker se s tem izdatno poveča funkcijska moč teh mnogopolov stran: 39
Za realizacijo te funkcije potrebujemo PLA vezje z najmanj tremi vhodi, petimi konjunkcijami in tremi izhodi x x 3 etodo je mogoče še razširiti, če uporabimo dekodirnike, ki tvorijo samo maksterme x +x 3 x x 3 x 3 D x +x 3 x x 3 x +x 3 V neki skalarni funkciji f(x,x 2,x 3,x 4 ) lahko nastopa na primer skupina spremenljivk x,x 2 x x 3 x +x 3 akstermi teh dveh spremenljivk so: x (x+ x 2),(x+ x 2),(x+ x 2),(x+ x 2) x 4 D 2 x 2 x 4 x 2 +x 2 x 2 x 4 x 2 +x 4 x 2 x 4 x 2 +x 4 x 2 x 3 x 2 +x 4 Če so dekodirniki že vgrajeni v PLA vezje, kot je to primer pri VLSI izvedbah imenujemo takšno mrežo OR-AND-OR mreža, ki v splošnem prinese zmanjšanje celotnega PLA vezja x 2 stran: 4
Pri realizaciji s PAL vezji nas omejuje še število konjunkcij v posamezni komponeti funkcije To število je praviloma manjše od števila AND elementov. Posamezne izvedbe teh vezij se po kompleksnosti lahko zelo razlikujejo med seboj Tako imajo na primer PAL vezja s šestnajstimi vhodi in šestnajstimi konjunkcijaami štiri OR elemente s po štirimi vhodi ali dva OR elementa s po osmimi vhodi Od tu izvira tudi glavna razlika glede realizacije funkcij s PAL vezji v primerjavi s PLA edtem, ko je pri PLA mogoče izkoristiti skupne konjunkcije, tu tega ni mogoče Tipičen primer uporabe PAL vezja je na primer primerjalnik in naj bo le 2-biten Posamezne komponente njegove vektorske preklopne funkcije so: A= B:y = AA BB + AA BB + A A BB + A A BB A B:y = AB + AB + AB + AB 2 A < B:y = AB + A A B + A BB 3 A > B:y = AB + A A B + A BB 4 Te komponente vektorske funkcije so vse v minimalni disjunktivni normalni obliki V njih sicer nastopajo skupne konjunkcije (A B in A B ), vendar tega ne moremo izkoristiti stran: 4
Primerno PAL vezje bo torej edino: A A B B 4 x 6 x 4 A A B B A A B B Ustrezno sprogramirano vezje vidimo na naslednji sliki A A B B A A B B A B A B A B A B A B A A B A B B > > > > - A B A A B A B B - y y 2 y 3 y 4 stran: 42