VHDL-øvelser: 13 vigtige begreber

I denne VHDL-tutorial vil vi diskutere nogle af de grundlæggende begreber relateret til VHDL-teknologi og få eksempler med kodning. VHDL Tutorial er segmenteret som følger:

EMNE OM DISKUSSION

A. Hvad er VHDL?

B. Historie og standardisering

C. VHDL-designprocedurer

D. Nogle regler og grundlæggende oplysninger om VHDL

E. Syntakser og nogle vigtige begreber til skrivning af VHDL-koder

F. VHDL-simulatorer til VHDL-vejledning

VHDL || Hvad er VHDL?

Den fulde form for VHDL står for Very High Speed ​​Integrated Circuit Hardware Description Language (VHSIC-HDL).

Som navnet antyder, er VHDL et hardwarebeskrivelsessprog eller en særlig type programmeringssprog, der beskriver hardwareimplementeringerne af det digitale system og kredsløb. Det er et stærkt skrevet sprog og peger på, at det ikke er et programmeringssprog.  

Historie og standardisering

US Defense Department har et betydeligt bidrag til det moderne teknologiske felt. Det har født for mange gode ideer og innovationer. US Defense udviklede også VHDL i år 1983. Det blev udviklet til dokumentation af opførsel af applikationsspecifikke integrerede kredsløb.

Senere blev nogle ideer implementeret fra Ada programmeringssprog. VHDL blev standardiseret for første gang i år 1987. Det blev tilføjet med flere datatyper af flere typer, herunder strenge og numerisk og logisk.

Standardisering

VHDL eller VHSIC-HDL (Hard High-Speed ​​Integrated Circuit Hardware Description Language) er standardiseret af IEEE 1076-standarden. Det opdateres fra dets fødsel og har gennemgået mange revisioner. Lad os se på nogle af standardversioner og større opdateringer.

Revisioneropdateringer
IEEE 1076 - 1987Revision og standardisering fra US Defense.
IEEE 1076 - 1993Kom med den største udgivelse, og det er den mest anvendte version.
IEC 61691 -1 - 1- 1: 2004IEC vedtog IEEE 1076-2002 version
IEEE 1076 -2008Opdateret med nogle større ændringer som - Introduktion af generiske pakker og brug af eksterne navne
IEC 61691 -1 - 1- 1: 2011IEC vedtog IEEE 1076-2008 version
Kontroller standardiseringen her, VHDL-vejledningstabel – 1

Design af VHDL

VHDL-design har nogle designenheder. De er kendt som - Enhed, arkitektur, konfiguration og pakke.

Enhed: Enhed definerer eksterne visninger af en model, der er et symbol.

Arkitektur: Arkitektur definerer funktionaliteten i en skematisk model.

Konfiguration: Konfiguration bruges til at knytte arkitektur til en enhed.

Pakke: Pakke er indsamling af information, som VHDL-moduler kan henvise til. En VHDL-pakke består af to dele. De er - pakkeerklæring og pakkeorgan.

1200px Vhdl-signeret adder source.svg
En grundlæggende kode designet i VHDL Tutorial, Image Credit - Vhdl_signed_adder.pngRevRagnarok Afledt arbejde: Bernard LadenthinVhdl underskrevet adderkildeCC BY-SA 3.0

Enhedserklæring

Den generelle struktur for enhedserklæringen er angivet nedenfor -

ENHED < enhedsnavn > IS

          Generiske erklæringer

          Havnedeklarationer

SLUT ENHED <enhedsnavn>;

  • kan være alfabetisk / numerisk eller alfanumerisk.
  • Generiske erklæringer er til overførsel af information til en model.
  • Portdeklarationer er til beskrivelse af input- og output-pins.
  • En enhed kan lukkes på flere måder.
    • SLUT ENHED <enhedsnavn>;
    • SLUT ENHED;
    • SLUT;

Havnedeklarationer

En generel struktur for havnedeklarationer er angivet nedenfor -

ENHED < enhedsnavn > IS

          Generiske erklæringer

          — Havnedeklarationer:

PORT (

          SIGNAL CLK, CLR: I BIT;

          q: UD BIT

          - bemærk, at der ikke er noget semikolon i den sidste erklæringslinje.

          );

SLUT ENHED <enhedsnavn>;

Havnedeklarationens struktur: objektnavn : ;

  • Klasse: Klasse er, hvad der kan gøres mod et objekt. Her er klassen signal. Et punkt, der skal huskes, at SIGNALET ikke er skrevet, mens du skriver program; snarere antages det og ikke kræves.
  • Objektnavn: Det er identifikatoren.
  • Mode: Det specificerer retningen.

