az első VHDL program létrehozása: Hello World!
amikor új programozási nyelvet tanulok, mindig szeretek azzal kezdeni, hogy megtanulok nyomtatni. Amikor mester kimenetre ” Hello World!”, tudod, hogy működik a környezet. Azt is megmutatja, hogy az alapvető csontváz a nyelv, a csupasz minimális kód előállításához szükséges bármilyen kimenet.
lehet, hogy arra gondolsz: de a VHDL egy hardverleíró nyelv, hogyan tud egyáltalán szöveget kiadni? Szüksége lenne egy képernyőre, amely csatlakozik egy FPGA-hoz vagy valamihez, és mindenféle logika között, és ez egyáltalán nem lenne egyszerű. Bár mindez igaz, felejtsük el az FPGA-kat és az ASIC-ket egy pillanatra, és összpontosítsuk figyelmünket a VHDL nyelvre.
ez a blogbejegyzés része az alapvető VHDL oktatóanyagok sorozat.
a VHDL párhuzamos programozási nyelvnek tekinthető, ezért ezt a programozó megközelítést használhatjuk a tanuláshoz. Mivel a nyelvet a digitális áramkörök leírására használjuk, az egyetlen módja annak, hogy számítógépünkön futtassuk, egy szimulátor használata, és a szimulátor határozottan képes kiadni a ” Hello World!”a képernyőre.
Hogyan telepítsünk egy VHDL szimulátor és szerkesztő ingyen
gyakorlat
ez a videó bemutató megmutatja, hogyan lehet létrehozni a legelső VHDL program:
a végső kódot, hogy hoztunk létre:
entity T01_HelloWorldTb isend entity;architecture sim of T01_HelloWorldTb isbegin process is begin report "Hello World!"; wait; end process;end architecture;
a kimenet a szimulátor konzolra, amikor megnyomtuk a Futtatás gombot a ModelSim-ben:
VSIM 2> run# ** Note: Hello World!# Time: 0 ns Iteration: 0 Instance: /t01_helloworld
elemzés
az első két sorban deklaráltuk az entitást. A modul entitása deklarálja bemeneteit és kimeneteit. Ahhoz, hogy egy modult szimulátorban lehessen futtatni, nem lehet bemenete vagy kimenete. Ezért a modul nem rendelkezik semmi más, mint egy üres entitás nyilatkozatot.
ezután deklaráltuk a modul architektúráját. Míg az entitás egy modul interfésze a külvilággal, az architektúra a belső megvalósítása. Egy modul több architektúrával is rendelkezhet, amelyek ugyanazzal az entitással használhatók. Ezen a ponton nem aggódnék túl sokat ezek miatt a dolgok miatt, mivel ezek fejlett VHDL funkciók.
az architektúrán belül egy folyamatot deklaráltunk. Egyelőre úgy gondolhatunk egy folyamatra, mint egy szálra a programunkban, ahol a dolgok egymás után történnek.
a folyamat belsejében kinyomtatjuk a ” Hello World!”a report
kulcsszó használata. A következő sorban egyetlen wait;
van. Amikor a szimulátor eléri ezt a sort, semmi több nem fog történni. A folyamat itt örökké vár.
amikor szimuláltuk ezt a tervet a ModelSim-ben, láthattuk, hogy ” Hello World!”a konzol kimenetére nyomtatták. Ezután semmi több nem történt.
elvihető
- lehet gondolni egy folyamat, mint egy program szál
- a
report
utasítás kiírja a szöveget, hogy a szimulátor konzol - végrehajtása a folyamat vár örökre a
wait;
nyilatkozat
ugrás a következő tutorial “