A. Vachoux, v2.0, 2003 Le langage VHDL - 1 Le langage VHDL Le langage VHDL Alai
A. Vachoux, v2.0, 2003 Le langage VHDL - 1 Le langage VHDL Le langage VHDL Alain Vachoux Laboratoire de Systèmes Microélectroniques alain.vachoux@epfl.ch Ce document est une introduction aux aspects principaux du langage VHDL. Il ne prétend pas être exhaustif, mais doit fournir une base suffisante pour démarrer des activités de modélisation et de simulation de circuits numériques. Une liste de références est fournie pour approfondir le sujet. A. Vachoux, v2.0, 2003 Le langage VHDL - 2 A. Vachoux, v2.0, 2003 Le langage VHDL - 2 ♦Introduction - p. 3 ♦Organisation d'un modèle VHDL - p. 15 ♦Premiers modèles VHDL - p. 19 ♦Représentation de l'information - p. 28 ♦Description du comportement - p. 45 ♦Description de la structure - p. 64 ♦Aspects avancés - p. 71 ♦Références - p. 96 Table des matières Table des matières A. Vachoux, v2.0, 2003 Le langage VHDL - 3 A. Vachoux, v2.0, 2003 Le langage VHDL - 3 Table des matières Table des matières ♦Introduction • Qu'est ce que VHDL? • Domaine d'application • Modèle et simulation logique • Utilisation de VHDL ♦Organisation d'un modèle VHDL ♦Premiers modèles VHDL ♦Représentation de l'information ♦Description du comportement ♦Description de la structure ♦Aspects avancés ♦Références A. Vachoux, v2.0, 2003 Le langage VHDL - 4 A. Vachoux, v2.0, 2003 Le langage VHDL - 4 Qu'est ce que VHDL? Qu'est ce que VHDL? ♦Langage de description de systèmes matériels • Comportement • Structure • Documentation ♦Développement de modèles exécutables • Simulation • Synthèse (sous-ensemble) ♦Modèle logiciel • Langage fortement typé • Modularité • Extensibilité ♦Standard IEEE (réf. IEEE Std 1076-2002) ♦Supporté par tous les outils EDA Introduction Le langage VHDL permet la description des aspects les plus importants d’un système matériel (hardware system), à savoir son comportement, sa structure et ses caractéristiques temporelles. Par système matériel, on entend un système électronique arbitrairement complexe réalisé sous la forme d’un circuit intégré ou d’un ensemble de cartes. Le comportement définit la ou les fonctions que le système remplit (p. ex. le comportement d’un microprocesseur comporte, entre autres, des fonctions arithmétiques et logiques). La structure définit l’organisation du système en une hiérarchie de composants (p. ex. un microprocesseur est constitué d’une unité de contrôle et d’une unité opérative; cette dernière est elle-même, entre autres, constituée d’un composant réalisant les opérations arithmétiques entières et d’un composant réalisant les opérations arithmétiques en virgule flottante). Les caractéristiques temporelles définissent des contraintes sur le comportement du système (p. ex. les signaux d’un bus de données doivent être stables depuis un temps minimum donné par rapport à un flanc d’horloge pour qu’une opération d’écriture dans la mémoire soit valable). Un modèle VHDL est exécutable, c.à.d. qu'il est possible de lui appliquer des stimulis (également décrits en VHDL) et d’observer l’évolution des signaux du modèle dans le temps par simulation. La définition du langage précise les règles d'évaluation de l'état d'un modèle. Le langage VHDL est aussi utilisé pour la synthèse, par exemple pour dériver automatiquement un circuit à base de portes logique optimisé à partir d’une description au niveau RTL (Register-Transfer Level) ou algorithmique. Toute description VHDL légale n'est pas forcément synthétisable. Le langage VHDL est défini par le standard IEEE 1076. La dernière révision de la norme date de 2002. A. Vachoux, v2.0, 2003 Le langage VHDL - 5 A. Vachoux, v2.0, 2003 Le langage VHDL - 5 Histoire de VHDL Histoire de VHDL 1980 Début du projet VHDL financé par le US DoD 1985 Première version 7.2 publique 1987 Première version du standard IEEE Std 1076-1987 1993 Mise à jour du standard (IEEE Std 1076-1993) 2002 Mise à jour du standard (IEEE Std 1076-2002) Introduction le langage VHDL est un standard IEEE depuis 1987 sous la dénomination IEEE Std. 1076-1987 (VHDL-87). Il est sujet à révision tous les cinq ans. Une première révision, qui corrige certaines incohérences de la version initiale et qui ajoute de nouvelles fonctionnalités, a eu lieu en 1994 (IEEE Std. 1076-1993 ou VHDL-93). La dernière révision est celle de 2002 (IEEE Std. 1076-2002 ou VHDL-2002) . L’IEEE (Institute of Electrical and Electronics Engineers, http://www.ieee.org et http://standards.ieee.org/) est un organisme international qui définit entre autres des normes pour la conception et l’usage de systèmes électriques et électroniques. A. Vachoux, v2.0, 2003 Le langage VHDL - 6 A. Vachoux, v2.0, 2003 Le langage VHDL - 6 Domaine d'application Domaine d'application Performances Modèles statistiques Comportement Comp. concurrent Comp. séquentiel Equations logiques Equ. différentielles Circuit Logique Architecture (RTL) Système Structure Géométrie Processeurs, mémoires, interfaces ALU, registres, sous-programmes Portes logiques Primitives électriques Racks, cartes, circuits intégrés Plan Plan Cellules Eléments Domaines de descriptions Niveaux d'abstractions Introduction On considère trois domaines de description (ou vues). Les vues Comportement et Structure on déjà été introduites. La vue Géométrie décrit les caractéristiques physiques du système matériel. A chaque niveau d'abstraction correspond un degré de détail. Le niveau Système est le moins détaillé et le niveau Circuit est le plus détaillé. Le degré de détail dépend de • la représentation du temps: causalité, cycles/"ticks" d'horloge, valeurs entières, valeurs réelles • la représentation des données: jetons, valeurs entières ou réelles, mots binaires. Le langage VHDL est particulièrement adapté à la description de systèmes matériels au niveau RTL (Register Transfer Level) et au niveau Logique. Il peut être aussi utilisé au niveau Système et au niveau Circuit avec quelques limitations. VHDL ne permet pas de prendre en compte les aspects géométriques d'un système matériel. A. Vachoux, v2.0, 2003 Le langage VHDL - 7 A. Vachoux, v2.0, 2003 Le langage VHDL - 7 Comportement concurrent vs. séquentiel (1/3) Comportement concurrent vs. séquentiel (1/3) ♦Exemple: multiplieur, modèle algorithmique Introduction procedure sa_mult (A, B, Z) -- OPA, OPB opérandes d’entrée, tailles N, indices N-1:0 -- MRES résultat, taille 2*N, indices 2*N-1:0 -- REGA registre local, taille N, indices N-1:0 -- REGB registre local, taille 2*N, indices 2*N-1:0 -- ACC accumulateur, taille 2*N, indices 2*N-1:0 -- stop flag de fin d’opération begin REGA := OPA; REGB := OPB; -- charger les registres ACC := 0; -- initialiser l’accumulateur stop := FALSE; loop exit when stop; if REGA(0) = '1' then ACC := ACC + REGB; end if; REGA := '0' & REGA(N-1:1); -- décalage de REGA à droite REGB := REGB(2*N-2:0) & '0'; -- décalage de REGB à gauche stop := (REGA = 0); -- stop? end loop; MRES := ACC; -- résultat disponible end; Un modèle algorithmique (p.ex. d'un multiplieur à additions et décalages) est constitué d'un ensemble d'instructions qui doivent être exécutées dans l'ordre donné. On parle de comportement séquentiel. Le modèle ci-dessus n'est pas un modèle VHDL, mais un pseudo-code relativement proche. Il définit un certain nombre de variables (OPA, OPB, MRES, …, stop) qui ne correspondent pas nécessairement à des objets physiques (registres, signaux). Il est possible de développer un modèle VHDL réalisant l'algorithme ci-dessus et de le simuler. Par contre, il n'est pas garanti que le modèle VHDL soit synthétisable. A. Vachoux, v2.0, 2003 Le langage VHDL - 8 A. Vachoux, v2.0, 2003 Le langage VHDL - 8 Comportement concurrent vs. séquentiel (2/3) Comportement concurrent vs. séquentiel (2/3) ♦Exemple: multiplieur, modèle RTL S RB D IR CL R L D SH IF T AD D ER AC C FSM C o ntroller C L K L S B D O N E SH IFT IN IT AD D ST B L D C L R S T B A B 1 C L K 0 0 C L K 0 RES U L T S RA D IR C L R L D SH IFT D O N E SRB SR A AD DER ACC FSM XOR begin tâche1 tâche2 ... wait on ... processus P donnée contrôle Introduction Un modèle RTL est principalement basé sur une description concurrente du comportement du système matériel. On identifie des composants/blocs qui doivent remplir une fonction particulière (registres, additionneur, séquenceur/contrôleur, etc.) et des signaux communicants entre ces blocs. Les fonctions des blocs peuvent être décrites de manière séquentielle. Par contre, les blocs peuvent être considérés comme des processus concurrents asynchrones. Un processus définit une séquence d’opérations qui sont exécutées en fonction d’événements auxquels il est sensible (triggering conditions). Les opérations sont usuellement des opérations logiques ou arithmétiques avec un contrôle du flot d’exécution (condition, boucle). Dès qu’un processus est activé il exécute ses instructions jusqu’à un point d’arrêt. Le point d’arrêt est une instruction particulière qui dit essentiellement d’attendre jusqu’à ce qu’il y ait un nouvel événement sur les signaux sensibles du processus. L’exécution d’un processus est cyclique: la séquence d’instructions recommence au début une fois la dernière instruction exécutée. Chaque processus peut être activé de manière concurrente et asynchrone. Un "super processus" (séquenceur, scheduler) permet de contrôler l’activation des processus lors de la simulation. Un réseau de processus est interconnecté par des signaux qui sont des fonctions à valeurs discrètes d’une variable entière représentant le temps. Par exemple, un flanc montant du signal d’horloge CLK et un signal SHIFT actif va simultanément effectuer un décalage à gauche du registre SRB et un décalage à droite du registre SRA. L’effet sera effectivement simultané pour uploads/Management/ intro-vhdl-v2-0-notes.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/UqdVhhXCWxP0VUavyKAW6PzE2MjVHKU8XBRSE8LadRXX2eAJsvQ57OlueZGbA0k8IR1BpiYsD4UXJ7JsTRj7zqaL.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/xXqGaUQVXxkhyo6EqQx1JbTRIwFjgfKNlJJPc5esn2CLSUHX46XrXKEOEFn7sm8rnxmcsYETnczBgRvt0IRIDJaJ.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/wk1JKMvtAWUf9HrwpAVMok12wHboDMZyfmhXIpmiwJz1sHJDRYdi1nevGodgkQiMrRbFiGl4Bd2ZT0Xu1rQwrn5Q.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/LUnccC9IR9KDM2Xu0BFP5xKd5NU3C8AZQQoO6sLkCws2POXPXrshuf9s7xWzFvlS4O93xV1zDbjGPe54pXjRe3ps.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/h6geikcBjRKM1iGL8i5TBJZIsMi7EJCdfuqY1dFHFcj0Qaa3BmGvQ9g40Dwp5wKDDIeskjNgC1ccEMSOjHmZOMzu.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/8TqApTRd4dw0EoULNH2H6x4UyBTMArZcK9wSAM0g35WgKkXBKD0DwIvBsPhPUy3Z6Kml3JBHUfFjksNPb1GShX56.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/YXqVOYnOedK9ATIQQF2Nrc26l1z3OJex8CpkQPP2QXL00Wp08hrTopMdYI66rlBn07YpBLTJ4x3kNWURKGvVUyjd.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/OijVc7ikaoq5lnMfOKMKYoIc8bHE05z1mALclwQu0QyKbWq5UXjakj350PI8QpOH08RWKFwWeMpBJKBZBDZ1AtGo.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/AoJUQe9WHnjZ0mEfIy8D0p3rzQ3oEZyfWUdXCwesQdiRWw5ZhIartXKttaT8ROPKxkRUvOsNzkvIOVpk46jIC9N6.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/CojKFP85pV7NXhM7gjCammG088aj0yISc6cqBUhtd4D5KXiCDHXiuO9ngOEUeRIVAOO5Y071hyhhcO0QP7ZRKpuO.png)
-
27
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 27, 2022
- Catégorie Management
- Langue French
- Taille du fichier 0.7725MB