Tutoriels VHDL : 13 concepts importants

Dans ce didacticiel VHDL, nous aborderons certains des concepts de base liés à la technologie VHDL et quelques exemples de codage. Le didacticiel VHDL est segmenté comme suit :

SUJETS DE DISCUSSION

A. Qu'est-ce que VHDL?

B. Histoire et normalisation

C.Procédures de conception VHDL

D. Quelques règles et informations de base sur VHDL

E. Syntaxes et quelques concepts importants pour l'écriture de codes VHDL

Tutoriel sur les simulateurs VHDL pour VHDL

VHDL || Qu'est-ce que VHDL?

La forme complète de VHDL est l'acronyme de Very High Speed ​​Integrated Circuit Hardware Description Language (VHSIC-HDL).

Comme son nom l'indique, VHDL est un langage de description de matériel ou un type spécial de langage de programmation qui décrit les implémentations matérielles du système et des circuits numériques. Il s'agit d'un langage fortement typé et rappelle qu'il ne s'agit pas d'un langage de programmation.  

Histoire et normalisation

Le département américain de la Défense a une contribution significative au domaine technologique moderne. Il a donné naissance à trop de grandes idées et innovations. La Défense américaine a également développé VHDL en 1983. Il a été développé pour la documentation du comportement des circuits intégrés spécifiques à l'application.

Plus tard, certaines idées ont été implémentées à partir des langages de programmation Ada. Le VHDL a été normalisé pour la première fois en 1987. Il a été ajouté à plusieurs types de données de plusieurs types, y compris des chaînes et numériques et logiques.

Standardisation

VHDL ou VHSIC-HDL (Very High Speed ​​Integrated Circuit Hardware Description Language) est normalisé par la norme IEEE 1076. Il est mis à jour depuis sa naissance et a subi de nombreuses révisions. Examinons quelques-unes des révisions standard et des mises à jour majeures.

RévisionsActualités
IEEE 1076 - 1987Révision et normalisation de US Defence.
IEEE 1076 - 1993Est venu avec la plus grande version, et c'est la version la plus utilisée.
CEI 61691 -1-1-1: 2004Version IEEE 1076-2002 adoptée par la CEI
IEEE 1076-2008Mise à jour avec quelques changements majeurs tels que - Introduction de génériques sur les packages et utilisation de noms externes
CEI 61691 -1-1-1: 2011Version IEEE 1076-2008 adoptée par la CEI
Vérifiez la normalisation ici, Tableau du didacticiel VHDL – 1

Conception de VHDL

La conception VHDL a quelques unités de conception. Ils sont connus sous le nom d'entité, d'architecture, de configuration et de package.

Entité: L'entité définit les vues externes d'un modèle qui est un symbole.

Archi L'architecture définit la fonctionnalité d'un modèle qui est schématique.

Configuration: La configuration est utilisée pour associer l'architecture à une entité.

Paquet: Package est la collection d'informations qui peuvent être référencées par les modules VHDL. Un package VHDL se compose de deux parties. Ce sont: la déclaration du package et le corps du package.

1200px Vhdl additionneur signé source.svg
Un code de base conçu dans le didacticiel VHDL, crédit d'image - Vhdl_signed_adder.pngRévRagnarok travail dérivé: Bernard LadenthinSource de l'additionneur signé VHDLCC BY-SA 3.0

Déclaration d'entité

La structure générale de la déclaration d'entité est donnée ci-dessous -

ENTITÉ < nom_entité > IS

          Déclarations génériques

          Déclarations portuaires

ENTITÉ FIN <nom_entité>;

  • peut être alphabétique / numérique ou alphanumérique.
  • Les déclarations génériques servent à transmettre des informations dans un modèle.
  • Les déclarations de port servent à décrire les broches d'entrée et de sortie.
  • Une entité peut être fermée de plusieurs manières.
    • ENTITÉ FIN <nom_entité>;
    • ENTITÉ FIN;
    • FIN;

Déclarations de port

Une structure générale pour les déclarations de port est donnée ci-dessous -

ENTITÉ < nom_entité > IS

          Déclarations génériques

          - Déclarations de port:

PORT (

          SIGNAL CLK, CLR : EN PEU;

          q: BOUT DE SORTIE

          - notez qu'il n'y a pas de point-virgule dans la dernière ligne des déclarations.

          );

ENTITÉ FIN <nom_entité>;

La structure de la déclaration de port: object_name : ;

  • Classe: La classe est ce qui peut être fait à un objet. Ici, la classe est le signal. Un point à retenir que le SIGNAL n'est pas écrit lors de l'écriture du programme; il est plutôt supposé et non obligatoire.
  • Nom_objet: C'est l'identifiant.
  • Mode: Il précise la direction.

