Conception de composants programmables et langage HDL PDF
Document Details
Uploaded by FavoriteWildflowerMeadow2663
ESIEA
Chiraz Trabelsi
Tags
Summary
Ce document présente un aperçu des aspects avancés concernant la conception de composants programmables et du langage HDL, en utilisant spécifiquement VHDL. L'organisaton du chapitre et les descriptions génériques sont détaillées, en plus des instructions generate..
Full Transcript
Conception de composants programmables et langage HDL Aspects avancés S o u s - T i t r e en VHDL Chiraz TRABELSI Concepti...
Conception de composants programmables et langage HDL Aspects avancés S o u s - T i t r e en VHDL Chiraz TRABELSI Conception de composants programmables et langage HDL 4A-S1 Majeure systèmes embarqués et autonomes [email protected] 1 Organisation du chapitre 1) Les descriptions génériques 2) Génération d’éléments selon une structure régulière 3) Les machines à états 4) Les règles à suivre lors de l’écriture des designs synchrones 5) Le VHDL 2008 Conception de composants programmables et langage HDL 2 4A-S1 Majeure systèmes embarqués et autonomes Les descriptions génériques L’instruction generic permet de spécifier un attribut générique qui peut avoir différentes valeurs lors de l’instanciation du composant Compteur 8-bits Compteur générique Conception de composants programmables et langage HDL 3 4A-S1 Majeure systèmes embarqués et autonomes Les descriptions génériques Instanciation d’un composant générique Conception de composants programmables et langage HDL 4 4A-S1 Majeure systèmes embarqués et autonomes L’instruction generate 2) Génération d’éléments selon une structure régulière L’instruction generate permet de générer facilement des composants dans une boucle ou sous condition Deux possibilités: 1) La structure régulière G1: for I in SOME_RANGE generate -- Instanciation de composant ou process end generate; 2) La structure optionnelle G2: if CONDITION generate -- Instanciation de composant ou process end generate; Conception de composants programmables et langage HDL 5 4A-S1 Majeure systèmes embarqués et autonomes L’instruction generate Exemple: Registre de 4 bits Conception de composants programmables et langage HDL 6 4A-S1 Majeure systèmes embarqués et autonomes L’instruction generate Exemple avec les deux schémas for et if Conception de composants programmables et langage HDL 7 4A-S1 Majeure systèmes embarqués et autonomes L’instruction generate Exemple avec les deux schémas for et if + generic Conception de composants programmables et langage HDL 8 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) a Système combinatoire Système séquentiel Entrées: a, b, c,d Entrée: a Etat0 Sortie: N Sortie: N N=0 a La sortie du système à l’instant t a dépend de la séquence des entrées Etat1 dans le temps a N=1 Le système évolue d’un état à un a autre selon les valeurs des entrées Etat2 Pour connaitre la sortie d’un système N=1 séquentiel, il faut connaitre son état La sortie du système à l’instant t courant ne dépend que des valeurs des entrées à cet instant a Il faut sauvegarder l’état du système La sortie s’écrit comme une Utilisation des bascules pour la fonction des entrées courantes. mémorisation Conception de composants programmables et langage HDL 9 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Deux types de systèmes séquentiels Asynchrone: peut changer ses valeurs de sortie et d’état à chaque fois qu'il y a un changement des entrées Synchrone: change d’état à des moments fixes, généralement définis par le front montant ou descendant d'un signal d'horloge Dans ce module, on ne considère que des machines à états synchrones Conception de composants programmables et langage HDL 10 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) L’état courant est déterminé par les sorties des bascules Les bascules permettent de conserver l’état courant (mémorisation) pour un cycle d’horloge et de le mettre à jour au prochain front d’horloge Exemple de système séquentiel: (dé)compteur séquentiel modulo 4 0 1 1er cycle d’horloge Etat 0: QB=0 QA=0 2ème cycle d’horloge 3 2 Etat 1: QB=0 QA=1 décompteur modulo 4 3ème cycle d’horloge Etat 2: QB=1 QA=0 4ème cycle d’horloge Etat 3: QB=1 QA=1 5ème cycle d’horloge Etat 0: QB=0 QA=0 Conception de composants programmables et langage HDL 11 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Les machines à états ont un ensemble d’entrées et de sorties. Un système séquentiel qui implémente une machine à états aura donc des entrées et des sorties en plus de celles des bascules. E Etat0 N=0 E E Etat1 E S=1 E Implémentation de la machine à états Etat2 Entrées: E S=1 Sorties: S Les états sont implémentés par les bascules Q0 et Q1 E Conception de composants programmables et langage HDL 12 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Logique du État État Logique Entrées Sorties prochain futur courant de sortie état Clk Machine de Moore les sorties ne dépendent que de l’état courant. Machine de Mealy les sorties dépendent de l’état courant et des entrées. Attention: pour les deux machines Moore et Mealy, l’état futur dépend de l’état courant et des entrées. Conception de composants programmables et langage HDL 13 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Exemple d’une machine de Moore Idle Start = 1 Go1 Reset = 1 Actions F =0 F=1 Transition G =0 G=0 conditionnelle Entrées : Etats : Transition - Reset - Idle inconditionnelle - Start - Go1 - Clk - Go2 Go2 Sorties : G=1 -F F=0 -G Conception de composants programmables et langage HDL 14 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Exemple d’une machine de Moore Idle Start = 1 Go1 Reset = 1 Actions F =0 Transition conditionnelle F=1 G =0 G=0 Transition Entrées : Etats : inconditionnelle - Reset - Idle - Start - Go1 - Clk - Go2 Go2 Sorties : G=1 -F F=0 -G Résultat de simulation Résultat RTL Conception de composants programmables et langage HDL 15 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Exemple d’une machine de Mealy Actions Start = 1 /F=1, G=0 Reset = 1 Idle Go1 Transition conditionnelle G=1, F=0 Entrées : Etats : - Reset - Idle - Start - Go1 Transition - Clk - Go2 G=0, F=0 inconditionnelle Sorties : Go2 -F -G Conception de composants programmables et langage HDL 16 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Exemple d’une machine de Mealy Actions Start = 1 /F=1, G=0 Reset = 1 Idle Go1 Transition conditionnelle G=1, F=0 Entrées : Etats : - Reset - Idle - Start - Go1 Transition - Clk - Go2 G=0, F=0 inconditionnelle Sorties : Go2 -F -G Résultat de simulation Résultat RTL Conception de composants programmables et langage HDL 17 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Logique du État État Logique Entrées Sorties prochain futur courant de sortie état Clk Machine de Moore les sorties ne dépendent que de l’état courant. Machine de Mealy les sorties dépendent de l’état courant et des entrées. Inconvénients des sorties combinatoires 1) délai supplémentaire après le changement d’état interne de la machine Machine de Moore Machine de Mealy Conception de composants programmables et langage HDL 18 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Logique du État État Logique Entrées Sorties La valeur de s prend plus de temps prochain futur courant de sortie état pour être prise en compte dans la Clk sortie c que dans la sortie d À chaque changement de s, la valeur de y n’aura pas la bonne valeur pour un laps de temps avant Machine de Moore les sorties ne dépendent que de l’état courant. de passer à la bonne valeur Machine de Mealy les sorties dépendent de l’état courant et des entrées. s’il y a un autre système sensible au changement de la valeur de y, le glitch va se propager Inconvénients des sorties combinatoires Le problème de Glitch 2) apparition d’impulsions parasites de courte durée sur les sorties à cause des hasards statiques (glitches, des états logiques momentanément incorrects) lorsque les couches combinatoires ont des longueurs différentes dans la logique de sortie Conception de composants programmables et langage HDL 19 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Logique du État État Logique Entrées Sorties prochain futur courant de sortie état Clk Les transitions suivantes sont possibles: 01 11 10 État transitoire Machine de Moore les sorties ne dépendent que de l’état courant. ou bien 01 00 10 Machine de Mealy les sorties dépendent de l’état courant et des entrées. En passant de l’état 01 à l’état 10, x qui devrait rester à ‘1’, pourrait prendre transitoirement une valeur fausse ‘0’. Inconvénients des sorties combinatoires Le problème des états transitoires 3) apparition d’impulsions parasites de courte durée sur les sorties à cause des changements d’état transitoires des bits du registre d’état Conception de composants programmables et langage HDL 20 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Solution: Les machines à sorties synchronisées Mealy Les sorties sont préparées avant le front actif d’horloge Les changements d'état des sorties ont tous lieu simultanément, sur le même front d’horloge Avantage : pas de hasard statique, indépendance vis-à-vis des changements d’état transitoires des bits du registre d’état Inconvénient : il faut une flip-flop supplémentaire par bit de sortie Conception de composants programmables et langage HDL 21 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Machines à sorties synchronisées Modélisation utilisée dans ce cours Les actions sont notées dans les états (puisque de toute façon elles sont effectuées au front de l’horloge), mais les affectations des valeurs de sorties dans le code VHDL se fera sur test des entrées c’est une machine de Mealy avec des sorties synchronisées Idle Start = 1 Go1 Reset = 1 F =0 F=1 G =0 G=0 Entrées : Etats : - Reset - Idle - Start - Go1 - Clk - Go2 Go2 Sorties : G=1 -F F=0 -G Conception de composants programmables et langage HDL 22 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Machines à sorties synchronisées Traduction en VHDL Un seul process (un autre avantage des sorties synchronisées) Les sorties sont initialisées au reset Les affectations liées aux sorties ne concernent que les changements de valeurs en passant d’un état à un autre Idle Start = 1 Go1 Reset = 1 F =0 F=1 G =0 G=0 Entrées : Etats : - Reset - Idle - Start - Go1 - Clk - Go2 Go2 Sorties : G=1 -F F=0 -G Conception de composants programmables et langage HDL 23 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Machines à sorties synchronisées Résultat RTL Résultat de simulation Conception de composants programmables et langage HDL 24 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Cas de sorties plus complexes: un compteur par exemple Idle Start = 1 Go1 Reset = 1 cnt = 0 cnt=cnt+1 S=0 S=0 Entrées : Etats : cnt=10 - Reset - Idle - Start - Go1 - Clk - Go2 Go2 Sorties : S=1 - cnt -S Si les actions sont des actions de changements de niveau sur les sorties, il est très simple d’écrire la machine à états sous forme de machine de Mealy S’il y a des actions plus compliquées telles que l’incrémentation d’un compteur, elles seront traitées en action d’états (actions de Moore) on obtient une machine mixte Conception de composants programmables et langage HDL 25 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Cas de sorties plus complexes: un compteur par exemple 1ère version: utilisation d’une variable pour le compteur Idle Start = 1 Go1 Reset = 1 cnt = 0 cnt=cnt+1 S=0 S=0 Entrées : Etats : cnt=10 - Reset - Idle - Start - Go1 - Clk - Go2 Go2 Sorties : S=1 - cnt 1 2 3 4 5 6 7 8 9 10 -S 26 Conception de composants programmables et langage HDL 26 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Cas de sorties plus complexes: un compteur par exemple 2ème version: utilisation d’un signal pour le compteur Idle Start = 1 Go1 Reset = 1 cnt = 0 cnt=cnt+1 S=0 S=0 Entrées : Etats : cnt=10 - Reset - Idle - Start - Go1 - Clk - Go2 Go2 Sorties : S=1 - cnt -S Conception de composants programmables et langage HDL 27 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Exercice Nous allons construire ici le séquenceur (contrôleur) d'un chronomètre (Watch Controller) grâce à une description en machine à états (FSM). Le chronomètre possède deux boutons nommés « Start_Stop » et « Clear ». Le bouton « Start_Stop » permet de démarrer/arrêter le chronomètre et le bouton « Clear » permet de le remettre à 0. Chronomètre Cnt_en Start_stop Cœur du Contrôleur Clear chronomètre Cnt_clr Conception de composants programmables et langage HDL 28 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Exercice: Compléter le code suivant pour implémenter la machine à états à droite Conception de composants programmables et langage HDL 29 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Solution Conception de composants programmables et langage HDL 30 4A-S1 Majeure systèmes embarqués et autonomes Les machines à états finis (FSM) Solution Après Compilation (Analysis & Elaboration) Tools Netlist Viewers State Machine Viewer Conception de composants programmables et langage HDL 31 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 1) Ne pas générer de rebouclage combinatoire Il faut écrire de façon à ne pas générer des rebouclages dans le combinatoire (dans les instructions concurrentes et dans les process combinatoires) parce que c’est une source d’instabilité Conception de composants programmables et langage HDL 32 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 1) Ne pas générer de rebouclage combinatoire OK Pas OK Résultat RTL Résultat RTL Conception de composants programmables et langage HDL 33 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 1) Ne pas générer de rebouclage combinatoire Exemple d’un circuit instable Résultat RTL ModelSim arrête la simulation quand on veut tester le cas où A vaut ‘1’ car cela va faire osciller la valeur de V et donc celle de F Si on simule avec ce banc de test Conception de composants programmables et langage HDL 34 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 2) Ne pas générer de latchs Il faut écrire de façon à ne pas générer des latchs qui consomment des ressources inutilement et ajoutent des délais de propagation Exemple 1 Résultat RTL Conception de composants programmables et langage HDL 35 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 2) Ne pas générer de latchs Il faut écrire de façon à ne pas générer des latchs qui consomment des ressources inutilement et ajoutent des délais de propagation Exemple 2 Résultat RTL Conception de composants programmables et langage HDL 36 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 3) Optimiser l’utilisation des bascules flip-flop Il faut écrire de façon à minimiser le nombre de bascules générées par l’outil de synthèse Attention: l’outil de synthèse n’optimise pas les bascules, mais seulement la logique combinatoire. Si vous voulez que votre circuit consomme mois de bascules et donc moins de ressources, c’est à vous d’optimiser votre code VHDL Conception de composants programmables et langage HDL 37 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 3) Optimiser l’utilisation des bascules flip-flop Les outils de synthèse RTL infèrent les registres directement à partir du code VHDL suivant certaines règles élémentaires : Des registres ne sont inférés à la synthèse que dans les process synchrone. Signaux: Tous les signaux assignés dans un process synchrone sont synthétisés par des registres. Variables : les variables assignées dans un process synchrone peuvent être synthétisées soit par un fil, soit par un registre. Les variables sur lesquelles sont assignées de nouvelles valeurs avant d’être lues sont synthétisées par un fil. (assigné avant d’être lu => fil) Les variables qui sont lues avant d’être assignées sont synthétisées par un registre (on a besoin de les stocker dans des registres pour pouvoir les lire au prochain déclenchement du process). (lu avant d’être assigné => registre) Conception de composants programmables et langage HDL 38 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 3) Optimiser l’utilisation des bascules flip-flop Exercice 1: Combien de Flip-Flops seront générés par ce code? Conception de composants programmables et langage HDL 39 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 3) Optimiser l’utilisation des bascules flip-flop Solution: Combien de Flip-Flops seront générés par ce code? 1 Résultat RTL Conception de composants programmables et langage HDL 40 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 3) Optimiser l’utilisation des bascules flip-flop Exercice 2: Combien de Flip-Flops seront générés par ce code? Conception de composants programmables et langage HDL 41 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 3) Optimiser l’utilisation des bascules flip-flop Solution : Combien de Flip-Flops seront générés par ce code? 9 Résultat RTL Conception de composants programmables et langage HDL 42 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 3) Optimiser l’utilisation des bascules flip-flop Exercice 3: Comment faut il réécrire le code pour s’assurer qu’il n’y ait qu’une seule bascule D ? Résultat RTL Conception de composants programmables et langage HDL 43 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 3) Optimiser l’utilisation des bascules flip-flop Solution : Comment faut il réécrire le code pour s’assurer qu’il n’y ait qu’une seule bascule D ? Résultat RTL Conception de composants programmables et langage HDL 44 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 4) Privilégier les resets asynchrones Choisissez plutôt les resets asynchrones pour consommer mois de ressources Exemple: Résultat RTL Conception de composants programmables et langage HDL 45 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 5) Les évènements du signal d’horloge Deux manières pour détecter un front montant d’un signal d’horloge clk: 1) if rising_edge(clk) 2) If clk’event and clk=‘1’ Noter que clk’event est égal à vrai seulement si le signal clk vient de changer de valeur, le test clk=‘1’ permet de vérifier qu’il s’agit d’un front montant et pas un front descendant Conception de composants programmables et langage HDL 46 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 5) Les évènements du signal d’horloge Autres styles légaux A la différence de ce qu’on a vu sur les processus non synthétisables qui utilisent les instructions wait, ces styles permettent la synthèse Pour ces styles, il faut que la liste de sensibilité du processus soit vide. Inconvénient: un reset asynchrone n’est pas possible À éviter Conception de composants programmables et langage HDL 47 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 6) Le test des entrées (autres que le clock et le reset) a) Le test se fait après le test du front montant A éviter Conception de composants programmables et langage HDL 48 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 6) Le test des entrées (autres que le clock et le reset) b) Comment on fait si on a besoin de détecter un front montant/descendant sur une entrée autre que le signal d’horloge? Il ne faut jamais utiliser les fonctions rising_edge( ) et falling_edge() ni l’attribut ‘event sur un signal autre que le signal d’horloge car l’outil de synthèse le considèrera comme un signal d’horloge Solution: Ajouter un module qui permet de générer une impulsion qui dure un cycle d’horloge à chaque fois que cette entrée change de valeur Conception de composants programmables et langage HDL 49 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 6) Le test des entrées (autres que le clock et le reset) b) Comment on fait si on a besoin de détecter un front montant/descendant sur une entrée autre que le signal d’horloge? Solution: Ajouter un module qui permet de générer une impulsion qui dure un cycle d’horloge à chaque fois de cette entrée change de valeur Conception de composants programmables et langage HDL 50 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 6) Le test des entrées (autres que le clock et le reset) b) Comment on fait si on a besoin de détecter un front montant/descendant sur une entrée autre que le signal d’horloge? Exemple: inverser l’état d’une led à chaque appui sur un bouton (on considère le font montant ici) Résultat RTL Conception de composants programmables et langage HDL 51 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 6) Le test des entrées (autres que le clock et le reset) b) Comment on fait si on a besoin de détecter un front montant/descendant sur une entrée autre que le signal d’horloge? Le détecteur de front marche bien si on a une entrée sans bruits (exemple: des boutons poussoirs sans rebonds tels que ceux de la carte sur laquelle on travaille) Que faire si on veut travailler sur des boutons externes ou sur les switchs de la carte ? Conception de composants programmables et langage HDL 52 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 6) Le test des entrées (autres que le clock et le reset) b) Comment on fait si on a besoin de détecter un front montant/descendant sur une entrée autre que le signal d’horloge? Cas d’une entrée avec rebonds On suppose que si le signal ne change pas de valeurs durant 10 ms après avoir détecté un rebond, alors il a dépassé la zone du rebond et on peut prendre cette valeur du signal il faut implémenter un compteur qui se met à compter dès que le signal change de valeur et s’il atteint 10 ms, il s’arrête et la nouvelle valeur du signal est utilisée 10 ms 10 ms Conception de composants programmables et langage HDL 53 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 6) Le test des entrées (autres que le clock et le reset) b) Comment on fait si on a besoin de détecter un front montant/descendant sur une entrée autre que le signal d’horloge? Cas d’une entrée avec rebonds Conception de composants programmables et langage HDL 54 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 6) Le test des entrées (autres que le clock et le reset) b) Comment on fait si on a besoin de détecter un front montant/descendant sur une entrée autre que le signal d’horloge? Cas d’une entrée avec rebonds Ajout de la détection du front Conception de composants programmables et langage HDL 55 4A-S1 Majeure systèmes embarqués et autonomes Règles à suivre lors de l’écriture des designs synchrones 7) Minimiser la longueur de la partie combinatoire pour maximiser la fréquence d’horloge Si le temps de propagation de la partie combinatoire est trop long, la fréquence maximale du système sera petite on sera obligé de choisir une fréquence d’horloge inférieure ou égale à cette fréquence maximale, ce qui aura un impact sur le temps d’exécution Exemple Pour garantir que le système marche normalement pour une fréquence d’horloge 1/Tclk, il faut que la partie combinatoire entre les bascules D1 et D2 ait un tpd inférieur à Tclk – tco - tsu Conception de composants programmables et langage HDL 56 4A-S1 Majeure systèmes embarqués et autonomes Le VHDL 2008 Le VHDL 2008 apporte quelques simplifications dans la syntaxe du langage VHDL. Il est supporté par quelques outils (souvent un sous-ensemble du VHDL 2008) La syntaxe utilisée dans ce cours est celle du VHDL 1993 Voici quelques apports du VHDL 2008 Plus de flexibilité dans l’affectation des valeurs aux std_logic_vector sous forme de chaines de caractères (signé, non signé, mélange de ‘X’, ‘U’, ‘0’ et ‘1’, etc.) Plus de flexibilité dans l’instruction others pour les vecteurs d’agrégats L’utilisation du mot clé all dans la liste de sensibilité des process combinatoires Les opérations arithmétiques sur des std_logic_vector Les commentaires multi-lignes en utilisant Conception de composants programmables et langage HDL 57 4A-S1 Majeure systèmes embarqués et autonomes