INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Analyse de machines.

Slides:



Advertisements
Présentations similaires
Machines séquentielles
Advertisements

« 1.7. Fonction mémoire et différents types de logiques »
Test Intégré pour Convertisseurs Analogique/Numérique
Cours Systèmes logiques
Ing Mohamed MASMOUDI Cours VHDL Ing Mohamed MASMOUDI
Exercices sur la conception de processeurs
Décrire un circuit numérique avec VHDL
Cours #9 Conception et réalisation de processeurs à usage général
Cours VHDL Chap 3: sémantique VHDL
Cours #6 Conception d’unités de contrôle
Le VHDL De nos jours, les circuits numériques de haute performance sont habituellement créés à partir de descriptions en langages de haut niveau. Nous.
Cours #12: Exercices de révision
Cours #8 Flot de conception d’un circuit numérique
Plan de l’exposé Introduction Revue de littérature Méthodologie
Cours #4 Éléments à mémoire et circuits séquentiels synchrones de base
Électronique numérique Intervenants : Boitier V. / Perisse T.
Plan 1-Introduction. 2-Standard VHDL-AMS. Modélisations:
Cours #7 Vérification d’un modèle VHDL
Cours #5 Conception de chemins des données
3.3 Circuits logiques à mémoire Bascules (latches)
COMPOSANTS PROGRAMMABLES
Modélisation VHDL d’un chemin des données
Logique programmable Réseaux et circuits PLA, PAL, GAL et CPLD
Décodeurs et encodeurs : sujets de ce thème
CORDIC Sujets de ce thème
Représentation binaire de nombres entiers et opérations arithmétiques de base Sujets de ce thème
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Représentation et opérations.
Circuits intégrés numériques Quelques bases
Banc d’essai pour un circuit combinatoire
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Synthèse d’un circuit.
Modélisation VHDL du chemin des données d’un processeur à usage général Sujets de ce thème
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois La technique du pipeline.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Implémentation d’un.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Augmenter le débit d’un.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Description d’un circuit.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Bonnes pratiques de.
Synthèse et implémentation de circuits arithmétiques sur FPGA
Processeurs et chemins des données
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Entrées et sorties par.
Le temps de propagation des signaux dans un circuit
Logique programmable Mémoires mortes: PROM, EPROM, EEPROM
Advanced Boolean Equation Language
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Langages de description architecturale.
Méthodologie de conception Outils de conception
Tests de boîte noire.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Vérification de circuits.
Chemin critique et fréquence maximale d’horloge
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Le problème du déphasage.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Encodage du jeu d’instructions.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Arithmétique entière.
Concepts intermédiaires de VHDL
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Modélisation VHDL de.
Synthèse et implémentation d’un circuit combinatoire
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Simulation d’un modèle.
Journées d'études Faible Tension Faible Consommation 14, 15, 16 mai Gwenolé CORRE, Nathalie JULIEN, Eric SENN, Eric MARTIN LESTER, Université de.
Rappel - analyse et synthèse de fonctions combinatoires
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Banc d’essai pour un.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Objets des catégories.
Introduction au VHDL - R.WEBER - Polytech'Orleans
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Analyse détaillée du.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Tests exhaustifs.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Chemin des données d’un.
07/02/06 00:21 Yannick Herve, Wilfried Uhring, Jihad Zallat 1 Électronique Numérique Chapitre 2 Composant Combinatoires Formalisme graphique, Logique négative/positive,
Implémentation de la division sur FPGA
VHDL pour circuits séquentiels
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Flot de conception de.
Description d’un circuit combinatoire en VHDL
Chapitre 01: Structure d'un module VHDL
VALMEM Traduction automatique d'une description comportementale VHDL + annotations temporelles en automates temporisés A. Bara, E. Encrenaz LIP6 VALMEM.
Transcription de la présentation:

INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Analyse de machines à états et leur description en VHDL

INF3500 : Conception et implémentation de systèmes numériques Sujets de ce thème Analyser un circuit séquentiel synchrone à partir de son schéma. État et sorties en fonction du temps. Diagrammes d’états et code VHDL. 2

INF3500 : Conception et implémentation de systèmes numériques Analyse d’un circuit séquentiel synchrone (1) On analyse un circuit pour en comprendre le fonctionnement. Analyser un circuit séquentiel synchrone en quatre étapes: 1.identifier les variables d’états: les sorties des éléments à mémoire; 2.écrire les équations d’états et les équations de sortie; 3.dresser le tableau d’états; et, 4.dessiner le diagramme d’états. 3

