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

Teksti: Pesasa
Kuvakaappaukset: Pesasa