VHDL-zelfstudies: 13 belangrijke concepten

In deze VHDL-tutorial bespreken we enkele basisconcepten met betrekking tot VHDL-technologie en enkele voorbeelden met codering. VHDL-zelfstudie is als volgt gesegmenteerd:

ONDERWERPEN VAN DE DISCUSSIE

A. Wat is VHDL?

B. Geschiedenis en standaardisatie

C. VHDL-ontwerpprocedures

D. Enkele regels en basisinformatie over VHDL

E. Syntaxis en enkele belangrijke concepten voor het schrijven van VHDL-codes

F. VHDL-simulatoren voor VHDL-zelfstudie

VHDL || Wat is VHDL?

De volledige vorm van VHDL staat voor Very High Speed ​​Integrated Circuit Hardware Description Language (VHSIC-HDL).

Zoals de naam doet vermoeden, is VHDL een hardwarebeschrijvingstaal of een speciaal type programmeertaal die de hardware-implementaties van digitale systemen en circuits beschrijft. Het is een sterk getypeerde taal en er moet aan worden herinnerd dat het geen programmeertaal is.  

Geschiedenis en standaardisatie

Het Amerikaanse ministerie van Defensie levert een belangrijke bijdrage aan het moderne technologische veld. Het heeft te veel geweldige ideeën en innovaties opgeleverd. US Defense ontwikkelde ook VHDL in 1983. Het werd ontwikkeld voor het documenteren van het gedrag van de toepassingsspecifieke geïntegreerde schakelingen.

Later werden enkele ideeën geïmplementeerd vanuit de Ada-programmeertalen. VHDL werd voor het eerst gestandaardiseerd in het jaar 1987. Het werd opgeteld met verschillende gegevenstypen van verschillende typen, waaronder strings en numeriek en logisch.

normalisering

VHDL of voor Very High Speed ​​Integrated Circuit Hardware Description Language (VHSIC-HDL) is gestandaardiseerd door de IEEE 1076-norm. Het wordt vanaf het begin bijgewerkt en heeft veel herzieningen ondergaan. Laten we eens kijken naar enkele standaard herzieningen en belangrijke updates.

Herzieningenupdates
IEEE 1076 - 1987Herziening en standaardisatie van US Defense.
IEEE 1076 - 1993Kwam met de beste release, en het is de meest gebruikte versie.
IEC 61691-1-1-1: 2004IEC aangenomen IEEE 1076-2002-versie
IEEE 1076-2008Bijgewerkt met enkele belangrijke wijzigingen, zoals - Introductie van generieke geneesmiddelen op pakketten en gebruik van externe namen
IEC 61691-1-1-1: 2011IEC aangenomen IEEE 1076-2008-versie
Controleer de standaardisatie hier, VHDL-tutorialtabel – 1

Ontwerp van VHDL

VHDL-ontwerp heeft enkele ontwerpeenheden. Ze staan ​​bekend als - Entiteit, Architectuur, Configuratie en Pakket.

Entiteit: Entiteit definieert externe weergaven van een model dat een symbool is.

architectuur: Architectuur definieert de functionaliteit van een model dat schematisch is.

Configuratie: Configuratie wordt gebruikt om architectuur aan een entiteit te koppelen.

Pakket: Pakket is de verzameling informatie waarnaar kan worden verwezen door VHDL-modules. Een VHDL-pakket bestaat uit twee delen. Ze zijn - pakketverklaring en pakketlichaam.

1200px Vhdl ondertekende opteller source.svg
Een basiscode ontworpen in VHDL-zelfstudie, Image Credit - Vhdl_signed_adder.pngRevRagnarok afgeleid werk: Bernard LadenthineVhdl ondertekende toevoegingsbronCC BY-SA 3.0

Entiteitsverklaring

De algemene structuur van de entiteitsverklaring wordt hieronder gegeven -

ENTITEIT < entiteitsnaam > IS

          Generieke aangiften

          Havenaangiften

EINDE ENTITEIT <entiteitsnaam>;

  • kan alfabetisch / numeriek of alfanumeriek zijn.
  • Generieke verklaringen zijn bedoeld om informatie in een model door te geven.
  • Port Declarations is voor het beschrijven van de inputs en outputs pinnen.
  • Een entiteit kan op verschillende manieren worden gesloten.
    • EINDE ENTITEIT <entiteitsnaam>;
    • EINDE ENTITEIT;
    • EINDE;

Havenverklaringen

Een algemene structuur voor havenaangiften wordt hieronder gegeven -

ENTITEIT < entiteitsnaam > IS

          Generieke aangiften

          - Havenverklaringen:

PORT (

          SIGNAAL CLK, CLR: IN BEETJE;

          q: UIT BEETJE

          - merk op dat er geen puntkomma staat in de laatste regel van verklaringen.

          );

EINDE ENTITEIT <entiteitsnaam>;

