Mikolas Hämäläinen bio photo

Mikolas Hämäläinen

Tekniikasta, tieteistä ja maailmasta innostunut ATK-säätäjä.

Twitter Facebook LinkedIn Github Last.fm

Ennen kuin aloitellaan, on hyvä laittaa välineet kuntoon. Oma setuppini koostuu muutamasta eri protolaudasta, mutta nykyään pääasiallinen työväline on Alteran DE2 -lauta. Tai siis Terasicin DE2 -lauta, mutta tuo on siis Alteran “virallinen” protolauta. Tämä myös tarkoittaa sitä, että kehitysympäristönä toimii Alteran Quartus II -ohjelmisto joka hanskaa Verilogin, VHDL:n ja SystemVerilogin käyttämisen koodihommissa. Näiden lisäksi täytyy näprätä kasaan myös firmwarea järjestelmään jotta sillä FPGA:n sisuksissa elävällä prosessorilla on jotain tekemistä. Vaikkakin preferoin yleensä Windowsin käyttöä, on omien hermojen säästämiseksi näissä projekteissa käytössä Linux. Tämä siksi, että nuo GNU-työkalut ristiinkäännöksiin toimivat huomattavasti helpommin kun pitää saada firmiskoodia tehtyä joko tuolle Motorolan 68000 prossulle tai vaikkapa OpenRiscille. Quartus onneksi löytyy myös Linuxille, joskin muutamia manuaalisia säätöjä joutuu tekemään, jotta FPGA-sirun ohjelmointi menee jouhevasti.

Lue lisää: Meikäläisen devilaudat

Omassa setupissani on myös käytössä pari näyttöä. Yhdelläkin pärjää, mutta viimeistään pitkissä debuggaussessioissa tahtoo pinta-ala loppua kesken kun pitäisi yhtä aikaa saada näkyviin paitsi koodi, myös signaalikäppyrät ja vaikkapa sarjaterminaalin tulosteet. Lisäksi käytössä on pari taskulaskinta (HP:n 35s ja TI:n TI-86) joista TI-86 osaa piirtää käppyröitä (jotka on oikein hyödyllisiä kun aletaan hakkaamaan päätä seinään passiivisen elektroniikan ja lineeristen piirien kanssa). Numeroita joutuu vähän väliä ynnäilemään näissä hommissa, joten workflow on huomattavasti suoraviivaisempi oikean laskimen kuin tietsikan laskimen kanssa ALT-TABia takoessa. Mitä paremmat vehkeet, sitä iisimpää ja hermoja säästävämpää työskentely on. Tarkoittaa myös sitä että välineurheilun hengessä sitä rahaa joutuu hieman käyttämään.

Noista FPGA-laudoista pitää nyt todeta se, että minun mielestäni on parempi hommata vähän ylivarusteltu malli kuin joku kympin sokkolauta eBaysta. Halvalla saa tosiaan kaikenlaista, mutta jos tarkoitus on keskittyä siihen logiikkaohjelmointiin niin jälleen aikaa ja hermoja säästyy kun kehityslaudalla on tarvittavat I/O:t ja muistit valmiina. Yleensä silloin myös varsinaisella FPGA-sirulla on riittävästi kapasiteettia isommankin designin tekemiseen. Tuossa primäärissä Altera-laudassani on puoli megaa staattista muistia, 8 megaa SDRAMia, sarjaportti, USB, ethernetliitin, VGA-liitin DACeineen ja PS/2 näppis/hiiriportti valmiina, joten aloittaminen helpottuu huomattavasti.

Nuo Terasicin Alteralle valmistamat laudat ovat muutenkin harrastelijapiireissä nykyään suosittuja, joten Google osaa avustaa huomattavasti enemmän kuin epämääräisten hikipajojen lautojen kanssa1. Ja tietenkin dokumentaatio on ensiluokkaista, vs. eräätkin kiinalaiset ohjeläpyskät joita eteen on tullut. Sellainen pikku asia pitää toki huomioida, että nuo komponentit ovat tosiaan vaan olemassa laudalla eivätkä tee yhtikäs mitään ilman sitä logiikkaa jonka koodaat. Eli ruutuun ei tule kivaa BIOS-ruutua kun laudan lyö päälle vaan monitorin näkövinkkelistä mitään ei ole näyttöpiuhan päässä.

Nyt kun oletetaan, että on kourassa tarvittavat ATK-ohjelmistot ja lauta jota ohjelmoida, pitääkin palauttaa mieleen mitä oltiin tekemässä. Eli se Motorolan 68000 -prossu ja läjä muuta tavaraa. Tästä päästäänkin seuraavaan osaan, siis speksailuun.