Esercitazioni VHDL: 13 concetti importanti

In questo tutorial VHDL discuteremo alcuni dei concetti di base relativi alla tecnologia VHDL e alcuni esempi di codifica. Il tutorial VHDL è suddiviso come segue:

ARGOMENTI DI DISCUSSIONE

A. Cos'è VHDL?

B. Storia e standardizzazione

C. Procedure di progettazione VHDL

D. Alcune regole e informazioni di base su VHDL

E. Sintassi e alcuni concetti importanti per la scrittura di codici VHDL

F. Simulatori VHDL per tutorial VHDL

VHDL || Cos'è VHDL?

La forma completa di VHDL è l'acronimo di VHSIC-HDL (Very High Speed ​​Integrated Circuit Hardware Description Language).

Come suggerisce il nome, VHDL è un linguaggio di descrizione dell'hardware o un tipo speciale di linguaggio di programmazione che descrive le implementazioni hardware del sistema e dei circuiti digitali. È un linguaggio fortemente tipizzato e va ricordato che non è un linguaggio di programmazione.  

Storia e standardizzazione

Il Dipartimento della Difesa degli Stati Uniti ha un contributo significativo al moderno campo tecnologico. Ha dato vita a troppe grandi idee e innovazioni. La difesa americana ha anche sviluppato VHDL nell'anno 1983. È stato sviluppato per la documentazione del comportamento dei circuiti integrati specifici dell'applicazione.

Successivamente, alcune idee sono state implementate dai linguaggi di programmazione Ada. VHDL è stato standardizzato per la prima volta nel 1987. È stato aggiunto a diversi tipi di dati di diversi tipi, comprese le stringhe e numerici e logici.

Standardizzazione

VHDL o VHSIC-HDL (Very High Speed ​​Integrated Circuit Hardware Description Language) è standardizzato dallo standard IEEE 1076. È in fase di aggiornamento dalla sua nascita e ha subito molte revisioni. Esaminiamo alcune delle revisioni standard e degli aggiornamenti principali.

RevisioniAggiornamenti
IEEE 1076 - 1987Revisione e standardizzazione dalla difesa degli Stati Uniti.
IEEE 1076 - 1993È uscito con la migliore versione ed è la versione più utilizzata.
IEC 61691-1-1-1: 2004IEC ha adottato la versione IEEE 1076-2002
IEEE 1076-2008Aggiornato con alcune modifiche importanti come - Introduzione di generici sui pacchetti e uso di nomi esterni
IEC 61691-1-1-1: 2011IEC ha adottato la versione IEEE 1076-2008
Controlla la standardizzazione qui, Tabella tutorial VHDL – 1

Progettazione di VHDL

Il design VHDL ha alcune unità di progettazione. Sono noti come entità, architettura, configurazione e pacchetto.

Entità: L'entità definisce le viste esterne di un modello che è un simbolo.

architettura: L'architettura definisce la funzionalità di un modello che è schematico.

Configurazione: La configurazione viene utilizzata per associare l'architettura a un'entità.

Confezione: Il pacchetto è la raccolta di informazioni a cui possono fare riferimento i moduli VHDL. Un pacchetto VHDL è costituito da due parti. Sono: dichiarazione del pacchetto e corpo del pacchetto.

1200px vipera firmata Vhdl source.svg
Un codice di base progettato in VHDL Tutorial, Image Credit - Vhdl_signed_adder.pngRev Ragnarok lavoro derivato: Bernard LadentinVhdl firmato sommatore sorgenteCC BY-SA 3.0

Dichiarazione di entità

La struttura generale della dichiarazione di entità è fornita di seguito:

ENTITÀ < nome dell'entità > IS

          Dichiarazioni generiche

          Dichiarazioni di porto

ENTITÀ FINALE <nome dell'entità>;

  • può essere alfabetico / numerico o alfanumerico.
  • Le dichiarazioni generiche servono per passare le informazioni in un modello.
  • Le dichiarazioni delle porte servono a descrivere i pin di input e output.
  • Un'entità può essere chiusa in diversi modi.
    • ENTITÀ FINALE <nome dell'entità>;
    • ENTITÀ FINALE;
    • FINE;

Dichiarazioni portuali

Di seguito viene fornita una struttura generale per le dichiarazioni di porto:

ENTITÀ < nome dell'entità > IS

          Dichiarazioni generiche

          - Dichiarazioni di porto:

PORT (

          SEGNALE CLK, CL: IN POCO;

          q: FUORI BIT

          - nota che non c'è punto e virgola nell'ultima riga delle dichiarazioni.

          );

ENTITÀ FINALE <nome dell'entità>;