INF3500 : Conception et implémentation de systèmes numériques Analyse d’un circuit séquentiel synchrone (2) 4 3. Tableau d’états: 4. Diagramme d’états: état 0: AB = « 00 » état 1: AB = « 01 » état 2: AB = « 10 » état 3: AB = « 11 » C’est une machine de Moore, la sortie ne dépend que de l’état présent. 1.{A, B} 2. A + = A xor B; B + = B’ or X; Z = A nor B;

INF3500 : Conception et implémentation de systèmes numériques Évolution de l’état et des sorties en fonction du temps 5

INF3500 : Conception et implémentation de systèmes numériques Description d’une machine à états en VHDL: 1. à partir d’un schéma Approche adéquate: – quand on désire modéliser un circuit pour lequel on a le schéma – quand on a les équations d’états et de sortie 6 library IEEE; use IEEE.std_logic_1164.all; entity cctsequentielex1 is port ( reset, CLK, X : in STD_LOGIC; Z : out STD_LOGIC ); end cctsequentielex1; architecture arch1 of cctsequentielex1 is signal A, B : STD_LOGIC; begin process(CLK, reset) is begin if (reset = '0') then A <= '0'; B <= '0'; elsif (rising_edge(CLK)) then A <= A xor B; B <= x or not(B); end if; end process; z <= not(A or B); end arch1; Deux bascules dans un seul processus Sortie décrite par un énoncé concurrent à l’extérieur du processus (pas de registre). Réinitialisation asynchrone.

INF3500 : Conception et implémentation de systèmes numériques Description d’une machine à états en VHDL 2. à partir d’un diagramme d’états Approche beaucoup plus puissante: – identifier les états, les conditions de transition et les sorties pour chaque état – pas besoin d’équations d’états – plus lisible, robuste, facile à maintenir 7 architecture arch3 of cctsequentielex1 is type type_etat is (Etat0, Etat1, Etat2, Etat3); signal etat : type_etat := Etat0; begin process(CLK, reset) is begin if (reset = '0') then etat <= Etat0; elsif (rising_edge(CLK)) then case etat is when Etat0 => etat <= Etat1; when Etat1 => if x = '0' then etat <= Etat2; else etat <= Etat3; end if; when Etat2 => etat <= Etat3; when Etat3 => if x = '0' then etat <= Etat0; else etat <= Etat1; end if; end case; end if; end process; z <= '1' when etat = Etat0 else '0'; end arch3;

INF3500 : Conception et implémentation de systèmes numériques Trois styles de description d’une machine à états en VHDL Les trois parties d’une machine à états sont : – les éléments à mémoire qui conservent l’état présent de la machine; – un circuit combinatoire qui calcule le prochain état; et, – un circuit combinatoire qui calcule les sorties de Moore et de Mealy. Il y a trois styles principaux de description selon la répartition des trois parties de la machine sur un ou plusieurs processus. 8

INF3500 : Conception et implémentation de systèmes numériques Trois styles de description d’une machine à états en VHDL 1. Avec un seul processus Attention aux sorties: – inférence de registres pour les sorties – spécifier la sortie du prochain état étant donnés un état et une entrée présentes. – si plusieurs conditions résultent en un état donné, il faut spécifier la sortie de Moore de cet état à chaque fois. 9 architecture unprocessus of cctsequentielex2 is type type_etat is (S1, S2, S3, S4); signal etat : type_etat := S1; begin process(CLK, reset) is begin if (reset = '0') then etat <= S1; sortie <= '1'; elsif (rising_edge(CLK)) then case etat is when S1 => if x = '0' then etat <= S3; sortie <= '0'; else etat <= S2; sortie <= '1'; end if; when S2 | S3 => etat <= S4; sortie <= '0'; when S4 => etat <= S1; sortie <= '1'; end case; end if; end process; end unprocessus;

