Viikon VALO #136
Logisim
Logisim on vapaa työkalu loogisten piirien piirtämiseen ja niiden simulointiin.
Logisim on erityisesti logiikan ja piirisuunnittelun alkeiden opiskeluun sopiva työkalu, jolla piirien piirtäminen on helppoa ja joka osaa näyttää piirien toiminnan havainnollisesti. Ohjelmalla voi piirtää erityisesti loogisista porteista koostuvia piirejä, mutta komponenttikokoelmasta löytyy valmiina myös hieman monimutkaisempia komponentteja, kuten eri tyyppisiä muistipiirejä ja aritmeettiseen laskentaan käytettäviä piirejä. Sisään- ja ulostulojen joukosta löytyy myös erilaisia laitteita, kuten peliohjain, näppäimistö, LED-valo, digitaalinäyttöjä, terminaalinäyttö ja LED-matriisi. Ohjelman tärkeimpiä etuja ovat siisti tulostusjälki verrattuna käsin piirrettyihin kaavioihin, helppokäyttöisyys sekä havainnollinen piirin toiminnan simulointi.
Logisimilla onnistuu logiikan perusteiden opiskelu ja havainnollistaminen piirtämällä loogisista lauseista yksinkertaisia piirikaavioita, jotka näyttävät piirin lopputuloksen erilaisilla lähtöarvoilla. Toisaalta, sillä onnistuu myös varsinaisen piirisuunnittelun harjoittelu ja monimutkaisempienkin loogisten piirien, kuten Conwayn "Game of Life"-simulaation tai yksinkertaisen tietokoneen rakentaminen. Ohjelman "Combinational Analysis"-työkalulla puolestaan onnistuu hyvin totuustaulujen, loogisten lausekkeiden ja loogisen piirin yhteyksien havainnollistaminen.
Ohjelman käyttöliittymä koostuu valikosta, sen alla olevasta työkalupalkista, piirtoalueesta, selattavasta listasta, jossa projektin piirit ja käytettävissä olevat valmiit komponentit luetteloidaan, sekä valitun komponentin ominaisuudet esittävästä taulukosta. Piirien piirtäminen on helppoa. Piiriin lisätään komponentteja valitsemalla ne yksi kerrallaan ja lisäämällä ne piirtoalueelle haluttuun kohtaan. Työkalupalkissa ovat valittavissa yksinkertaisimmat usein käytetyt komponentit: input, output, NOT, AND ja OR. Muut valittavissa olevat komponentit löytyvät vasemman reunan listasta tyypin mukaan luokiteltuina. Kytkennät komponenttien välille piirretään yksinkertaisesti raahaamalla hiirellä kytkentä yhden komponentin ulostulosta toisen sisääntuloon. Oletuksena kaikkien komponenttien asettelu on vasemmalta oikealle, eli niin, että niiden sisääntulot ovat vasemmalla ja ulostulot oikealla. Valitun komponentin asentoa voi kuitenkin muuttaa sen ominaisuudet näyttävästä taulukosta kohdasta "Facing". Piirien muokkaaminen, eli komponenttien ja kytkentöjen siirtäminen tai poistaminen, tapahtuu nuolityökalulla.
Piirien piirtämisen lisäksi toinen ohjelman hyödyllinen ominaisuus on piirien toiminnan simulointi, jolla pystytään toisaalta testaamaan piirien toimivuutta ja toisaalta myös käyttämään piirejä. Käden kuvalla merkityllä simulaatiotyökalulla voi tutkia piirin toimintaa esimerkiksi vaihtamalla syöttökomponenttien tiloja tilojen 0 ja 1 välillä. (Syötöt voi määrätä myös kolmiarvoisiksi, jolloin kolmas arvo on x.) Logisim näyttää havainnollisesti kytkennät eri väreillä sen mukaan kulkeeko niissä signaali 1 vai signaali 0. Myös virhetilat ilmoitetaan omalla värillään.
Samaan projektiin voi piirtää useampia piirejä ja piirejä voi käyttää toisissa piireissä alipiireinä, eli itse luotuina komponentteina, joille voi muokata oman havainnollisen komponenttisymbolin. Näin koko projektin voi jakaa pienempiin osiin eikä tarvitse piirtää yhtä valtavan kokoista piiriä. Tämä helpottaa myös, jos piirrettävässä piirissä pitää käyttää toistuvasti jotain samaa alipiiriä, kuten kertolaskupiiriä. Itse tehtyjen komponenttien käyttäminen ei eroa ohjelmassa valmiiksi valittavissa olevien komponenttien käyttämisestä. Usein käytettävistä omista komponenteista voikin tehdä oman kirjaston, jonka tallentaa ohjelman käyttämässä circ-tiedostomuodossa. Tällaisen tiedoston voi sitten ladata uuteen projektiin kirjastona "Project"-valikosta, jolloin tuon tiedoston piirit näkyvät muiden komponenttien tapaan listassa oman otsikkonsa alla.
Ohjelmassa on mahdollista käyttää yhtä bittiä kuljettavien johdinten sijaan myös useamman bitin levyisiä väyliä. Kytkennät itse asiassa kuljettavat automaattisesti niin montaa bittiä kuin komponenttien sisään- ja ulostulot mahdollistavat. Useampibittisen väylän bitit voi myös jakaa haaroittimella eri johtimiin.
"Combinational Analysis"-työkalulla voi tehdä muunnoksia loogisen piirin, sen sisään- ja ulostulojen arvojen erilaiset yhdistelmät kuvaavan totuustaulun sekä ulostulojen arvot sisääntulojen avulla ilmaisevien loogisten lausekkeiden välillä.
- Kotisivu
- http://ozark.hendrix.edu/~burch/logisim/
- Lisenssi
- GNU GPL
- Toimii seuraavilla alustoilla
- Linux, Windows, Mac OS X, FreeBSD, OpenBSD, NetBSD, Solaris
- Asennus
- Linux-jakeluihin ohjelma löytyy todennäköisesti suoraan pakettivarastosta. Muille alustoille ohjelma on ladattavissa ohjelman kotisivuilta. Java-pohjaisena sama ohjelma toimii kaikilla alustoilla, joilla Java on käytettävissä, mutta vaatii Javan asentamisen.
- Käyttöohjeet
- Ohjelma sisältää "Help"-valikossaan hyvän tutoriaalin ohjelman käytön opetteluun. Ohjeet löytyvät myös verkosta. Youtube-palvelusta löytyy myös muutamia Logisimin käyttöön opastavia videoita:
- Muita videoita
- Conwayn "Game of Life" toteutettuna Logisimilla
- Logisim.
- Logisimin käyttöliittymä koostuu varsinaisesta piirtoalueesta, valikosta, nappulapaneelista, projektin piirejä ja käytettävissä olevia komponentteja luettelevasta listasta sekä valitun komponentin ominaisuudet näyttävästä taulukosta. Piirtoalueelle lisättynä neljä sisääntuloa.
- Piirtoalueelle lisättyinä loogiset NOT-, AND- ja OR-portit sekä muutama kytkentä.
- Komponentin ominaisuuksia voi muuttaa. Esimerkiksi komponentin suuntana "East" tarkoittaa, että sisääntulot ovat vasemmalla ja ulostulot oikealle (itään). Kuvassa muutetaan OR-portin sisääntulojen määräksi kaksi.
- Komponenttilistassa on käytettävissä useita erilaisia valmiita komponentteja, kuten esimerkiksi loogiset portit. Kuvassa neljästä sisääntulosta kolme antaa 1-signaalia ja yksi 0-signaalia. Piirin toimintaa simuloidaan samalla. 1-signaalia kuljettavat johtimet näkyvät kuvassa kirkkaan vihreänä ja 0-signaalia kuljettavat tumman vihreänä.
- Komponenttilistasta löytyy myös esimerkiksi muistipiirejä ja erilaisia syöttö- ja tulostuslaitteita.
- Piiriin on lisätty kello, joka antaa vuorotellen signaaleja 1 ja 0. Piiriin on myös lisätty punainen LED-valo.
- Valitun piirin kuvan voi tallentaa png-, gif- tai jpeg-muodossa.
- Logisim sisältää help-valikossa melko kattavan oppaan ohjelman käytöstä.
- Ohjelmalla voi piirtää useampia erillisiä piirejä samaan projektiin. Kuvan projektissa on piirretty piirit "main" ja "valo1".
- Projektin piirejä voi käyttää muissa piireissä komponentteina, eli alipiireinä. Tässä "valo1" piiriä on käytetty yhtenä komponenttina "main"-piirissä. Oletuksena itse tehty komponentti näkyy laatikkona, jossa on piirin mukainen määrä sisään- ja ulostuloja.
- Itse tehdyn piirin ulkoasua alipiirinä voi muokata muokkaustilassa. Oikeassa alakulmassa näkyy "valo1"-alipiirin rakenne ja piirtoalueella näkyy, miltä se näyttää alipiirinä käytettynä.
- "valo1"-alipiiri muokatulla ulkoasulla.
- "Combinational Analysis"-työkalulla piirin loogisen toiminnan voi syöttää sisään- ja ulostulojen muodostamana totuustauluna. Työkalu osaa generoida tästä suoraan piirin kytkentäkaavion. Generoitavan piirin komponenteissa voidaan niin valittaessa käyttää myös vain korkeintaan kaksisyötteisiä komponentteja tai vain NAND-komponentteja.
- "Combinational Analysis"-työkalu osaa kertoa totuustauluna syötetyn ulostulon loogisena lausekkeena. Ulostulon voi myös syöttää loogisena lausekkeena.
- Ulostulojen lausekkeet voidaan normalisoida disjunktiiviseen tai konjunktiiviseen normaalimuotoon Karnaughn karttojen avulla.
Teksti: Pesasa
Kuvakaappaukset: Pesasa