De structuur van de havenverklaring: OBJECT_NAME : ;

  • Klasse: Klasse is wat er met een object kan worden gedaan. Hier is klasse het signaal. Een punt om te onthouden dat het SIGNAL niet wordt geschreven tijdens het schrijven van een programma; het wordt eerder aangenomen en niet vereist.
  • Object_naam: Het is de identificatie.
  • Mode: Het specificeert de richting.

IN - Invoer

UIT - uitgang

INVOER - bidirectionele

BUFFER - Output met interne feedback

  • Type: Type specificeert wat er in een object kan zitten.

Generieke verklaringen

Een algemene structuur van generieke verklaringen wordt hieronder gegeven -

ENTITEITentiteit_naam> IS

          GENERIEK (

                    CONSTANTE tplh, tphl: tijd := 5 ns;

                    tphz, tplz: TIME := 3ns;

                    default_value: INTEGER: = 1;

                    cnt_dir: STRING := "UP"

                    - merk op dat er geen puntkomma staat in de laatste regel van verklaringen.

                    );

          Havenaangiften

          EINDE ENTITEITentiteit_naam>;

  • Generieke waarden kunnen tijdens het compileren worden overschreven.
  • Generiek moet de vasthoudendheid tot een constante hebben tijdens het samenstellen van een programma.  

Merk op dat het CONSTANT-sleutelwoord wordt verondersteld en niet vereist is om te schrijven.

Architectuur

  • Analogieschema: Analogieschema geeft de beschrijving van de functionaliteit van een model en de bijbehorende timing.  
  • De architectuur van een model moet worden geassocieerd met een ENTITY.
  • Aan een entiteit kunnen veel architecturen zijn gekoppeld.
  • Architectuurinstructies worden gelijktijdig uitgevoerd.
  • Enkele architectuurstijlen -
  • Gedrag: Gedragsmodel beschrijft hoe ontwerpen werken.

RTL: RTL beschrijft hoe ontwerpen kunnen worden geïmplementeerd met behulp van registers.

Functioneel: het bevat geen timing.

  • structuur-: Implementatie van poortniveau-structuur.
  • Informatiestroom: Implementatie van de waarheidstabel.
  • Architectuur wordt beëindigd met -
    • EINDE ARCHITECTUUR ;
    • EINDE ARCHITECTUUR
    • EINDE;

Een algemene structuur voor het schrijven van een architectuur:

ARCHITECTUUR <identificatie> OF <entiteit_identifier> IS

          SIGNAAL signal_1: INTEGER: = 1;

          CONSTANTE cnst: = BOOLEAN: = waar;

          TYPE proces IS (W X Y Z);

          - Attribuutverklaringen

          - Kenmerkspecificaties

          - Subprogramma declaraties

          - Subprogramma body

BEGINNEN

          Verwerk verklaringen

          Gelijktijdige procedurele oproepen

          Signaal toewijzing

          Genereer verklaringen

EINDE ARCHITECTUUR <identificatie>;

IMG18 1024x576 1
RTL-schema van een AND-poort, van VHDL Tutorial

Configuratie     

Zoals besproken, een eerder configuration wordt gebruikt om architectuur aan een entiteit te koppelen. Associëren of combineren is nodig omdat een ENTITY niet kan werken totdat de architectuur eraan is gekoppeld. Hieronder wordt een algemene configuratiestructuur gegeven.

CONFIGURATIE  < identificatie > OF < entiteitsnaam > IS

          VOOR < architectuurnaam >

                    VOOR < instantienaam >: component_naam > GEBRUIK < entiteit > ( architectuur >)

                    EINDE VOOR;

                    VOOR < instantienaam >: component_naam > GEBRUIK < configuratienaam >

                    EINDE VOOR;

          EINDE VOOR;

EINDE CONFIGURATIE < identificatie >;

Pakketten

VHDL-pakketten zijn een hele eenheid van een heel systeem. Het is het belangrijkste doel van de implementatie van VHDL. Een pakket bestaat uit twee delen. Zoals eerder gezegd, vormen pakketverklaringen en de body van het pakket een compleet pakket.

VHDL levert twee ingebouwde pakketten.

Enkele regels en basisinformatie over VHDL-zelfstudie

Laten we het eens hebben over wat basisinformatie voordat we duiken om de VHDL-tutorial te verkennen.

1. Gereserveerde zoekwoorden: VHDL heeft een aantal gereserveerde sleutelwoorden (die niet kunnen worden gebruikt voor het declareren van een variabele).

2. Onderdelen: VHDL heeft twee stappen of onderdelen voor het maken van een model. De ene is simulatie en de andere is synthese en simulatie.

3. Hoofdlettergevoelige taal: VHDL is geen hoofdlettergevoelige taal (voor het grootste deel).

4. Commentaar: Om commentaar te geven op een uitspraak in de VHDL-code-editor, begint u de zin met -, bijvoorbeeld:

- Dit is een opmerking in VHDL.

