Signaalinkäsittelytekniikan laboratorio
Digitaalitekniikan perusteet - luento 7


Ottovalitsin eli multiplekseri (MUX)

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.

Ottovalitsimen toteutus

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

Sallintaotto (enable, EN) ottovalitsimessa

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:


Kytkentäfunktion toteutus ottovalitsimella

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:

Esimerkki kytkentäfunktiosta MUXilla toteutettuna

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)

X Y Z F data-
otto
selitys
0
0
0
0
0
1
0
1
Z koska F=Z
0
0
1
1
0
1
1
0
Z' koska F=Z'
1
1
0
0
0
1
0
0
0 koska F=0
riippumatta Z:sta
1
1
1
1
0
1
1
1
1 koska F=1
riippumatta Z:sta

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):

Ottovalitsimen laajennus

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.

Antovalitsin

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ä

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..)

 
MerkintäKäyttötarkoitus ja merkitys
Alhaalla aktiivinen otto ja anto
Looginen negaatio otossa ja annossa
(alhaalla aktiivinen otto ja anto)
Sallintaotto: sallii kaikki piirin annot.
Dynaaminen otto (reunaliipaistava kiikku)
Puskurianto

Dekooderiesimerkki

Merkkien yhdistämissäännöt:

Esimerkkejä yleislogiikkapiirien piirrosmerkeistä
ja niitä koskevista säännöistä

Yhteinen ohjauslohko

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


Riippuvuusmerkinnöistä

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.

Riippuvuusmerkinnät

MerkintäRiippuvuusKäyttö
AOsoiteMuistipiirien osoiteotoissa
COhjausSekvenssipiirin kello-otoissa
ENSallintaSignaalin aktiivisuuden sallinta
GJAJA-funktio muun signaalin kanssa
MToimintatapaValitsee toimitavan useista erilaisista
NNegaatioInvertoi signaalin (EHDOTON TAI)
RNollausNollaa signaalin (sekvenssipiireissä)
SAsetusAsettaa signaalin 1-tilaan (sekvenssipiireissä)
VTAITAI-funktio muun signaalin kanssa
XKytkentäSiirtoportin kytkennän sallinta
ZSiirtoPiirin sisäisissä kytkennöissä

Riippuvuusmerkintäesimerkki (JA-riippuvuus)

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.



Sekvenssipiireistä

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

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

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

SR-salpa kello-otolla varustettuna

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


Kello-otolla varustettu D-salpa

Ä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:

edellinen sivu       Paluu päävalikkoon


Paluu päävalikkoon

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.