Come creare il tuo primo programma VHDL: Ciao mondo!
Quando si impara un nuovo linguaggio di programmazione, mi piace sempre iniziare imparando a stampare. Quando si master in uscita ” Ciao mondo!”, sai che hai l’ambiente di lavoro. Mostra anche lo scheletro di base della lingua, il codice minimo necessario per produrre qualsiasi output.
Potresti pensare: ma VHDL è un linguaggio di descrizione hardware, come può emettere qualsiasi testo? Avresti bisogno di uno schermo collegato a un FPGA o qualcosa del genere e di ogni sorta di logica in mezzo, e questo non sarebbe affatto semplice. Mentre tutto questo è vero, dimentichiamoci di FPGA e ASIC solo per un momento e concentriamo la nostra attenzione sul linguaggio VHDL.
Questo post del blog fa parte della serie di tutorial VHDL di base.
VHDL può essere pensato come un linguaggio di programmazione parallelo, e quindi possiamo usare l’approccio di questo programmatore per apprenderlo. Poiché usiamo il linguaggio per descrivere i circuiti digitali, l’unico modo in cui possiamo eseguirlo sul nostro computer è usare un simulatore, e il simulatore è sicuramente in grado di emettere ” Hello World!”allo schermo.
Come installare un simulatore VHDL e editor per libero
Esercizio
Questo video tutorial vi mostrerà come creare il tuo primo VHDL programma:
Il codice finale che abbiamo creato:
entity T01_HelloWorldTb isend entity;architecture sim of T01_HelloWorldTb isbegin process is begin report "Hello World!"; wait; end process;end architecture;
L’output del simulatore di console, quando abbiamo premuto il pulsante esegui nella ModelSim:
VSIM 2> run# ** Note: Hello World!# Time: 0 ns Iteration: 0 Instance: /t01_helloworld
Analisi
Nelle prime due righe, abbiamo dichiarato l’entità. L’entità di un modulo dichiara i suoi ingressi e uscite. Affinché sia possibile eseguire un modulo in un simulatore, non può avere alcun input o output. Pertanto il nostro modulo non ha altro che una dichiarazione di entità vuota.
Successivamente, abbiamo dichiarato l’architettura del modulo. Mentre l’entità è l’interfaccia di un modulo al mondo esterno, l’architettura è la sua implementazione interna. Un modulo può avere diverse architetture che possono essere utilizzate con la stessa entità. Non mi preoccuperei troppo di queste cose a questo punto in quanto sono funzionalità VHDL avanzate.
All’interno dell’architettura, abbiamo dichiarato un processo. Per ora, possiamo pensare a un processo come un thread nel nostro programma, in cui le cose accadono in sequenza.
All’interno del processo, stampiamo ” Ciao mondo!”utilizzando la parola chiave report
. Nella riga successiva, c’è un singolo wait;
. Quando il simulatore colpisce questa linea, non succederà più nulla. Il processo aspetterà qui per sempre.
Quando abbiamo simulato questo disegno in ModelSim, abbiamo potuto vedere che ” Ciao mondo!”è stato stampato per l’uscita della console. Dopo di ciò, non è successo altro.
Da asporto
- Puoi pensare a un processo come a un thread di programma
- L’istruzione
report
stampa il testo nella console del simulatore - L’esecuzione di un processo aspetterà per sempre su un’istruzione
wait;
Vai al prossimo tutorial “