Digitaalipiirit/Tilakoneet

Tilakoneet

muokkaa

Abstraktisti, tilakone on järjestelmä, jota voidaan kuvata tiloina ja niiden muutoksina. Tilakone muuttaa tilaansa riippuen sen tämänhetkisestä tilasta sekä sen ulkoisista tuloista.

Konkreettisesti tilakoneita luodessa, tavoitellaan järjestelmää, joka luo tiettyjä ulostuloja tiettyjen periaatteiden mukaisesti. Erikoista tilakoneessa on, että se sisältää muistia. Toisin kuin looginen portti, jossa ulostulo on täysin riippuvainen sisääntulosta, tilakone kykenee muistamaan edellisen tilansa, ja vaihtaa tilaansa sen mukaisesti. Tälläistä logiikkaa kutsutaan myös sekvenssilogiikaksi.

Tilakonetta voi abstraktimmalla tasolla ajatella myös yleisenä suunnittelumallina. Esimerkiksi käyttöliittymiä tehdessä, voidaan sanoa, että käyttöliittymän eri näkymät ovat saman ohjelman eri tiloja. Tälläinen osiin jakaminen on ohjelmoinnissa usein selkeyttävä ja haluttu prosessi.

Aikakaavio

muokkaa
 
Aikakaavio (Timing diagram), jolla esitetään sekvenssipiirin kiinnostavien signaalien käyttäytyminen graafisesti ajan funktiona.


Aikakaaviossa (oik.) (timing diagram) kuvataan piirin signaalien käyttäytymistä ajan funktiona. Kaaviosta näkee myös nopeasti mitkä signaalit suoraan vaikuttavat toisten signaalien muutoksiin, ja näitä voidaan myös merkitä apunuolilla. Aikakaaviossa on myös mahdollista esittää piirien viiveet.

Aikakaavio sopeutuu erityisesti yksinkertaisten ja pienten logiikoiden esittämiseen, sillä logiikan monimutkaistuessa myös aikakaaviosta tulee tarpeettoman epäselvä. Paras sovellus aikakaavioille on sekvenssipiirejä sisältävien laitteiden huolto-ohjeet, sillä niissä on hyvin tarkoin määritellä signaalien käyttäytymistä tietyissä tilanteissa - tämä helpottaa laitteen soveltamista ja huoltamista. Aikakaavioita on myös piirin logiikkaa simuloivissa ohjelmissa, kuten Xilinxin ISE:n waveform.

Virtaustaulu

muokkaa

Sekvenssipiirin käyttäytymistä voidaan esittää myös erilaisilla virtaustauluilla. Tilat esitetään näissä usein jonkinlaisina kirjoitusmerkkeinä tai numeroina. Virtaustaulut soveltuvat parhaimmin sekvenssipiirien suunnittelun alkuvaiheeseen, sillä niiden soveltaminen ei vaadi piirin tilasignaalejen tai itse piirin toiminnan tuntemista. Virtaustauluissa on vaakarivi jokaista tilaa kohti ja pystyrivi jokaista mahdollista tulon kombinaatiota kohti. Vaakarivi kertoo, missä tilassa piiri on. Vastaavat tilansiirrot merkitään myös viereiselle vaakariville, ja lähtösignaaleja vastaaville pystyriveille merkitään niiden arvot eri tiloissa. Primitiiviseksi tilatauluksi kutsutaan asynkronista sekvenssipiiriä, jolla on jokaisella vaakarivillä yksi stabiili tila, eli tila joka ei muutu ennen kuin jokin piirin tulosignaali muuttuu. Virtaustauluissa lähtösignaalit riippuvat vain tiloista. Lopulta piirin lähdöt riippunevat tilasignaalien lisäksi myös tulosignaaleista, mikäli näin halutaan tehdä suunnittelun aikana.


Primitiivinen virtaustaulu
Tila AB
ZW
00011110
1 1235 00
2 1235 01
3 1435 11
4 1435 01
5 1465 11
6 1265 00


Yllä on esimerkki primitiivisestä virtaustaulusta. Taulukosta nähdään, että piirin ollessa tilassa 1 se pysyy siinä, jos tulot ovat 00, ja mikäli tulot ovat 01, siirtyy piiri tilasta 1 tilaan 2. Tulojen arvoilla 11 siirrytään tilaan 3 ja niiden arvoilla 10 tilaan 5. Lisäksi nähdään, että lähtöjen arvot tilassa 1 ovat 00.

Tilakaavio

muokkaa

ASM-kaavio

muokkaa

Tilataulu ja lähtötaulu

muokkaa

Mealyn Kone

muokkaa

Mooren kone

muokkaa