DANS - Entrée

EN DEHORS - Sortie

CONTRIBUTION - Bidirectionnelle

TAMPON - Sortie avec retour interne

  • Type : Type spécifie ce qui peut être contenu à l'intérieur d'un objet.

Déclarations génériques

Une structure générale des déclarations génériques est donnée ci-dessous -

ENTITÉnom_entité> IS

          GÉNÉRIQUE (

                    CONSTANTE tplh, tphl: heure := 5 ns;

                    tphz, tplz: HEURE := 3ns ;

                    valeur_par défaut: INTEGER: = 1;

                    cnt_dir: STRING := «UP»

                    - notez qu'il n'y a pas de point-virgule dans la dernière ligne des déclarations.

                    );

          Déclarations portuaires

          END ENTITYnom_entité>;

  • Les valeurs génériques peuvent être écrasées lors de la compilation.
  • Le générique doit posséder la ténacité à une constante lors de la compilation d'un programme.  

Notez que le mot clé CONSTANT est supposé et qu'il n'est pas nécessaire d'écrire.

Architecture

  • Analogie-schématique: Le schéma d'analogie donne la description de la fonctionnalité d'un modèle et le timing qui lui est associé.  
  • L'architecture d'un modèle doit être associée à une ENTITY.
  • Une entité peut être associée à de nombreuses architectures.
  • Les déclarations d'architecture s'exécutent simultanément.
  • Quelques styles d'architecture -
  • Comportemental: le modèle comportemental décrit le fonctionnement des conceptions.

RTL: RTL décrit comment les conceptions peuvent être implémentées à l'aide de registres.

Fonctionnel: il n'inclut aucun timing.

  • Structural: Implémentation de la structure de niveau de porte.
  • Flux de données: Mise en place de la table de vérité.
  • L'architecture se termine par -
    • FIN DE L'ARCHITECTURE ;
    • ARCHITECTURE DE FIN
    • FIN;

Une structure générale d'écriture d'une architecture:

ARCHITECTURE <identifiant> OF <identificateur_entité> IS

          SIGNAL signal_1: INTEGER: = 1;

          CONSTANTE cnst: = BOOLEAN: = vrai;

          TYPE processus EST (W, X, Y, Z);

          - Déclarations d'attributs

          - Spécifications des attributs

          - Déclarations de sous-programme

          - Corps du sous-programme

COMMENCER

          Instructions de processus

          Appels procéduraux simultanés

          Affectation des signaux

          Générer des déclarations

ARCHITECTURE DE FIN <identifiant>;

IMG18 1024x576 1
Schéma RTL d'une porte AND, à partir du didacticiel VHDL

configuration     

Comme discuté, un précédent configuration est utilisée pour associer l'architecture à une entité. L'association ou la combinaison est nécessaire car une ENTITY ne peut pas fonctionner tant que l'architecture ne lui est pas associée. Une structure générale de configuration est donnée ci-dessous.

CONFIGURATION  < identifiant > OF < nom_entité > IS

          POUR < nom_architecture >

                    POUR < nom de l'instance >: Nom du composant > UTILISATION < entité > ( architecture >)

                    FIN POUR;

                    POUR < nom de l'instance >: Nom du composant > UTILISATION < nom_configuration >

                    FIN POUR;

          FIN POUR;

FIN DE LA CONFIGURATION < identifiant >;

Formules

Les packages VHDL sont une unité entière d'un système entier. C'est l'objectif principal de la mise en œuvre de VHDL. Un package comprend deux parties. Comme indiqué précédemment, les déclarations de package et le corps du package forment un package complet.

VHDL propose deux packages intégrés.

Quelques règles et informations de base sur le didacticiel VHDL

Laissez-nous discuter de jeter un coup d'œil à quelques informations de base avant de plonger pour explorer le didacticiel VHDL.

1. Mots clés réservés: VHDL a certains mots clés réservés (qui ne peuvent pas être utilisés pour déclarer une variable).

2. Pièces: VHDL comporte deux étapes ou parties pour la création d'un modèle. L'un est la simulation et l'autre la synthèse et la simulation.

3. Langage sensible à la casse: VHDL n'est pas un langage sensible à la casse (pour la plupart).

4. Commentaires: Pour commenter une instruction dans l'éditeur de code VHDL, commencez la phrase par -, par exemple:

- Ceci est un commentaire en VHDL.

5. Résiliation: Les codes VHDL et chaque ligne de codes se terminent par un point-virgule (chaque fois que nécessaire). 