5. Beëindiging: VHDL-codes en elke afzonderlijke regel met codes worden beëindigd met een puntkomma (indien nodig). 

6. Ruimtegevoeligheid: VHDL is niet gevoelig voor witruimte.

Syntaxis en enkele belangrijke VHDL-zelfstudieconcepten voor het schrijven van VHDL-codes

  1. Array met voorbeelden
  2. Proces met voorbeelden
  3. IF - THEN - ELSIF implementatie met voorbeelden.
  4. CASE-verklaring
  5. FOR LOOP

A. Reeks

Array slaat waarde op. Het is een door de gebruiker gedefinieerd gegevenstype om waarde op te slaan. Een array kan variabelen van het type signaal, constanten bevatten.

Een algemene structuur om een ​​array te declareren wordt hieronder gegeven:

TYPE array_naam IS ARRAY (bereik) OF data type;

Bijvoorbeeld,

TYPE lambdageeks IS ARRAY (0 tot 9) VAN std_logic_vector (0 TOT 9);

B. Procesverklaring

Proces is een gelijktijdige en gesynchroniseerde verklaring. Het introduceert de chronologische uitspraken. Meerdere processen lopen parallel als het model dat nodig heeft.

Een proces bestaat uit twee delen. Ze zijn de uitvoering van het proces en wachten vervolgens op de volgende voorwaarde.

SYNTAXIS:

gevoeligheidslijst

          verklaringen

beginnen

          chronologische_verklaringen;

eindproces;

C. IF - THEN - ELSIF implementatie

Deze uitspraken worden gebruikt voor het implementeren van een voorwaarde en voor hun resultaat.

Een if-voorwaarde kan een oneindig aantal vertakkingen hebben volgens de vereiste. Een aanzienlijk aantal andere aandoeningen is ook mogelijk. Maar in een if-lus kan er maar één andere voorwaarde zijn. Een if-lus wordt beëindigd door de instructie end if. Als de gegeven voorwaarde waar is, zal het de lus binnengaan en de instructie uitvoeren. Als het niet lukt, ga dan voor de instructie else of elsif.

De syntaxis van de uitspraken wordt hieronder gegeven.

SYNTAXIS

          if voorwaardelijke_ooleaanse_expressie harte

                    verklaring1

          Elsif voorwaardelijke_ooleaanse_expressie harte

                    verklaring2

          . . .

          anders

                    verklaring3

          einde if;

D. CASE-verklaring

Case-statement zoekt uit welk statement wordt uitgevoerd. Een case-instructie kan ook worden vertakt als IF-ELSE-lussen.

SYNTAXIS

[etiket]: geval < voorwaardelijke expressie > is

          wanneer < keuze> =>

                    verklaring1

          wanneer <keuze> =>

                    verklaring2

          ...

          wanneer <keuze> =>

                    verklaring

einde geval [etiket];

E. FOR-lus

Een for-lus is een continue uitvoering van instructies volgens de randvoorwaarden.

Voor elke FOR-lus hebben we een iterator nodig die de bewerkingen in de for a-lus uitvoert. Het wordt ook wel een identificator genoemd. Het is standaard een geheel getal en het is niet nodig om de iterator te declareren. Het is een van de meest gebruikte loops voor het maken van complexe modellen. Het is bekender dan while-loops.

SYNTAXIS

[etiket]: For iterator in reeks lus

          Verklaring 1

          Verklaring 2

          ...

          Verklaring n

eindlus [etiket];

VHDL-simulatoren voor VHDL-zelfstudie

Enkele van de beroemde VHDL-simulatoren die worden gebruikt voor de implementatie van VHDL worden hieronder vermeld.

  1. Xilinx Vivado: De bekendste simulator voor VHDL is Xilinx Vivado. Xilinx biedt programmeerbare logische apparaten. We zullen deze simulator gebruiken voor het volgende deel van de VHDL-zelfstudie. 
  2. Cadans scherp: De vorige versie stond bekend als NC-VHDL.
  3. VHDL-simili: Symphony EDA ontwikkelt het. Het is gratis voor consumenten. 
  4. GHDL: Een van de beroemde gratis VHDL-simulators. 
  5. Bagageruimte: De Freerangefactory-organisatie heeft de simulator ontwikkeld. 
  6. NVC: Nick Gasson heeft de opensource VHDL-compiler ontwikkeld. 
  7. EDA-speeltuin: Nog een gratis versie gebaseerd op webbrowser. 
  8. Samenvatting VCS-MX.
Simulators voor VHDL, we zullen XILINX gebruiken voor onze VHDL Tutorial Image Credit - ™ / ®Xilinx, Inc., Xilinx-logo, gemarkeerd als openbaar domein, meer informatie over Wikimedia Commons

Maak uw eerste project met VHDL. Bekijk het volgende deel van VHDL-zelfstudie.

Voor meer elektronica-gerelateerde artikelen, klik op hier!

Laat een bericht achter