INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Synthèse d’un circuit.

Slides:



Advertisements
Présentations similaires
T. Bellembois - R. Bourges - Y. Colmant 1 Licence Vous êtes libres De reproduire, distribuer et communiquer cette création au public De modifier cette.
Advertisements

Régine Laleau Centre d'Étude et de Recherche en Informatique du CNAM
Rational Unified Process (RUP)
Les Compteurs A. Objectifs de la séquence:
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
(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 Taux de traitement.
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
Cours #4 Éléments à mémoire et circuits séquentiels synchrones de base
Modules 1ère année Période en entreprise Semestre 1
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
Partie II Sémantique.
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.
Le VHDL : SOMMAIRE I Introduction II Éléments généraux du langage
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 Options d’implémentation.
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
Logique programmable Mémoires mortes: PROM, EPROM, EEPROM
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Vue d’ensemble des systèmes.
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.
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
CIRCUITS LOGIQUES PROGRAMMABLES
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.
Les FPGA « Field Programmable Gate Array »
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.
Le VHDL Programmation des CPLD et FPGA avec Quartus II ENSET d'Oran / IUFM Aix Marseille - mai
TPs d’Intégration des Systemes
Description d’un circuit combinatoire en VHDL
Transcription de la présentation:

INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Synthèse d’un circuit séquentiel

INF3500 : Conception et implémentation de systèmes numériques Sujets de ce thème Reconnaître des bascules et des loquets dans du code VHDL. Étapes de synthèse. Schéma correspondant au code VHDL. Implémenter un circuit séquentiel sur un FPGA. Bonnes pratiques de modélisation de circuits séquentiels pour FPGA. 2

INF3500 : Conception et implémentation de systèmes numériques La synthèse d’un modèle VHDL La synthèse du code VHDL est effectuée par un synthétiseur. Le processus de synthèse peut être décomposé et effectué en plusieurs passes. Ce processus est très complexe sauf pour les circuits les plus simples. Le produit du synthétiseur est communément appelé «liste des interconnexions» (netlist), qui inclut: – la liste des composantes de base utilisées; et, – les liens qui les relient. Après le processus de synthèse, il est possible d’obtenir un estimé de la performance et des ressources utilisées par le circuit. 3

INF3500 : Conception et implémentation de systèmes numériques Reconnaître les loquets et bascules - rappel Les bascules et les loquets sont reconnus par des patrons de code spécifiques. Un loquet est reconnu par un énoncé if-then où toutes les conditions ne sont pas couvertes. Une bascule est reconnue par l’assignation d’un signal ou d’une variable à l’intérieur d’un processus, à l’intérieur d’une condition de transition sur un signal d’horloge. 4 process(G, D) is begin if (G = '1') then Q <= D; end if; end process; process(CLK) is begin if (CLK = '1' and CLK'event) then Q <= D; end if; end process;

INF3500 : Conception et implémentation de systèmes numériques Étapes de la synthèse d’un modèle séquentiel décrit en VHDL 1.Identifier les entrées et sorties du circuit. 2.Identifier les éléments à mémoire. 3.Pour chaque élément à mémoire, trouver l’équation booléenne de son entrée. Réduire l’équation si nécessaire. Identifier les entrées spéciales: horloge et initialisation. 4.Pour chaque sortie, trouver l’équation booléenne ou la table de vérité correspondante. Réduire l’équation si nécessaire. 5.Si la cible est un FPGA, découper les équations selon la taille des tables de correspondance disponibles. 6.Implémentation: choisir des ressources spécifiques sur la puce pour les ports et les fonctions logiques. 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 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;

INF3500 : Conception et implémentation de systèmes numériques Exemple: donner le schéma correspondant à ce module 6 library IEEE; use IEEE.std_logic_1164.all; entity cctsequentielex4 is port ( clk, reset : in STD_LOGIC; A, B, C: in STD_LOGIC; U, V, W, X, Y, Z : out STD_LOGIC ); end cctsequentielex4; architecture arch of cctsequentielex4 is begin U <= B xor C; process(A, B) begin V <= A and B; end process; process(CLK, reset) is begin if (reset = '0') then W <= '0'; X <= '0'; elsif (rising_edge(CLK)) then W <= A xor B; X <= not(B); end if; end process; process(A, C) is begin if (A = '0') then Y <= C nor B; Z <= not(B); else Z <= B nand C; end if; end process; end arch;

INF3500 : Conception et implémentation de systèmes numériques Exemple: donner le schéma correspondant à ce module (1) 7 library IEEE; use IEEE.std_logic_1164.all; entity cctsequentielex4 is port ( clk, reset : in STD_LOGIC; A, B, C: in STD_LOGIC; U, V, W, X, Y, Z : out STD_LOGIC ); end cctsequentielex4; architecture arch of cctsequentielex4 is begin U <= B xor C; process(A, B) begin V <= A and B; end process;... end arch;

INF3500 : Conception et implémentation de systèmes numériques Exemple: donner le schéma correspondant à ce module (2) 8 library IEEE; use IEEE.std_logic_1164.all; entity cctsequentielex4 is port ( clk, reset : in STD_LOGIC; A, B, C: in STD_LOGIC; U, V, W, X, Y, Z : out STD_LOGIC ); end cctsequentielex4; architecture arch of cctsequentielex4 is begin... process(CLK, reset) is begin if (reset = '0') then W <= '0'; X <= '0'; elsif (rising_edge(CLK)) then W <= A xor B; X <= not(B); end if; end process;... end arch;

INF3500 : Conception et implémentation de systèmes numériques Exemple: donner le schéma correspondant à ce module (3) 9 library IEEE; use IEEE.std_logic_1164.all; entity cctsequentielex4 is port ( clk, reset : in STD_LOGIC; A, B, C: in STD_LOGIC; U, V, W, X, Y, Z : out STD_LOGIC ); end cctsequentielex4; architecture arch of cctsequentielex4 is begin... process(A, C) is begin if (A = '0') then Y <= C nor B; Z <= not(B); else Z <= B nand C; end if; end process; end arch;

INF3500 : Conception et implémentation de systèmes numériques Rappel: architecture d’un FPGA Un FPGA est composé à la base de : – un réseau de blocs de logique programmable (Configurable Logic Block  CLB); – un réseau d’interconnexions programmables entre les blocs; et, – des blocs d’entrée et de sortie avec le monde extérieur (Input/Output Block – IOB). Dans la figure, on a: – 12 IOBs, 3 × 5 CLBs Le FPGA XC5VLX50TFFG1136C a plutôt: – 480 IOBs, 120 × 30 CLBs 10

INF3500 : Conception et implémentation de systèmes numériques Une tranche comprend: – Quatre tables de correspondance (Look-up Table – LUT) à 6 entrées, pouvant être programmées comme: fonction logique mémoire ROM – Quatre éléments à mémoire: bascule ou loquet. – Des multiplexeurs pour router les signaux. – Des portes logiques pour l’addition rapide. Rappel: tranche d’un FPGA Virtex 5 11 Xilinx inc., Virtex-5 FPGA User Guide (ug190 v. 5.4), March 2012

INF3500 : Conception et implémentation de systèmes numériques Modèle simplifié d’une tranche (~ une tranche du Virtex 2 Pro) Deux tables de correspondance à 4 entrées: – fonction logique – mémoire RAM – mémoire ROM – décalage Deux éléments à mémoire, bascule ou loquet. Des multiplexeurs pour router les signaux. 12

INF3500 : Conception et implémentation de systèmes numériques Exemple: Implémenter le circuit suivant sur un FPGA 13

INF3500 : Conception et implémentation de systèmes numériques Trois bonnes pratiques à respecter avec les FPGA 1.Utiliser des bascules, éviter les loquets. – Les éléments à mémoire d’un FPGA peuvent implémenter une bascule ou un loquet: il n’y a pas de différence de coût. – Le désavantage du loquet est son mode transparent. – Pour le reste du cours, nous allons utiliser exclusivement des bascules. 2.Le signal d’horloge CLK est spécial: – En principe, on mène toutes les bascules avec le même signal d’horloge CLK. – On ne fait pas d’opérations logiques sur le signal CLK. 3.Le signal de réinitialisation reset est spécial: – Les circuits séquentiels doivent pouvoir être placés dans un état de départ connu. – En principe, on mène toutes les bascules avec le même signal de réinitialisation. – Certaines bascules peuvent être initialisées à ‘0’, d’autres à ‘1’. – On ne fait pas d’opérations logiques sur le signal de réinitialisation. 14 On ne fait pas d’opérations logiques sur les signaux d’horloge et de réinitialisation!

INF3500 : Conception et implémentation de systèmes numériques Vous devriez maintenant être capable de … Expliquer comment on peut effectuer la synthèse d’un module séquentiel décrit en VHDL. (B2) Donner le schéma correspondant au code VHDL d’un circuit séquentiel. (B3) Effectuer la synthèse d’un module séquentiel décrit en VHDL et montrer son implémentation sur FPGA. (B3) Expliquer et appliquer les bonnes pratiques de la modélisation de circuits séquentiels pour FPGA. (B2, 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