Signaalinkäsittelytekniikan laboratorio
Digitaalitekniikan perusteet - luento 7
Multiplekseri on kombinaatiopiiri, joka tiettyjen valintaehtojen mukaan yhdistää monesta
binääridataisesta otosta yhden kerrallaan antoon. Valintaa ohjaa joukko valintaottoja (selection
inputs). Tyypillisesti piirissä on n kpl valintaottoja, jotka ohjaavat, mikä
2nstä dataotosta kulloin pääsee piirin antoon.
Alla esitellään yksinkertainen 4 -> 1 ottovalitsin. Merkintä tarkoittaa, että piirissä on
neljä dataottoa, joista yksi kerrallaan pääsee antoon. Koska dataottoja on neljä, tarvitaan
2 valintaottoa (koska 4 = 22, joiden kombinaatio siis määrää, mikä dataotoista kulloinkin pääsee piirin
antoon.
Tässä esitellään kaksi tapaa toteuttaa ottovalitsin. Ensimmäisessä käytetään peruspiirejä
(AND ja OR -portteja sekä inverttereitä eli NOT-portteja), jälkimmäisessä siirtoportteja (TG). Molemmissa tapauksissa
perusidea on, että kunkin valintakombinaation aikana vain sitä vastaava dataotto pääsee data-antoon
ja muiden yhteys estetään:
MUX perusporteilla |
MUX siirtoporteilla |
Monimutkaisempiin logiikkapiireihin lisätään usein otto, joka kontrolloi piirin toimintaa.
Tätä ottoa sanotaan sallintaotoksi ja sitä merkitään yleensä lyhenteellä EN. Sallintaoton toiminta
on yksinkertainen: otto joko estää tai sallii piirin varsinaisen toiminnan. Periaatteessa voidaan
esittää, että jos EN=0, piiri ei tee mitään ja toisaalta jo EN=1, piiri toimii normaalisti. Kaavamuodossa
siis näin:
EN=0 -> Y=0
EN=1 -> Y=Di
Otto voi kuitenkin toimia negaatiolla, joten sen toiminta kannattaa tarkistaa jokaisessa tapauksessa
erikseen.
Tavallisen ottovalitsimen tapauksessa sallintaotto merkitään allaolevan kaavion mukaan. Vieressä
oleva totuustaulu esittää, miten otto vaikuttaa piirin toimintaan:
Ottovalitsinta käytetään kytkentäfunktion toteuttamiseen silloin, kun kytkentäfunktio
on monimutkainen ja sievenee huonosti tai kun halutaan välttää turhaa itse-rakentamista
ja valmiskomponenttien
määrää. Ottovalitsin on yleislogiikkapiiri. Nyrkkisääntönä voidaan käyttää sitä, että N:llä
valintaotolla varustetulla MUXilla voidaan toteuttaa N+1 muuttujan funktio.
N+1 muuttujan totuustaulun mukaan N suurinta, tai eniten merkitsevää muuttujaa (eli totuustaulussa N kpl muuttujia vasemmalta päin luettuna)
kytketään multiplekserin valintaottoihin. Dataottoihin kytketään joko 1, 0, vähiten merkitsevä muuttuja tai sen
komplementti. Tällä menettelyllä säästetään ottovalitsimen koossa yhden kakkosen potenssin
verran. Esimerkki selventänee asiaa:
Käsitellään kolmen muuttujan funktiota F(X,Y,Z)=minimien summa(1,2,6,7)
Koska muuttujia on kolme, tarvitaan kaksi valintaottoa (koska 22 = 4 > 3). Valintaottoihin menevät eniten merkitsevät
muuttujat eli X ja Y. Kahdella valintaotolla taas voidaan muodostaa neljä eri kombinaatiota. Tämä
tarkoittaa, että MUXin koko on 4 ->1. Piirretään funktion totuustaulu ja jaotellaan totuustaulu kahden rivin pätkiin: (Tämä siksi, että näillä kahdella rivillä on viimeinen muuttuja (vähiten merkitsevä muuttuja) aina sama)
|
Totuustaulusta nähdään, että funktion arvo jokaisella kahden rivin kokonaisuudella on ilmaistavissa joko kiinteänä ykkösenä tai nollana tai Z-muuttujan avulla (Z suoraan tai komplementoituna). Viimeinen sarake taulussa (dataotto -sarake) kertoo dataottoon kulloinkin tulevan signaalin. Funktion varsinainen toteutus näyttää siis seuraavalta (kuvassa kytkentäkaavio): |
Yleislogiikkapiireistä voidaan usein räätälöidä alkuperäisiä suurempia kokonaisuuksia
tarpeen mukaan. Oikealla on esimerkki ottovalitsimen laajennuksesta. Laajennussäännöt ovat
yleensä yksinkertaista kytkentäalgebraa, ajatteleminen auttaa.
Kuvassa kahdesta 4 -> 1 MUXista on muodostettu yksi 8 ->1 MUX. Ottosignaali S2 määrittää onko käytössä ylempi vai alempi MUX, sillä se on kytketty molempien MUXien enable-ottoon.
Ottovalitsimen vastakohtana voidaan pitää antovalitsinta. Se on yleislogiikkapiiri, joka yhdistää
oton yhteen monesta annosta. Muut annot ovat vakiotilassa. (Sovittu joko 0 tai 1.) Antovalitsin on
toimintansa puolesta sama piiri kuin sallintaotolla varustettu dekooderi. Alla on yksinkertainen
esimerkki 1 -> 4 antovalitsimesta.
Logiikkapiirien piirrosmerkeistä on kaksi koulukuntaa. Tällä kurssilla käytetään IEC:n
kansainvälisiä suorakulmaisia merkkejä. Toinen vaihtoehto on perinteiset amerikkalaiset merkit,
joissa portit erotellaan toisistaan lähinnä merkin muodon mukaan. IEC:n merkit ovat aina suorakulmaisia,
sivujen suhde on vapaasti määriteltävissä. Otot ovat vasemmalla, annot oikealla. Perusporttipiirien
piirrosmerkinnät on esitetty aikaisemmin. Tässä käsitellään yleisiä sääntöjä sekä hieman monimutkaisempia
komponentteja. Alla on esimerkkejä merkinnöistä ja merkkien yhdistämissäännöistä:
Ottoihin ja antoihin liittyvät merkinnät(Jos merkintä vaikuttaa oudolta, se liittyy todennäköisesti aikariippuvaan komponenttiin, joita käsitellään myöhemmin kurssilla..) |
|||||||||||||
|
Dekooderiesimerkki |
On joukko yleislogiikkapiirejä, joissa on samassa piirissä useita samanlaisia osia (lohkoja) ja näillä yhteisiä signaaleita. Tällöin yhteiset signaalit merkitään erikseen yhteiseen ohjauslohkoon ja kaikki erilliset osat kasataan tämän lohkon alle. Yhteisen ohjauslohkon omaavia komponentteja käsitellään kurssin loppupuolella.
Nelikko yksi kahdeksasta valikko (eräs ottovalitsintyyppi) |
|
Muita piirrosesimerkkejä | |
4-bittisen binäärisummaimen piirrosmerkki |
1->8 MUXin piirrosmerkki |
Samoissa komponenteissa on usein eriarvoisia ottoja ja antoja. Sanotaan, että otto tai anto
on riippuvainen jostain. Riippuvuus esitetään yleensä kirjainlyhenteellä ja numerolla siten, että
hallitsevassa otossa (annossa) on sama merkki kuin hallinnan alaisessa otossa (annossa). Merkintä on
keskeinen logiikkapiirien piirrosmerkintäjärjestelmässä. Ehkä yksinkertaisin tapaus on riippuvuus
kello-otosta, joita käsitellään aikariippuvaisissa piireissä.
Alla esitellään yleisimmin käytetyt riippuvuusmerkinnät. Näiden osaamista tärkeämpää on ymmärtää
riippuvuuden periaate. Riippuvuus on tavallaan kyseisen oton enablointi: otto voi toimia vain, jos
sitä hallitseva otto on suotuisassa tilassa.
Merkintä | Riippuvuus | Käyttö |
---|---|---|
A | Osoite | Muistipiirien osoiteotoissa |
C | Ohjaus | Sekvenssipiirin kello-otoissa |
EN | Sallinta | Signaalin aktiivisuuden sallinta |
G | JA | JA-funktio muun signaalin kanssa |
M | Toimintatapa | Valitsee toimitavan useista erilaisista |
N | Negaatio | Invertoi signaalin (EHDOTON TAI) |
R | Nollaus | Nollaa signaalin (sekvenssipiireissä) |
S | Asetus | Asettaa signaalin 1-tilaan (sekvenssipiireissä) |
V | TAI | TAI-funktio muun signaalin kanssa |
X | Kytkentä | Siirtoportin kytkennän sallinta |
Z | Siirto | Piirin sisäisissä kytkennöissä |
Kuvassa esitetään komponentti, jossa on kaksi hallitsevaa ottoa (X, Y) ja kolme näistä hallitsevista otoista riippuvaa hallinnan alaista ottoa.
Hallitsevat otot numeroidaan 1 (X) ja 2 (Y). Vastaava numero merkitään alisteisten ottojen kohdalle ilmaisemaan, mille hallitsevalle
otolle toinen otto (A, B tai C) on alisteinen. Tässä esimerkissä otot A ja B ovat alisteisia hallintaotolle X, kun taas otto C on alisteinen hallintaotolle Y.
Tähän mennessä kurssilla on käsitelty kombinaatiopiirejä. Kombinaatiopiireissä antosignaalien arvot
riippuvat vain kytkentäfunktion määräämällä tavalla ottosignaaleista. Sekvenssipiireissä
antosignaalien arvot riippuvat myös piirin tilasta, johon vaikuttavat myös piirin aikaisemmat
ottosignaalit ja tilat. Puhutaan, että piiri on aikariippuvainen. (Sekvenssipiirin toinen nimitys on aikariippuvainen
piiri.)
Sekvenssipiirin erityisyys on, että se kykenee tallettamaan ja muistamaan oman tilansa. Tästä
siis johtuu aikariippuvuus. Sekvenssipiireissä on sisäisiä takaisinkytkentöjä. Näillä kytkennöillä
säilytetään piirin tila erityisissä muistikomponenteissa. Sekvenssipiirin yksinkertainen yleismerkki on kuvattu
oikealla. Ylimääräinen silmukka tarkoittaa sisäistä takaisinkytkentää. Sillä siirretään piirin tila
uudestaan takaisin piiriin.
Sekvenssipiirejä on kahden tyyppisiä: asynkronisia ja synkronisia. Näistä synkroniset ovat yleisempiä
paremman luotettavuutensa vuoksi. Asynkronisessa piirissä piirin tila vaihtuu ottosignaalin vaihtuessa.
(Eli heti, kun piiriin tulee uutta dataa, päivittää piiri tilansa.) Synkronisessa sekvenssipiirissä
piiri vaihtaa tilaansa erityisen kellosignaalin tahdissa, eli aina tietyin tasaisin väliajoin.
Sekvenssipiirit sisältävät aina tavallisen kombinaatiopiirin. Asynkronisessa sekvenssipiirissä on tämän
lisäksi takaisinkytkentä. Synkronisessa sekvenssipiirissä on takaisinkytkennän lisäksi vielä tilarekisteri.
Tilarekisteri on piirin osa, jonka tehtävänä on säilyttää sisään saamaansa dataa, kunnes se kellosignaalin
tahdissa antaa tallettamansa datan muun piirin käyttöön. Alla on esitetty rakennekaaviot tavallisesta
kombinaatiopiiristä, asynkronisesta sekvenssipiiristä sekä synkronisesta sekvenssipiiristä.
Salvat ja kiikut ovat yksinkertaisia sekvenssipiirejä, jotka pystyvät muistamaan niihin
talletetun tilan. Salvat ovat näistä yksinkertaisempia ja niiden toiminta on suhteellisen
rajoittunutta. Kiikut ovat salpoja monimutkaisempia, mutta luotettavampia. (Suosittelemme
kiikkujen käyttöä piirisuunnittelussa..) Kiikkuja käytetään synkronisten sekvenssipiirien
tilarekistereinä. Ne tallettavat piirin tilan kellojakson ajaksi. Kiikkujen etu salpoihin nähden
on se, että ne muuttavat tilaansa vain kellojakson tahdissa. Salvat tarkastelevat
ehtoinaan vain tavallisia ottosignaaleja ja saattavat muuttaa tilaansa myös kesken kellojaksoa ts. asynkronisesti.
Salpojen ja kiikkujen toiminta on suoraviivaista: ne muuttavat antosignaaliaan sen mukaan, minkälaisia
kombinaatioita ottosignaaleista ne saavat sisäänsä. (Tosin kiikut siis vain kellosignaalin tahdissa.)
Jokaisella salpa- (kiikku) tyypillä on toimintakaavio, jonka mukaan salpa (kiikku) käyttäytyy.
Salvoilla (kiikuilla) on joukko ottoja, joiden nimet ilmenevät tyypillisesti salvan (kiikun) nimestä.
Antoa merkitään Q kirjaimella. Yleensä ilmoitetaan sekä Q että Q'. Tässä yhteydessä esitellään lyhyesti
2 yksinkertaista salpaa. Kiikkuja käsitellään seuraavalla luennolla.
SR-salpa on sekvenssipiireistä yksinkertaisin. Se voidaan toteuttaa joko TAI-EI (NOR) tai
JA-EI (NAND) porteilla. SR-salvalla on kaksi ottoa: S (Set) ja R (Reset). Kun ottosignaalit ovat S=1 ja R=0, salpa asettaa tilansa ykköseksi (siis Q --> 1 ja Q' --> 0).
Päinvastaisessa ottosignaalien tapauksessa (S=0, R=1) salpa nollaa tilansa (siis Q-->0 ja Q'-->1). Tilassa 00 anto pysyy vakiona eli piiri ei näytä tekevän mitään.. Tila 11 on ns.
kielletty tila. Sitä ei ole määritelty ja piirin toiminta häiriintyy, jos salpa joutuu kyseiseen tilaan (suunnittelijan pitää siis huolehtia, että näin ei pääse tapahtumaan). Kyseisessä tilassa voi antosignaali (Q) saada kummantahansa arvon (0 tai 1) ja kumman arvon se saa, sitä ei voi etukäteen tietää!
Alla on esitetty SR-salvan piirrosmerkki, piirikaavio (eli kuinka salpa on mahdollista
toteuttaa peruspiireillä) sekä toimintakaavio:
SR-salvan piirrosmerkki. Huomaa, että yleistunnusta ei ole. Kirjaimet ottojen kohdalla
kertovat, mistä komponentista on kyse.
|
SR-salvan piirikaavio |
SR-salvan toimintataulukko |
Kello-oton lisääminen salpaan tarkoittaa, että salpa toimii normaalisti vain silloin, kun
kellosignaali on aktiivinen (CLK = 1). Tällöin piiri nukkuu kellosignaalin passiivisen ajan,
eikä tuolloin reagoi ottosignaalien muutoksiin. Alla on kuvattu kello-otollisen SR-salvan
piirrosmerkki, piirikaavio ja toimintakaavio. Kannattaa huomata piirrosmerkissä S ja R ottojen
riippuvuus kellosignaalista. Riippuvuus on esitetty numerovastaavuudella:
Kellosignaalihan on luonteeltaan jaksollista vaihtelevaa signaalia (signaali on vuorotellen 1 ja 0). Siinä on aktiivinen (CLK=1) ja passiivinen (CLK=0) osuus. Jaksonaika on vakio (mikä se sitten kyseisellä kellolla onkaan)
Kello-otolla varustetun SR-salvan piirrosmerkki |
Kello-otolla varustetun SR-salvan piirikaavio |
Kello-otolla varustetun SR-salvan toimintataulukko |
Äskeisessä SR-salvassa esiintyi ongelmatila ottosignaalien kombinaation ollessa S=1, R=1. Jos piiri jostain syystä joutuu kiellettyyn
tilaan, menee piirin toiminta sekaisin. D-salvassa tilanne on korjattu estämällä pääsy kiellettyyn
tilaan asettamalla D=S=R'. D-salpa siis toimii samoin kuin SR salpa paitsi että virhetoiminta
kielletyn tilan suhteen on estetty. Tämä toisaalta tekee piiristä monimutkaisemman. Alla on esitetty
D-salvan piirrosmerkki, piirikaavio ja toimintakaavio.
Siis kun kellosignaali on alhaalla (CLK=0), ei piiri reagoi ottosignaali D:n muutoksiin. Kun taas kellosignaali on ylhäällä (CLK = 1), määräytyvät antosignaalien Q ja Q' arvot ottosignaali D:n mukaan seuraavasti. Kun D=0 (ja CLK=1) salpa nollautuu eli Q-->0 ja Q'-->1
Mikäli taas D=1 (myös CLK=1 samalla), piiri asettaa tilansa eli Q-->1 ja Q'-->0.
D-salvan piirrosmerkki. |
D-salvan piirikaavio |
D-salvan toimintataulukko |
Kello-otolla varustetun salvan tapuksessa on muistettava, että kello-otto hallitsee salvan muita ottoja.
Salvan muut otot siis toimivat vain kellopulssin mukana. Tämä näkyy piirin toiminnassa siten, että
piiri reagoi ottosignaalin muutoksiin vain kellon "aktivoidessa" salvan (CLK=1). Tässä on esimerkkinä kuvattu
kello-otolla varustetun D-salvan aikakaavio HUOM! Mikäli CLK=0, ei piirissä tapahdu mitään eli antosignaalit eivät vaihda arvoaan tällöin:
Tämän sivun sisällöstä vastaa
aura@wooster.hut.fi URL: http://signal.hut.fi/digis/printtaa/luento7/luento7.html Sivua on viimeksi päivitetty 8.11.2004. |