La struttura della dichiarazione di porto: object_name : ;

  • Classe: La classe è ciò che può essere fatto a un oggetto. Qui la classe è un segnale. Un punto da ricordare che il SEGNALE non viene scritto durante la scrittura del programma; piuttosto, si presume e non è richiesto.
  • Nome_oggetto: È l'identificatore.
  • Modalità: Specifica la direzione.

NEL - Ingresso

FUORI - Uscita

INGRESSO - bidirezionale

BUFFER - Uscita con feedback interno

  • Tipo: Il tipo specifica cosa può essere contenuto all'interno di un oggetto.

Dichiarazioni generiche

Di seguito viene fornita una struttura generale delle dichiarazioni generiche:

ENTITÀnome_entità> IS

          GENERICO (

                    COSTANTE tplh, tphl: ora := 5 ns;

                    tphz, tplz: TIME := 3n;

                    valore_predefinito: INTERO: = 1;

                    cnt_dir: STRING := "SU"

                    - nota che non c'è punto e virgola nell'ultima riga delle dichiarazioni.

                    );

          Dichiarazioni di porto

          ENTITÀ FINALEnome_entità>;

  • I valori generici possono essere sovrascritti durante la compilazione.
  • Generic deve possedere la tenacia ad una costante durante la compilazione di un programma.  

Si noti che si presume la parola chiave CONSTANT e non è richiesta la scrittura.

Architettura

  • Analogy-schematic: Analogy schematic fornisce la descrizione della funzionalità di un modello e dei tempi ad esso associati.  
  • L'architettura di un modello dovrebbe essere associata a un'ENTITÀ.
  • Un'entità può avere molte architetture associate ad essa.
  • Le istruzioni di architettura vengono eseguite contemporaneamente.
  • Alcuni stili di architettura -
  • Comportamentale: il modello comportamentale descrive come funzionano i progetti.

RTL: RTL descrive come i progetti possono essere implementati utilizzando i registri.

Funzionale: non include tempi.

  • Strutturale: Implementazione della struttura a livello di gate.
  • Flusso di dati: Implementazione della tavola della verità.
  • L'architettura si conclude con -
    • FINE ARCHITETTURA ;
    • FINE ARCHITETTURA
    • FINE;

Una struttura generale della scrittura di un'architettura:

ARCHITETTURA <identificatore> OF <entità_identificatore> IS

          SEGNALE signal_1: INTERO: = 1;

          COSTANTE cnst: = BOOLEANO: = true;

          TIPO processo È (W X Y Z);

          - Dichiarazioni di attributi

          - Specifiche degli attributi

          - Dichiarazioni di sottoprogrammi

          - Corpo del sottoprogramma

INIZIO

          Dichiarazioni di processo

          Chiamate procedurali simultanee

          Assegnazione del segnale

          Genera dichiarazioni

FINE ARCHITETTURA <identificatore>;

IMG18 1024x576
Schema RTL di un gate AND, dal tutorial VHDL

Configurazione     

Come discusso, un precedente configuration viene utilizzato per associare l'architettura a un'entità. L'associazione o la combinazione è necessaria perché una ENTITY non può funzionare finché l'architettura non è associata ad essa. Di seguito viene fornita una struttura generale della configurazione.

CONFIGURAZIONE  < identificatore > OF < nome dell'entità > IS

          PER < nome_architettura >

                    PER < nome_istanza >: Nome del componente > USO < entità > ( architettura >)

                    FINE PER;

                    PER < nome_istanza >: Nome del componente > USO < nome_configurazione >

                    FINE PER;

          FINE PER;

FINE CONFIGURAZIONE < identificatore >;

Pack

I pacchetti VHDL sono un'intera unità di un intero sistema. È l'obiettivo principale dell'implementazione di VHDL. Un pacchetto è composto da due parti. Come detto in precedenza, le dichiarazioni del pacchetto e il corpo del pacchetto formano un pacchetto completo.

VHDL offre due pacchetti integrati.

Alcune regole e informazioni di base sul tutorial VHDL

Discutiamo per dare un'occhiata ad alcune informazioni di base prima di immergerci nell'esplorazione del tutorial VHDL.

1. Parole chiave riservate: VHDL ha alcune parole chiave riservate (che non possono essere utilizzate per dichiarare una variabile).

2. Parti: VHDL ha due passaggi o parti per la creazione di un modello. Uno è la simulazione e l'altro è la sintesi e la simulazione.

3. Linguaggio case sensitive: VHDL non è un linguaggio case sensitive (per la maggior parte della parte).

4. Commenti: Per commentare un'istruzione nell'editor di codice VHDL, inizia la frase con -, per un esempio:

- Questo è un commento in VHDL.