IN - Input

UD - Produktion

INDGANG - Tovejs

BUFFER - Output med intern feedback

  • Type: Type angiver, hvad der kan være indeholdt i et objekt.

Generiske erklæringer

En generel struktur for generiske erklæringer er angivet nedenfor -

ENHEDenhedsnavn> IS

          GENERISK (

                    KONSTANT tplh, tphl: tid := 5 ns;

                    tphz, tplz: TID := 3ns;

                    standardværdi: INTEGER: = 1;

                    cnt_dir: STRING := "OP"

                    - bemærk, at der ikke er noget semikolon i den sidste erklæringslinje.

                    );

          Havnedeklarationer

          END ENTITYenhedsnavn>;

  • Generiske værdier kan overskrives under kompilering.
  • Generic skal have udholdenhed til en konstant under udarbejdelsen af ​​et program.  

Bemærk, at KONSTANT nøgleord antages og ikke kræves for at skrive.

arkitektur

  • Analogi-skematisk: Analogi-skematisk giver beskrivelsen af ​​funktionaliteten af ​​en model og den tilknyttede timing.  
  • Arkitekturen for en model skal være knyttet til en ENTITY.
  • En enhed kan have mange arkitekturer tilknyttet.
  • Arkitekturerklæringer udføres samtidigt.
  • Nogle arkitektoniske stilarter -
  • Behavioral: Behavioral model beskriver, hvordan designs fungerer.

RTL: RTL beskriver, hvordan design kan implementeres ved hjælp af registre.

Funktionel: Den inkluderer ingen timing.

  • Strukturel: Implementering af gate niveau struktur.
  • dataflow: Implementering af sandhedstabellen.
  • Arkitektur afsluttes med -
    • AFSLUTT ARKITEKTUR ;
    • AFSLUTT ARKITEKTUR
    • SLUT;

En generel struktur for at skrive en arkitektur:

ARKITEKTUR <identifikator> OF <enhedsidentifikator> IS

          SIGNAL signal_1: INTEGER: = 1;

          KONSTANT cnst: = BOOLEAN: = sandt;

          TYPE-processen ER (W, X, Y, Z);

          - Attributerklæringer

          - Attributspecifikationer

          - Underprogramerklæringer

          - Underprogramorgan

BEGIN

          Behandle udsagn

          Samtidige proceduremæssige opkald

          Signaltildeling

          Generer udsagn

AFSLUTT ARKITEKTUR <identifikator>;

IMG18 1024x576 1
RTL-skematisk af en AND-port, fra VHDL-vejledning

Konfiguration     

Som diskuteret, en tidligere configuration bruges til at knytte arkitektur til en enhed. Tilknytning eller kombination er nødvendig, fordi En ENTITY ikke kan fungere, før arkitekturen er knyttet til den. En generel konfigurationsstruktur er angivet nedenfor.

KONFIGURATION  < identifikator > OF < enhedsnavn > IS

          FOR < arkitektur_navn >

                    FOR < subsystemnavn >: komponentnavn > BRUG < enhed > ( arkitektur >)

                    SLUT FOR;

                    FOR < subsystemnavn >: komponentnavn > BRUG < konfigurationsnavn >

                    SLUT FOR;

          SLUT FOR;

SLUTKONFIGURATION < identifikator >;

Pakker

VHDL-pakker er en hel enhed i et helt system. Det er hovedformålet med implementeringen af ​​VHDL. En pakke består af to dele. Som tidligere nævnt udgør pakkeerklæringer og pakkeorgan en komplet pakke.

VHDL leverer to indbyggede pakker.

Nogle regler og grundlæggende oplysninger om VHDL-tutorial

Lad os diskutere om har et kig på nogle grundlæggende oplysninger, inden vi dykker for at udforske VHDL-vejledningen.

1. Reserverede nøgleord: VHDL har nogle nøgleord som reserverede (som ikke kan bruges til at erklære en variabel).

2. Dele: VHDL har to trin eller dele til oprettelse af en model. Den ene er simulering, og den anden er syntese og simulering.

3. Skift mellem store og små bogstaver: VHDL er ikke et skift mellem store og små bogstaver (for det meste).

4. Kommenterer: For at kommentere en erklæring i VHDL-kodeditoren skal du starte sætningen med -, for et eksempel:

- Dette er en kommentar i VHDL.

5. Opsigelse: VHDL-koder og hver enkelt linjekode afsluttes ved hjælp af semikolon (når det er nødvendigt). 

