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.

Ottieni l'accesso esclusivo agli esercizi e alle risposte!

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 “

Leave a Reply

Il tuo indirizzo email non sarà pubblicato.