kuinka luot ensimmäisen VHDL-ohjelmasi: Hello World!
kun opettelen uutta ohjelmointikieltä, haluan aina aloittaa opettelemalla tulostamista. When you master outputing ” Hello World!”, tiedät, että olet saanut ympäristön toimimaan. Se näyttää myös kielen perusrakenteen, minimikoodin, jota tarvitaan minkä tahansa lähdön tuottamiseen.
saatat ajatella: mutta VHDL on laitteistokuvauskieli, miten se voi tuottaa lainkaan tekstiä? Tarvitset näytön, joka on yhdistetty FPGA: han tai johonkin, ja kaikenlaista logiikkaa siihen väliin, eikä se olisi lainkaan yksinkertaista. Vaikka kaikki tämä on totta, unohdetaan FPGA: n ja ASIC: n vain hetkeksi ja keskitetään huomiomme VHDL-kieleen.
tämä blogikirjoitus on osa VHDL: n perusopetus-sarjaa.
VHDL voidaan ajatella rinnakkaisena ohjelmointikielenä, ja siksi voimme käyttää tämän ohjelmoijan lähestymistapaa sen oppimiseen. Koska käytämme kieltä kuvaamaan digitaalisia piirejä, ainoa tapa, jolla voimme ajaa sitä tietokoneellamme, on käyttää simulaattoria, ja simulaattori pystyy varmasti julkaisemaan ”Hello World!”valkokankaalle.
Kuinka asentaa VHDL-simulaattori ja editori ilmaiseksi
harjoitus
tämä opetusvideo näyttää, miten luodaan ensimmäinen VHDL-ohjelma:
lopullinen koodi, jonka loimme:
entity T01_HelloWorldTb isend entity;architecture sim of T01_HelloWorldTb isbegin process is begin report "Hello World!"; wait; end process;end architecture;
tuloste simulaattorikonsoliin, kun painoimme run-painiketta ModelSim:
VSIM 2> run# ** Note: Hello World!# Time: 0 ns Iteration: 0 Instance: /t01_helloworld
analyysi
kahdella ensimmäisellä rivillä julistimme kokonaisuuden. Moduulin kokonaisuus ilmoittaa panoksensa ja tuotoksensa. Jotta moduulin suorittaminen simulaattorissa olisi mahdollista, siinä ei voi olla tuloja tai lähtöjä. Siksi moduulissamme ei ole muuta kuin tyhjä entiteettiilmoitus.
seuraavaksi julistettiin moduulin arkkitehtuuri. Olio on moduulin rajapinta ulkomaailmaan, mutta arkkitehtuuri on sen sisäinen toteutus. Moduulissa voi olla useita arkkitehtuureja, joita voidaan käyttää saman kokonaisuuden kanssa. En huolehtisi liikaa näistä asioista tässä vaiheessa, koska ne ovat kehittyneitä VHDL ominaisuuksia.
arkkitehtuurin sisällä julistettiin prosessi. Tällä hetkellä voimme ajatella prosessin kierteenä ohjelmassamme, jossa asiat tapahtuvat peräkkäin.
prosessin sisällä painetaan ”Hello World!”käyttäen report
– hakusanaa. Seuraavalla rivillä on single wait;
. Kun simulaattori osuu tähän linjaan, mitään muuta ei tapahdu. Prosessi odottaa täällä ikuisesti.
kun simuloimme tämän mallin malliksi, saatoimme nähdä, että ” Hello World!”tulostettiin konsolin ulostuloon. Sen jälkeen mitään muuta ei tapahtunut.
Takeaway
- voit ajatella prosessia ohjelmakierteenä
report
statement tulostaa tekstin simulaattorikonsoliin- prosessin suorittaminen odottaa ikuisesti
wait;
statement
siirry seuraavaan opetusohjelmaan ”