Mooren kone -toteutus monimutkaiselle valomainokselle
Piirin ASM-kaavion teko lähtee liikkeelle valomainoksen tyhjän taulun tilasta (= EI -tila) seuraavasti:
EI-tilassa pitää haarautua sen mukaan, pysytäänkö entisessä
tilasekvenssissä (tilakierrossa, jossa kaikki valot syttyvät erikseen 2 sekunnin välein) vai mennäänkö tilaan, jossa kaikki valot palavat 6 sekuntia. Näin ollen EI ja HJK (= kaikki sanat palavat) välille
tulee kaksi erilaista tilakiertomahdollisuutta. Molemmat tilakierto mahdollisuudet tarvitsevat kaksi tilaa. Lisäksi tilakierroille on yhteistä ensimmäinen (EI-tila) ja viimeinen (HJK-tila) tila. Tästä johtuen =>
Tilakoneeseen tarvitaan yhteensä kuusi tilaa (ks. ASM-kaavio alla). Tästä johtuen tilakoodin pituudeksi tulee kolme bittiä (joilla saadaaan toteutetuksi 23=8 tilaa):
|
KAIK-signaali määrää EI -tilasta lähdettäessä, kumpaan haaraan mennään. Sekvenssin vaihto
yhden tietyn haaran aikana ei ole mahdollista. (Muitakin toteutusmahdollisuuksia olisi). Piirin lohkokaavio on esitetty alla.
Kiikkuja tarvitaan kolme, koska tilabittejä on 3 (ja tiloja siis 6). Tässä on valittu D-kiikku toteutus, mutta se ei suinkaan ole ainoa vaihtoehto
|
Tilataulukko
|
Seuraavaksi muodostetaan ASM-kaaviosta tilataulukko, joka on esitetty vasemmalla. Tilataulukkohan muodostettiin seuraavasti:
Lähdetään ASM-kaavion ensimmäisestä tilasta (tilakoodi = 000), jonka tilakoodii tulee tilataulukon nykytilaksi (Q2, Q1 ja Q0).
Sitten merkataan uudeksi tilaksi (D2, D1 ja D0) sen tilan tilakoodi johon siirrytään (tilakoodi 001), sekä lisäksi annot, jotka vaikuttavat mihin tilaan siirrytään (AINA = X, KAIK=0).
Mikäli ottosignaalilla ei ole merkitystä tilasiirtymään, merkataan sen kohdalle X. (Näin
saadaan tilataulukko lyhyemmäksi ja saadaan sievennysvaiheessa mahdollisesti sievempiä lausekkeita --> kuluu vähemmän portteja.) Tässä tapauksessa jää kaksi tilaa jää käyttämättömiksi (100, 111), sillä 3:lla tilabitillä saatiin 8 tilaa ja niistä käytetään vain 6. Nämä
tilat otetaan kuitenkin mukaan tilataulukkoon, jotta tilataulukko kuvaisi yksiselitteisesti piirin toiminnan. Lisäksi laitteen täytyy pystyä poistumaan käyttämättömästä tilasta jos se syystä tai toisesta siihen joutuu. Uusi tila määritellään siis siten, että käyttämättömistä
tiloista päästään pois ja palataan johonkin käytössä olevaan tilaan. Tässä tapauksessa siirto on hoidettu s.e. palataan johonkin tilaan, jonka ensimmäinen
bitti on nolla. Muuten ehtoja ei ole asetettu, jotta toiminta ei mutkistaisi piirin toteutusta.
Tilataulun annot, ovat antosignaalit, jotka liittyvät nykytilaan. (Ne saadaan siis ASM-kaavion neliöiden sisältä)
|
Kiikkujen ottosignaalit ja antojen lausekkeet
Määritellään Karnaugh'n kartan avulla tilataulukosta lausekkeet D-kiikkujen otoille (jotka ovat siis samat kuin D2, D1 ja D0). Tässä tarvitaan kolme kappaletta 5:en muuttujan Karnaugh'n karttoja, sillä D-ottoja on 3 (D2, D1 ja D0) ja muutuujia on 5 (Q2, Q1, Q0, AINA ja KAIK):
D2 = KAIKQ0'Q1'Q2' + Q0Q1'Q2
|
D1 = Q0Q1' + Q0'Q1 + AINAQ1
|
|
: HERK = Q0 + Q1
|
: JASK = Q0Q2' + Q1
|
: KUPP = Q0Q2'+ Q1Q2'
|
Kombinaatiopiiri
|