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.
Revisioner | opdateringer |
IEEE 1076 - 1987 | Revision og standardisering fra US Defense. |
IEEE 1076 - 1993 | Kom med den største udgivelse, og det er den mest anvendte version. |
IEC 61691 -1 - 1- 1: 2004 | IEC vedtog IEEE 1076-2002 version |
IEEE 1076 -2008 | Opdateret med nogle større ændringer som - Introduktion af generiske pakker og brug af eksterne navne |
IEC 61691 -1 - 1- 1: 2011 | IEC vedtog IEEE 1076-2008 version |
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.
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>;
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
- Array med eksempler
- Process med eksempler
- IF - THEN - ELSIF implementering med eksempler.
- CASE-erklæring
- 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.
- 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.
- Kadence skarp: Den tidligere version blev kendt som NC-VHDL.
- VHDL Lignende: Symphony EDA udvikler det. Det er gratis for forbrugerne.
- GHDL: En af de berømte gratis VHDL-simulatorer.
- Støvle: Freerangefactory organisation udviklede simulatoren.
- NVC: Nick Gasson udviklede opensource VHDL-kompilatoren.
- EDA Legeplads: En anden gratis version baseret på webbrowser.
- Oversigt VCS-MX.
Lav dit første projekt ved hjælp af VHDL. Tjek den næste del af VHDL Tutorial.
For mere elektronikrelateret artikel, klik her!
Hej, jeg er Sudipta Roy. Jeg har taget B. Tech i elektronik. Jeg er en elektronikentusiast og er i øjeblikket dedikeret til området elektronik og kommunikation. Jeg har en stor interesse i at udforske moderne teknologier såsom AI & Machine Learning. Mine skrifter er viet til at give nøjagtige og opdaterede data til alle elever. At hjælpe nogen med at få viden giver mig enorm glæde.
Lad os oprette forbindelse via LinkedIn –