VHDL pour circuits séquentiels

Slides:



Advertisements
Présentations similaires
Test Intégré pour Convertisseurs Analogique/Numérique
Advertisements

Jalane is coming to Windsor You will interview her, in French, for the school paper. Page 127 # 5 You will interview her, in French, for the school paper.
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
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
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Cours #4 Éléments à mémoire et circuits séquentiels synchrones de base
Plan 1-Introduction. 2-Standard VHDL-AMS. Modélisations:
Cours #7 Vérification d’un modèle VHDL
(notes, section 1.3) Implémentation des systèmes numériques Quatre considérations d’implémentation Taille du système Précision des calculs Aujourd’hui.
Cours #5 Conception de chemins des données
COMPOSANTS PROGRAMMABLES
Modélisation VHDL d’un chemin des données
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 Analyse de machines.
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
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.
Réseaux pré-diffusés programmables par l’utilisateur: FPGA
Logique séquentielle. Logique séquentielle Logique séquentielle Définition En logique combinatoire, le niveau de la sortie dépend directement du niveau.
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.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
Implémentation de la division sur FPGA
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Flot de conception de.
Conception avancée de circuits numériques (VHDL)
Le VHDL Programmation des CPLD et FPGA avec Quartus II ENSET d'Oran / IUFM Aix Marseille - mai
Rearranging Formulas Lesson 5. Things to Remember If adding or subtracting, use the zero effect to isolate the variable. If there is only one fraction,
Description d’un circuit combinatoire en VHDL
Chapitre 01: Structure d'un module VHDL
Un Une des Indefinite Articles Un introduces masculine/singular nouns
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:

VHDL pour circuits séquentiels

Sujets de ce thème Code VHDL du loquet. Code VHDL de la bascule: fronts d’horloge et initialisation. Code VHDL correspondant à un circuit séquentiel.

Loquet D: code VHDL library ieee; use ieee.std_logic_1164.all; entity loquetD is port ( G : in STD_LOGIC; -- contrôle D : in STD_LOGIC; -- donnée Q : out STD_LOGIC ); end loquetD; architecture loquetD of loquetD is Begin process(G, D) is begin if (G = '1') then Q <= D; -- else -- implicite, infère élément à mémoire -- -- ne pas changer Q end if; end process; Un loquet D peut-être modélisé en VHDL par un énoncé if-then à l’intérieur d’un processus. Le processus doit avoir dans sa liste de sensitivité le signal de contrôle G et le signal de donnée D. Le signal D est assigné à la sortie Q quand le signal de contrôle G est actif (mode transparent) Patron de code spécial reconnu par les synthétiseurs pour signifier un loquet.

Exemple: un loquet ou pas? library ieee; use ieee.std_logic_1164.all; entity mystere1 is port (a, b, c: in std_logic; s : in std_logic_vector (1 downto 0); o : out std_logic); end mystere1; architecture archi of mystere1 is begin process (a, b, c, s) if (s = "00") then o <= a; elsif (s = "01") then o <= b; elsif (s = "10") then o <= c; end if; end process; end archi; library ieee; use ieee.std_logic_1164.all; entity mystere2 is port (a, b, c: in std_logic; s : in std_logic_vector (1 downto 0); o : out std_logic); end mystere2; architecture archi of mystere2 is begin process (a, b, c, s) if (s = "00") then o <= a; elsif (s = "01") then o <= b; elsif (s = "10") then o <= c; else o <= c; end if; end process; end archi;