6. Sensibilité spatiale: VHDL n'est pas sensible aux espaces blancs.

Syntaxes et quelques concepts importants du didacticiel VHDL pour l'écriture de codes VHDL

  1. Tableau avec des exemples
  2. Processus avec exemples
  3. IF - THEN - Implémentation ELSIF avec des exemples.
  4. Déclaration CASE
  5. POUR BOUCLE

A. Tableau

Array stocke la valeur. Il s'agit d'un type de données défini par l'utilisateur pour stocker la valeur. Un tableau peut contenir des variables de type signal, constantes.

Une structure générale pour déclarer un tableau est donnée ci-dessous:

TYPE nom_tableau IS TABLEAU (intervalle) OF Type de données;

À titre d'exemple,

TYPE lambdageeks IS ARRAY (0 à 9) OF std_logic_vector (0 UPTO 9);

B. Énoncé de processus

Le processus est une déclaration simultanée et synchronisée. Il introduit les déclarations chronologiques. Plusieurs processus s'exécutent en parallèle si le modèle est nécessaire.

Un processus se compose de deux parties. Ils sont l'exécution du processus et attendent ensuite la condition suivante.

SYNTAXE:

processus sensibilité_list

          déclarations

commencer

          déclarations_ chronologiques;

processus final;

C. SI - ALORS - Mise en œuvre de l'ELSIF

Ces instructions sont utilisées pour implémenter une condition et pour leur résultat.

Une condition if peut avoir un nombre infini de branches selon l'exigence. Un nombre considérable de conditions elsif est également possible. Mais, dans une boucle if, il ne peut y avoir qu'une seule condition else. Une boucle if se termine par l'instruction end if. Si la condition donnée est vraie, alors il entrera dans la boucle et exécutera l'instruction. Si cela échoue, optez pour une instruction else ou elsif.

La syntaxe des instructions est donnée ci-dessous.

SYNTAXE

          if expression_booléenne_conditionnelle puis

                    déclaration1

          Elsif expression_booléenne_conditionnelle puis

                    déclaration2

          . . .

          d'autre

                    déclaration3

          fin if;

D. Déclaration CASE

L'instruction Case détermine quelle instruction sera exécutée. Une instruction case peut également être branchée sous forme de boucles IF-ELSE.

SYNTAXE

[étiquette]: maisons < expression-conditionnelle > is

          quand < le choix> =>

                    déclaration1

          quand <le choix> =>

                    déclaration2

          ...

          quand <le choix> =>

                    déclaration

fin maisons [étiquette];

E. Boucle FOR

Une boucle for est une exécution continue d'instructions selon les conditions limites.

Pour chaque boucle FOR, nous avons besoin d'un itérateur qui effectuera les opérations de la boucle for a. Il est également connu sous le nom d'identifiant. C'est un entier par défaut et il n'est pas nécessaire de déclarer l'itérateur. C'est l'une des boucles les plus couramment utilisées pour créer des modèles complexes. C'est plus familier que les boucles while.

SYNTAXE

[étiquette]: en itérateur in gamme boucle

          Déclaration1

          Déclaration2

          ...

          Déclaration n

boucle de fin [étiquette];

Tutoriel sur les simulateurs VHDL pour VHDL

Certains des célèbres simulateurs VHDL utilisés pour la mise en œuvre de VHDL sont répertoriés ci-dessous.

  1. Xilinx Vivado : Le simulateur le plus connu pour VHDL est Xilinx Vivado. Xilinx fournit des dispositifs logiques programmables. Nous utiliserons ce simulateur pour la prochaine partie du didacticiel VHDL. 
  2. Cadence incisive: La version précédente était connue sous le nom de NC-VHDL.
  3. Simili VHDL : Symphony EDA le développe. C'est gratuit pour les consommateurs. 
  4. GHDL : L'un des célèbres simulateurs VHDL gratuits. 
  5. Bateau: L'organisation Freerangefactory a développé le simulateur. 
  6. NVC: Nick Gasson a développé le compilateur OpenSource VHDL. 
  7. Aire de jeux EDA: Une autre version gratuite basée sur un navigateur Web. 
  8. Résumé VCS-MX.
Simulateurs pour VHDL, nous utiliserons XILINX pour notre tutoriel VHDL Image Credit - ™ / ®Xilinx, Inc., Logo Xilinx, marqué comme domaine public, plus de détails sur Wikimedia Commons

Faites votre premier projet en utilisant VHDL. Découvrez la partie suivante du didacticiel VHDL.

Pour plus d'articles sur l'électronique, cliquez sur ici!

Laisser un commentaire