5. Risoluzione: I codici VHDL e ogni singola riga di codici vengono terminati utilizzando un punto e virgola (quando necessario). 

6. Sensibilità allo spazio: VHDL non è sensibile allo spazio bianco.

Sintassi e alcuni importanti concetti dell'esercitazione VHDL per la scrittura di codici VHDL

  1. Matrice con esempi
  2. Processo con esempi
  3. IF - THEN - Implementazione ELSIF con esempi.
  4. Dichiarazione CASE
  5. PER LOOP

A. array

L'array memorizza il valore. È un tipo di dati definito dall'utente per memorizzare il valore. Un array può contenere variabili di segnale, tipo di costanti.

Di seguito viene fornita una struttura generale per dichiarare un array:

TIPO nome_array IS ARRAY (gamma) OF tipo di dati;

Ad esempio,

TYPE lambdageeks È ARRAY (da 0 a 9) OF std_logic_vector (0 UPTO 9);

B. Dichiarazione di processo

Il processo è un'istruzione simultanea e sincronizzata. Introduce le dichiarazioni cronologiche. Più processi vengono eseguiti parallelamente se il modello è necessario.

Un processo è composto da due parti. Sono l'esecuzione del processo e quindi attendono la condizione successiva.

SINTASSI:

processi lista_sensibilità

          dichiarazioni

iniziare

          dichiarazioni_cronologiche;

fine del processo;

C. IF - THEN - implementazione ELSIF

Queste istruzioni vengono utilizzate per implementare una condizione e per il loro risultato.

Una condizione if può avere un numero infinito di rami secondo il requisito. È anche possibile un numero considerevole di condizioni elsif. Ma, in un ciclo if, può esserci solo un'altra condizione. Un ciclo if viene terminato dall'istruzione if end. Se la condizione è vera, entrerà nel ciclo ed eseguirà l'istruzione. Se fallisce, allora scegli l'istruzione else o elsif.

La sintassi delle istruzioni è fornita di seguito.

SINTASSI

          if espressione_booleana condizionale poi

                    dichiarazione 1

          else espressione_booleana condizionale poi

                    dichiarazione 2

          . . .

          altro

                    dichiarazione 3

          fine if;

D. Dichiarazione CASE

L'istruzione Case rileva quale istruzione verrà eseguita. Un'istruzione case può anche essere ramificata come cicli IF-ELSE.

SINTASSI

[etichetta]: Custodie < espressione-condizionale > is

          quando < scegliere> =>

                    dichiarazione 1

          quando <scegliere> =>

                    dichiarazione 2

          ...

          quando <scegliere> =>

                    dichiarazione

fine Custodie [etichetta];

E. Ciclo FOR

Un ciclo for è un'esecuzione continua di istruzioni in base alle condizioni di delimitazione.

Per ogni ciclo FOR, abbiamo bisogno di un iteratore che eseguirà le operazioni nel ciclo for. È anche noto come identificatore. È un numero intero per impostazione predefinita e non è necessario dichiarare l'iteratore. È uno dei loop più comunemente usati per realizzare modelli complessi. È più familiare dei cicli while.

SINTASSI

[etichetta]: per iteratore in gamma loop

          Dichiarazione 1

          Dichiarazione 2

          ...

          Dichiarazione n

fine ciclo [etichetta];

Simulatori VHDL per tutorial VHDL

Di seguito sono elencati alcuni dei famosi simulatori VHDL utilizzati per l'implementazione di VHDL.

  1. Xilinx Vivado: Il simulatore più famoso per VHDL è Xilinx Vivado. Xilinx fornisce dispositivi logici programmabili. Useremo questo simulatore per la parte successiva del tutorial VHDL. 
  2. Cadenza incisiva: La versione precedente era nota come NC-VHDL.
  3. Simili VHDL: Symphony EDA lo sviluppa. È gratuito per i consumatori. 
  4. GDL: Uno dei famosi simulatori VHDL gratuiti. 
  5. Avvio: L'organizzazione Freerangefactory ha sviluppato il simulatore. 
  6. NVC: Nick Gasson ha sviluppato il compilatore VHDL opensource. 
  7. Parco giochi EDA: Un'altra versione gratuita basata su browser web. 
  8. Sinossi VCS-MX.
Simulatori per VHDL, useremo XILINX per il nostro Tutorial Image Credit - ™ / ®Xilinx, Inc., Logo Xilinx, contrassegnato come dominio pubblico, maggiori dettagli su Wikimedia Commons

Crea il tuo primo progetto utilizzando VHDL. Dai un'occhiata alla parte successiva del tutorial VHDL.

Per ulteriori articoli relativi all'elettronica, fare clic su qui!

Lascia un tuo commento