Bascule D: code VHDL library ieee; use ieee.std_logic_1164.all; entity basculeD is port ( CLK : in STD_LOGIC; -- horloge D : in STD_LOGIC; -- entrée Q : out STD_LOGIC -- sortie ); end basculeD; architecture basculeD of basculeD is begin process(CLK) is if (CLK = '1' and CLK'event) then Q <= D; end if; end process; Pour modéliser une bascule, il est nécessaire de pouvoir décrire le fait que le changement d’état se produit sur une transition d’un signal d’horloge et non sur sa valeur. Pour ce faire, on peut utiliser les attributs d’événement (event attribute) définis en VHDL. L’exemple démontre l’utilisation de l’attribut event sur le signal CLK, dénoté par CLK’event. La condition CLK = ‘1’ dénote alors un front montant. Patron de code spécial reconnu par les synthétiseurs pour signifier une bascule

Bascule D: code VHDL - spécification du front d’horloge désiré Le package std_logic_1164 contient aussi deux fonctions qui combinent ces conditions, rising_edge() et falling_edge(). Ces deux fonctions retournent des valeurs booléennes. comportement désiré option 1 option 2 front montant CLK’event and CLK = ‘1’ rising_edge(CLK) front descendant CLK’event and CLK = ‘0’ falling_edge(CLK)

Bascule D: code VHDL - deux types de signaux d’initialisation library IEEE; use IEEE.std_logic_1164.all; entity basculeDRA is port ( reset : in STD_LOGIC; CLK : in STD_LOGIC; D : in STD_LOGIC; Q : out STD_LOGIC ); end basculeDRA; architecture basculeDRasynch of basculeDRA is begin process(CLK, reset) is if (reset = '0') then Q <= '0'; elsif (rising_edge(CLK)) then Q <= D; end if; end process; end basculeDRasynchA; library IEEE; use IEEE.std_logic_1164.all; entity basculeDRS is port ( reset : in STD_LOGIC; CLK : in STD_LOGIC; D : in STD_LOGIC; Q : out STD_LOGIC ); end basculeDRS; architecture basculeDRsynch of basculeDRS is begin process(CLK, reset) is if (rising_edge(CLK)) then if (reset = '0') then Q <= '0'; else Q <= D; end if; end process; end basculeDRsynch; Initialisation asynchrone – indépendante de l’horloge Initialisation synchrone avec l’horloge

Exemple: décrire le circuit en VHDL Définir l’entité et ses ports. Définir l’architecture et déclarer des signaux pour les bascules. Modéliser les bascules: Forme générale Signaux de réinitialisation Équation des entrées des bascules Modéliser la sortie

Exemple: décrire le circuit en VHDL (1) library IEEE; use IEEE.std_logic_1164.all; entity cctsequentielex1 is port ( reset, CLK, X : in STD_LOGIC; Z : out STD_LOGIC ); end cctsequentielex1; Définir l’entité et ses ports. Définir l’architecture et déclarer des signaux pour les bascules. Modéliser les bascules: Forme générale Signaux de réinitialisation Équation des entrées des bascules Modéliser la sortie

Exemple: décrire le circuit en VHDL (2) 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 end arch1; Définir l’entité et ses ports. Définir l’architecture et déclarer des signaux pour les bascules. Modéliser les bascules: Forme générale Signaux de réinitialisation Équation des entrées des bascules Modéliser la sortie

Exemple: décrire le circuit en VHDL (3) 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 if (reset = '0') then A <= '0'; B <= '0'; elsif (rising_edge(CLK)) then A <= B <= end if; end process; end arch1; Définir l’entité et ses ports. Définir l’architecture et déclarer des signaux pour les bascules. Modéliser les bascules: Forme générale Signaux de réinitialisation Équation des entrées des bascules Modéliser la sortie

Exemple: décrire le circuit en VHDL (4) 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 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; end arch1; Définir l’entité et ses ports. Définir l’architecture et déclarer des signaux pour les bascules. Modéliser les bascules: Forme générale Signaux de réinitialisation Équation des entrées des bascules Modéliser la sortie

Exemple: décrire le circuit en VHDL (5) 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 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; Définir l’entité et ses ports. Définir l’architecture et déclarer des signaux pour les bascules. Modéliser les bascules: Forme générale Signaux de réinitialisation Équation des entrées des bascules Modéliser la sortie

Vous devriez maintenant être capable de … Donner le code VHDL pour modéliser un loquet et une bascule, incluant le signal de réinitialisation. (B3) Identifier dans un code VHDL si un loquet, une bascule ou aucun des deux n’est modélisé. (B3) Donner le code VHDL correspondant au schéma d’un circuit séquentiel. (B3) Code VHDL Schéma du circuit Implémentation sur FPGA Spécification textuelle Diagramme d’états Code Niveau (http://fr.wikipedia.org/wiki/Taxonomie_de_Bloom) B1 Connaissance - mémoriser de l’information. B2 Compréhension – interpréter l’information. B3 Application – confronter les connaissances à des cas pratiques simples. B4 Analyse – décomposer un problème, cas pratiques plus complexes. B5 Synthèse – expression personnelle, cas pratiques plus complexes.