INF3500 : Conception et implémentation de systèmes numériques Trois styles de description d’une machine à états en VHDL 2. Avec deux processus Bon compromis entre la flexibilité et la lisibilité du code. Deux processus: – un pour le calcul et l’entreposage de l’état – un pour les sorties (peut être remplacé par des énoncés concurrents) 10 Machine de Moore … architecture deuxprocessus of cctsequentielex2 is type type_etat is (S1, S2, S3, S4); signal etat : type_etat := S1; begin process(CLK, reset) is begin if (reset = '0') then etat <= S1; elsif (rising_edge(CLK)) then case etat is when S1 => if x = '0' then etat <= S3; else etat <= S2; end if; when S2 | S3 => etat <= S4; when S4 => etat <= S1; end case; end if; end process; process(etat) begin case etat is when S1 | S2 => sortie <= '1'; when S3 | S4 => sortie <= '0'; end case; end process; end deuxprocessus;

INF3500 : Conception et implémentation de systèmes numériques Trois styles de description d’une machine à états en VHDL 3. Avec trois processus Style qui correspondre exactement au modèle. Code est très lisible mais moins compact que la version à deux processus. La liste de sensibilité du processus qui calcule le prochain état inclut le signal qui entrepose l’état courant ainsi que toutes les entrées. Le même principe s’applique au processus qui calcule les sorties (pour une machine de Mealy). 11

INF3500 : Conception et implémentation de systèmes numériques architecture troisprocessus of cctsequentielex2 is type type_etat is (S1, S2, S3, S4); signal etat : type_etat := S1; signal etat_prochain : type_etat := S1; begin -- processus pour garder l'état actuel en mémoire process(CLK, reset) is begin if (reset = '0') then etat <= S1; elsif (rising_edge(CLK)) then etat <= etat_prochain; end if; end process; -- processus pour les sorties process(etat) begin case etat is when S1 | S2 => sortie <= '1'; when S3 | S4 => sortie <= '0'; end case; end process; -- processus pour le calcul du prochain état process(etat, x) is begin case etat is when S1 => if x = '0' then etat_prochain <= S3; else etat_prochain <= S2; end if; when S2 | S3 => etat_prochain <= S4; when S4 => etat_prochain<= S1; end case; end process; end troisprocessus; Trois styles de description d’une machine à états en VHDL 3. Avec trois processus 12

INF3500 : Conception et implémentation de systèmes numériques Trois styles de description d’une machine à états en VHDL: Conclusion Les trois styles ont chacun leurs mérites et inconvénients. Cette variété d’options illustre à nouveau la très grande richesse de VHDL. Cette richesse cause cependant des difficultés parce qu’il n’existe pas une norme unique pour la description de machines à états. Il est donc plus difficile de concevoir un synthétiseur qui puisse reconnaître de façon satisfaisante les intentions du concepteur. Il est nécessaire de consulter le manuel d’utilisation du synthétiseur utilisé afin de connaître les styles d’encodage de machines à états reconnus. 13

INF3500 : Conception et implémentation de systèmes numériques Conception de machine à états: procédure traditionnelle et avec un HDL ÉtapeProcédure traditionnelleProcédure avec un HDL Bâtir un diagramme d’états à partir des données du problème. oui Bâtir le tableau d’états à partir du diagramme d’états, en identifiant les états par des symboles. ouinon Réduire le nombre d’états nécessaires en éliminant les états équivalents. oui pas obligatoire peut simplifier la clarté du code Assigner un code binaire à chaque état, et ajouter cette information au tableau d’état. ouipar l’outil de synthèse À partir du tableau d’état complet, obtenir les équations booléennes d’entrée des bascules du type choisi ainsi que les équations booléennes des sorties du système, en simplifiant si possible. ouipar l’outil de synthèse Donner le diagramme et/ou construire le circuit.ouipar l’outil de synthèse Vérifier, vérifier, vérifier.oui 14

INF3500 : Conception et implémentation de systèmes numériques Vous devriez maintenant être capable de … Analyser un circuit séquentiel synchrone à partir de son schéma. Donner le diagramme d’états qui lui correspond. Donner son état et la valeur de ses sorties en fonction du temps. (B4) Décrire une machine à états en VHDL à partir d’un diagramme d’états en choisissant un style approprié et donner le diagramme d’états correspondant à un code VHDL. (B3) 15 CodeNiveau ( B1Connaissance - mémoriser de l’information. B2Compréhension – interpréter l’information. B3Application – confronter les connaissances à des cas pratiques simples. B4Analyse – décomposer un problème, cas pratiques plus complexes. B5Synthèse – expression personnelle, cas pratiques plus complexes. Code VHDL Schéma du circuit Implémentation sur FPGA Spécification textuelle Diagramme d’états