6. Rumfølsomhed: VHDL er ikke hvidt rumfølsomt.

Syntakser og nogle vigtige VHDL-vejledningskoncepter til skrivning af VHDL-koder

  1. Array med eksempler
  2. Process med eksempler
  3. IF - THEN - ELSIF implementering med eksempler.
  4. CASE-erklæring
  5. TIL LOOP

A. Array

Array gemmer værdi. Det er en brugerdefineret datatype til at gemme værdi. En matrix kan indeholde variabler for signal, konstanttype.

En generel struktur til at erklære en matrix er angivet nedenfor:

TYPE matrix_navn IS ARRA (rækkevidde) OF datatype;

For et eksempel

TYPE lambdageeks ER ARRAY (0 til 9) OF std_logic_vector (0 UPTO 9);

B. Proceserklæring

Processen er en samtidig og synkroniseret erklæring. Den introducerer de kronologiske udsagn. Flere processer kører parallelt, hvis modellen er nødvendig.

En proces består af to dele. De er udførelsen af ​​processen og venter derefter på den næste betingelse.

SYNTAKS:

behandle følsomhedsliste

          erklæringer

begynde

          kronologiske_udtalelser;

afslutningsproces

C. IF - THEN - ELSIF implementering

Disse udsagn bruges til at implementere en betingelse og til deres resultat.

En hvis betingelse kan have et uendeligt antal grene i henhold til kravet. Et betydeligt antal elsif-betingelser er også mulige. Men i en, hvis loop, kan der kun være en anden tilstand. En if-sløjfe afsluttes ved end if-udsagnet. Hvis betingelsen er sand, vil den komme ind i sløjfen og udføre erklæringen. Hvis det mislykkes, skal du gå til en anden eller elsif-erklæring.

Syntaksen for udsagnene er angivet nedenfor.

SYNTAKS

          if betinget_boolsk_udtryk derefter

                    erklæring1

          elsif betinget_boolsk_udtryk derefter

                    erklæring2

          . . .

          andet

                    erklæring3

          ende if;

D. CASE-erklæring

Sagserklæringen finder ud af, hvilken erklæring der skal udføres. En sagserklæring kan også forgrenes som IF-ELSE-sløjfer.

SYNTAKS

[etiket]: tilfælde < betinget-udtryk > is

          hvornår < valg> =>

                    erklæring1

          hvornår <valg> =>

                    erklæring2

          ...

          hvornår <valg> =>

                    erklæring

ende tilfælde [etiket];

E. FOR Loop

En for loop er en kontinuerlig udførelse af udsagn i henhold til afgrænsningsbetingelserne.

For hver FOR-loop har vi brug for en iterator, der udfører operationerne i for en loop. Det er også kendt som en identifikator. Det er et heltal som standard og ikke nødvendigt at erklære iteratoren. Det er en af ​​de mest anvendte sløjfer til fremstilling af komplekse modeller. Det er mere velkendt end mens sløjfer.

SYNTAKS

[etiket]: forum iterator in rækkevidde loop

          Erklæring1

          Erklæring2

          ...

          Erklæring nr

slut loop [etiket];

VHDL-simulatorer til VHDL-vejledning

Nogle af de berømte VHDL-simulatorer, der bruges til implementering af VHDL, er anført nedenfor.

  1. Xilinx Vivado: Den mest berømte simulator til VHDL er Xilinx Vivado. Xilinx leverer programmerbare logiske enheder. Vi bruger denne simulator til den næste del af VHDL-selvstudiet. 
  2. Kadence skarp: Den tidligere version blev kendt som NC-VHDL.
  3. VHDL Lignende: Symphony EDA udvikler det. Det er gratis for forbrugerne. 
  4. GHDL: En af de berømte gratis VHDL-simulatorer. 
  5. Støvle: Freerangefactory organisation udviklede simulatoren. 
  6. NVC: Nick Gasson udviklede opensource VHDL-kompilatoren. 
  7. EDA Legeplads: En anden gratis version baseret på webbrowser. 
  8. Oversigt VCS-MX.
Simulatorer til VHDL, vi bruger XILINX til vores VHDL Tutorial Image Credit - ™ / ®Xilinx, Inc., Xilinx logo, markeret som offentligt domæne, flere detaljer om Wikimedia Commons

Lav dit første projekt ved hjælp af VHDL. Tjek den næste del af VHDL Tutorial.

For mere elektronikrelateret artikel, klik her!

Efterlad en kommentar