cum de a crea primul program VHDL: Bună ziua lume!
când învăț un nou limbaj de programare, îmi place întotdeauna să încep prin a învăța cum să tipăresc. Când maestru scoate ” Bună ziua lume!”, știi că ai mediul de lucru. De asemenea, vă arată scheletul de bază al limbii, codul minim necesar pentru a produce orice ieșire.
S-ar putea să vă gândiți: dar VHDL este un limbaj de descriere hardware, cum poate emite orice text? Ai avea nevoie de un ecran conectat la un FPGA sau ceva și tot felul de logică între ele, și asta nu ar fi deloc simplu. Deși toate acestea sunt adevărate, să uităm de FPGA și ASIC doar pentru o clipă și să ne concentrăm atenția asupra limbajului VHDL.
această postare pe blog face parte din seria de tutoriale VHDL de bază.
VHDL poate fi gândit ca un limbaj de programare paralel și, prin urmare, putem folosi abordarea acestui programator pentru a-l învăța. Deoarece folosim limbajul pentru a descrie circuitele digitale, singurul mod în care îl putem rula pe computerul nostru este folosind un simulator, iar simulatorul este cu siguranță capabil să scoată „Hello World!”pe ecran.
cum se instalează un simulator VHDL și editor gratuit
exercițiu
acest tutorial video vă va arăta cum să creați primul program VHDL:
codul final pe care l-am creat:
entity T01_HelloWorldTb isend entity;architecture sim of T01_HelloWorldTb isbegin process is begin report "Hello World!"; wait; end process;end architecture;
ieșirea la consola simulator atunci când am apăsat butonul run în ModelSim:
VSIM 2> run# ** Note: Hello World!# Time: 0 ns Iteration: 0 Instance: /t01_helloworld
analiză
pe primele două rânduri, am declarat entitatea. Entitatea unui modul își declară intrările și ieșirile. Pentru a putea rula un modul într-un simulator, acesta nu poate avea intrări sau ieșiri. Prin urmare, modulul nostru nu are altceva decât o declarație de entitate goală.
apoi, am declarat arhitectura modulului. În timp ce entitatea este interfața unui modul cu lumea exterioară, arhitectura este implementarea sa internă. Un modul poate avea mai multe arhitecturi care pot fi utilizate cu aceeași entitate. Nu mi-aș face griji prea mult despre aceste lucruri în acest moment, deoarece sunt funcții avansate VHDL.
în interiorul arhitecturii, am declarat un proces. Deocamdată, ne putem gândi la un proces ca la un fir în programul nostru, unde lucrurile se întâmplă secvențial.
în interiorul procesului, tipărim ” Hello World!”folosind cuvântul cheie report
. Pe linia următoare, există un singur wait;
. Când simulatorul lovește această linie, nu se va mai întâmpla nimic. Procesul va aștepta aici pentru totdeauna.
când am simulat acest design în ModelSim, am putut vedea că ” Hello World!”a fost tipărit la ieșirea consolei. După aceea, nu s-a mai întâmplat nimic.
Takeaway
- vă puteți gândi la un proces ca un fir de program
- declarația
report
imprimă text la consola simulator - executarea unui proces va aștepta pentru totdeauna pe o declarație
wait;
du-te la urmatorul tutorial „