TIETOKONETEKNIIKAN LABORAATIOT V2.0 VHDL ohjelmoinnin perusteet Työ: VHDL ohjelmoinnin perusteet & Quartus II ohjelmiston käyttöönotto Tehnyt: Kari Huovinen Pvm: 26.4.2006 Lisäyksiä: Harri Honkanen 13.09.2007
SISÄLLYSLUETTELO 1. PORTTIPIIRIKYTKENTÖJÄ... 3 2. KÄYTETTÄVÄT VÄLINEET... 3 3. TYÖN SUORITUS... 3 3.1 Quartus II ohjelmiston asentaminen ja käyttöönotto... 3 3.2 Projektin luonti... 7 3.3 NAND portin toteuttaminen VHDL-kielellä... 10 3.4 Piirin pinnien kytkennät...12 3.5 Ohjelmointi...15 3.6 Quartus II Web Edition ohjelmiston tärkeimmät työkalut/ominaisuudet. 17 LIITTEET Liite: EPM3032A-Proto schematic-kuva
3 1. PORTTIPIIRIKYTKENTÖJÄ Tässä työssä tutustutaan porttipiirikytkentöjen toteuttamiseen CPLD/FPGA ympäristössä toteutettuihin kytkentöihin. Työselostuksessa on esitetty Quartus II Web Edition ohjelmiston käyttöönotto, sekä sen peruskäyttö. 2. KÄYTETTÄVÄT VÄLINEET Työn suorittamiseen tarvittiin - EPM3032A-Proto kytkentäalusta - ALTERA Quartus II Web Edition 5.1 ohjelmisto - ByteBlaster II ohjelmanlatauskaapeli - +12V DC-virtalähde 3. TYÖN SUORITUS 3.1 Quartus II ohjelmiston asentaminen ja käyttöönotto Quartus II ohjelmisto voidaan asentaa joko kaupallisen Alteran alustan mukana tulleelta cd:ltä tai lataamalla se Alteran kotisivuilta (www.altera.com), joka on maksutonta. Esimerkissä ohjelma asennettiin Alteran kotisivuilta ladattavasta paketista. Kuvassa 1 esitetään lataussivusto, jolta kyseinen ohjelma ladataan. Ennen kuin ohjelmaa pääsee lataamaan, pitää täyttää muutamia henkilötietoja, joten on suositeltavaa, että samalla rekisteröityy Alteran sivujen käyttäjäksi, jolloin tietoja ei tarvitse vastaisuudessa täyttää. Quartus II ohjelmisto vaatii lisenssin, jonka saa ilmaiseksi sähköpostiinsa kun on täyttänyt Alteran vaatimat tiedot mm. työaseman verkkokortin MAC-osoite. Jos lisenssiä ei hanki, ohjelmaa ei voi käyttää 30 päivän jälkeen.
4 Kuva 1. Quartus II ohjelmiston lataaminen Alteran kotisivuilta. Ohjelman asentaminen ja käyttöönotto Quartus II ohjelma asennettiin yksinkertaisesti klikkaamalla.exe tiedostoa, joka ladattiin Alteran kotisivuilta. Asennusohjelma kysyy asennuspolut yms. sekä lopuksi heittää kuvan 2 mukaisen Quartus II TalkBack ikkunan, joka laitettiin disable-tilaan. Asennuksen päätyttyä, asennettiin vielä pc_quartus_51_memory_file_patch_2_01_we.exe -päivitys. Kuva 2. Asennuksen jälkeen ilmestyvä ikkuna.
5 Kun Quartus II ohjelman käynnistää ekan kerran tulee ruutuun ikkuna (kuva 3), jossa ilmoitetaan lisenssin puuttumisesta. Valitsemalla Specify -vaihtoehto päästään Options-ikkunaan (kuva 4), johon haetaan lisenssi-tiedoston olinpaikka. Kuva 3. Lisenssi-ilmoitus. Kuva 4. Lisenssi-tiedoston polun määritys. Lisenssipolku on käyttäjäprofiilikohtainen!!!
6 Lisenssin asentamisen jälkeen, täytyi Programmer -työkalulle määrittää millä EPM3032-korttia ohjelmoidaan. Kuva 5. Programmer -työkalun valinta. Kuvassa 6 on esitetty ohjelmointiin käytettävän ByteBlasterII ohjelmointikaapelin valinta. ByteBlasterII on fyysisesti kytketty PC:n LPT1- porttiin ja ohjelmointi tapahtuu EPM3032A-protokortin JTAG liitännän kautta. Ł Tools -> Programmer -> Add hardware ->
7 Kuva 6. ByteBlasterII kaapelin valinta piirin ohjelmointiin. 3.2 Projektin luonti Ohjelman toteutus Ohjelma toteutetaan Project Wizard toiminnon kautta, jolla voidaan helposti tehdä projekteja. Kuvissa 7-11 on esitetty projektin luomisvaiheet Wizardilla.
8 Kuva 7. Projektin työhakemiston ja Top-Level Entityn määritys. Määrityksessä (kuva 7) on kiinnitettävä huomiota Top-Level Entityn nimeen, jonka täytyy olla täsmälleen sama kuin projektilla!! Ł Next -> No Kuva 8. Valmiiden tiedostojen lisäys projektiin. Ł Next
9 Koska projektiin ei ollut valmiiksi tehtyä Block Diagram/Schematic-tiedostoa, jätettiin kuvan 8 ikkuna tyhjäksi. Kuva 9. Ohjelmoitavan piirin valinta. Ł Next Kuva 10. Muiden kuin Quartus II:n simulointityökalujen valinta. Ł Next
10 Kuva 11. Yhteenveto projektin luonnista. 3.3 NAND portin toteuttaminen VHDL-kielellä Tehtävänä oli ohjelmoida VHDL-kielellä NAND porttipiiri. Työlle luotiin nand_2_vhdl projekti, jonka luominen tapahtuu: File New valikosta (kuva 12) otettiin VHDL File, jolloin voitiin kirjoittaa VHDL kielistä koodia. Kuva 12. Uuden VHDL-tiedoston luonti.
11 Kuvassa 13 on esitetty valmis VHDL koodi, joka kuvaa NAND porttipiirin toimintaa. Tuloille ja lähdölle määritettiin pinnit samalla tavalla, kuin aikaisemmassakin tehtävässä. Kuva 13. Valmis VHDL koodi. käännös: Ł Processing -> Start compilation
12 3.4 Piirin pinnien kytkennät Pinnien paikat protokortilla täytyy katsoa PADS:llä suunnitellusta Schematic kuvasta (Liite A) tai EPM3032A-Protokortin pinout taulukosta (Liite C). Ł Assignments -> Pins Kuva 14. Piirin pinnien määrittäminen NAND-piirin tuloille ja lähdölle. Ennen kuin tehty graafinen kuva käännetään, täytyi asettaa käyttämättömät pinnit Input Tri-State tilaan. Tällä estettiin käyttämättömien kytkimien painamisen aiheuttaman liian suuren (n.190ma) virran kulutuksen, joka saattaa rikkoa EPM3032A piirin. Tämä asetus tehtiin Device & Pin options ikkunassa (kuva 15), joka löytyy polun Assignments Settings Device & Pin Options.. Unused Pins kautta.
13 Kuva 15. Käyttämättömien pinnien asetukset. Kun pinnit on määritetty, täytyi graafinen kuva kääntää.pof tiedostoksi painiketta painamalla. Käännöksen jälkeen kuvaan (kuva 18) ilmestyy laatikot, joissa kerrotaan mikä pinni on määritetty millekin tulolle/lähdölle. 3.5 OHJELMOINTI Ł Tools -> Programmer Programmer toiminnolla EPM3032A piirille ohjelmoidaan käännöksessä syntynyt.pof tiedosto (kuva 19). Jos tulee virheilmoitukset:
14 - Error: JTAG ID code specified in JEDEC STAPL Format File does not match any valid JTAG ID codes for device - Error: Operation failed Tämä ongelma kierretään Auto Detect painiketta painamalla ja avaamalla EPM3032A-piirille uudelleen.pof-tiedosto kaksoisklikkaamalla <none> aluetta. Kuva 16. Piirille ohjelmointi. Ohjelman testaus Ohjelma testattiin EPM3032A-Protokortilla. Ledit ja kytkimet kytkettiin kaapeleilla siten, että ledit kytkettiin I/O1 porttiin ja kytkimet I/O2 porttiin. Liitteessä B on esitettynä liittimien pinnijärjestys Protokortilla. Kytkimet SW8 ja SW7 määriteltiin tuloiksi NAND-porttipiirille ja LED1 lähtöön.
15 3.6 Quartus II Web Edition ohjelmiston tärkeimmät työkalut/ominaisuudet Tässä osiossa esitellään muutamia Quartus II:n tärkeimpiä ominaisuuksia/työkaluja. Kuvassa 24 on Processing ikkunan tarjoamia työkaluja. Kuva 17. Processing ikkunan työkalut. Processing ikkunan perustyökalut ovat Start Compilation, Start Simulation sekä näiden Report toiminnot. Start Compilation toiminnolla käännetään koodattu/piirretty tiedosto.pof muotoon, jolloin se voidaan ladata CPLD/FPGA piirille. Start Simulation toiminnolla voidaan simuloida koodattua/piirrettyä tuotosta.
16 Kuva 18. Tools ikkunan työkalut. Tools ikkunan perustyökaluja ovat Simulator Tool, Timing Analyzer Tool, RTL Viewer ja Programmer. Simulator Tool työkalulla määritetään simulointiasetukset. Timing Analyzer Tool työkalulla tarkastellaan mm. tulojen ja lähtöjen ajoitukset. RTL Viewer työkalulla nähdään graafinen kytkentäkuva (synteesi) VHDL:llä tehdystä koodista. Koodi täytyy ensiksi kääntää. Programmer työkalulla ladataan käyttäjän tekemä koodi/kytkentäkuva CPLD/FPGA piirille.
17 Kuva 19. Assignments ikkunan työkalut. Assignments ikkunan perustyökalut ovat Device, Pins, Timing Settings, EDA Tool Settings, Assignment Editor ja Pin Planner. Device työkalulla voidaan määrittää/vaihtaa ohjelmoitavan piirin tyyppiä. Pins työkalulla voidaan määrittää pinneihin liittyviä asetuksia. Timing Settings työkalulla voidaan määrittää yleisiä ajoitusasetuksia. EDA Tool Settings työkalulla voidaan ottaa käyttöön muiden ohjelmien tarjoamia simulointitoimintoja. Assignment Editor työkalulla voidaan määrittää erilaisia asetuksia pinneille, ajoituksille yms. Pin Planner työkalulla asetetaan CPLD/FPGA piirien pinneille mm. nimet ja toimintatilat. 4. YHTEENVETO Työssä on havainnollistettu, miten Quartus II ohjelmiston asentaminen ja käyttöönotto tapahtuu, sekä miten ohjelmoidaan yksinkertaisia Schematic kytkentöjä ja VHDL koodeja.
18 LIITTEET: Kuva 20: EPM3032A-PROTOV2 Ledien ja kytkimien kytkeytyminen PLD -piiriin