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

Slides:



Advertisements
Présentations similaires
MOT Éditeur de modèles de connaissances par objets typés
Advertisements

Eléments de Génie Logiciel
Exercices sur la conception de processeurs
ADR Active and Dynamic Routing. Plan Introduction au routage Les réseaux actifs Les agents Mise à jour des matrices de routage Architecture du routage.
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
Méthode de scénarisation
Algorithmique et Programmation
Cours #4 Éléments à mémoire et circuits séquentiels synchrones de base
Électronique numérique Intervenants : Boitier V. / Perisse T.
Présentation du mémoire
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.
Programmation linéaire en nombres entiers : les méthodes de troncature
ANALYSE METHODE & OUTILS
Modélisation VHDL d’un chemin des données
Logique programmable Réseaux et circuits PLA, PAL, GAL et CPLD
CORDIC Sujets de ce thème
Cycle de vie: « Waterfall » GEF492A Automne 2014 [HvV § 3.1]
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 Options d’implémentation.
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.
Programmation dynamique
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
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Vue d’ensemble des systèmes.
GNU Free Documentation License
Supports de formation au SQ Unifié
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.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
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.
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
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.
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
LIRMM, MONTPELLIER, FRANCE FTFC 2003 Définition d’une métrique d’insertion de buffers X. Michel, A. Verle N. Azémard, P. Maurine, D. Auvergne Paris, France.
Les FPGA « Field Programmable Gate Array »
Implémentation de la division sur FPGA
Les besoins linguistiques
VHDL pour circuits séquentiels
Diagramme de Déploiement
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Flot de conception de.
Transcription de la présentation:

INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Implémentation d’un modèle VHDL

INF3500 : Conception et implémentation de systèmes numériques Simulation d’un modèle VHDL Sujets de ce thème Les étapes de l’implémentation: vue d’ensemble L’association Le placement Le routage L’extraction des métriques d’implémentation et de performance La configuration 2

INF3500 : Conception et implémentation de systèmes numériques Implémentation Dans l’étape d’implémentation, on: – découpe la liste des interconnexions en composantes disponibles sur le circuit intégré cible (association); – on choisit des endroits spécifiques sur la puce pour chaque composante (placement); et, – on relie les ports des composantes par des chemins (routage). L’association n’est faite en général qu’une seule fois. Les étapes de placement et routage peuvent être répétées tant que les contraintes de temps et/ou d’espace ne sont pas satisfaites. 3

INF3500 : Conception et implémentation de systèmes numériques Association Un synthétiseur produit en général une description du circuit en termes de composantes de base. Les composantes de base incluent, entre autres : – des fonctions logiques comme ET, OU, OUX; – des multiplexeurs et décodeurs; – des additionneurs, soustracteurs, accumulateurs, multiplicateurs; – des bascules et loquets; et, – d’autres composantes comme des blocs de mémoire, des générateurs d’horloge et des tampons. Le processus d’association (mapping) consiste à associer des composantes de base à des blocs ou des groupes de blocs logiques du FPGA. Par exemple, un groupe de portes logiques peut être combiné en une seule table de conversion d’un bloc logique. 4 source : fig. 8-8, Maxfield, © Mentor Graphics 2004

INF3500 : Conception et implémentation de systèmes numériques Placement Le processus de placement consiste à choisir un endroit spécifique sur le FPGA pour chacune des ressources nécessaires. En pratique, on voudrait que des blocs qui communiquent entre eux soient disposés près les uns des autres. De cette façon, on simplifierait la tâche du routeur et on diminuerait les délais dus aux interconnexions. Cependant, dans le cas d’une composante avec des liens vers beaucoup d’autres, ce n’est pas possible. De plus, si on utilise une grande proportion des ressources du FPGA (> 80%), le placeur n’a pas beaucoup de marge de manœuvre. Les algorithmes de placement utilisent souvent des méthodes heuristiques comme le recuit simulé. 5

INF3500 : Conception et implémentation de systèmes numériques Placement Les objectifs généraux du placement sont: – garantir qu’un routage existe; – minimiser la longueur des chemins entre les composantes; – minimiser la consommation de puissance (moins vrai pour FPGA); et, – minimiser le bruit entre les signaux (moins vrai pour FPGA). Les métriques suivantes peuvent permettre de comparer deux solutions de placement: – la longueur totale des interconnexions; – le délai le plus long; et, – la congestion des interconnexions. 6

INF3500 : Conception et implémentation de systèmes numériques Routage Le processus de routage consiste à établir des connexions entre les ressources. Le processus de routage est aussi souvent basé sur des méthodes heuristiques. Le problème vient du fait qu’il existe un nombre limité de ressources d’interconnexions entre les blocs logiques d’un FPGA. Il peut être impossible de router un circuit étant donné un placement. Dans un tel cas, le placeur doit effectuer un nouveau placement pour donner plus de flexibilité au routeur. Le routeur doit router trois types de connexions: – les horloges et les signaux de réinitialisation; – les connexions entre les blocs logiques; – les connexions entre les blocs logiques et les blocs d’entrée/sortie. 7

INF3500 : Conception et implémentation de systèmes numériques Routage Les objectifs du routage sont: – effectuer toutes les connexions nécessaires; – minimiser la longueur totale des interconnexions; et, – minimiser la longueur du chemin le plus long. Dans un FPGA, les connexions sont bien caractérisées et les délais et les longueurs des chemins sont bien connus. 8

INF3500 : Conception et implémentation de systèmes numériques Métriques de performance et simulation du circuit implémenté Une fois l’implémentation terminée, on obtient: – un fichier qui décrit toutes les interconnexions et la configuration des blocs logiques; – une liste des interconnexions annotée des délais des composantes et du routage; On peut simuler cette liste des interconnexions avec le même banc d’essai initial pour observer le comportement réel du circuit. On obtient aussi un rapport détaillé sur les ressources utilisées sur le FPGA, ainsi qu’une description du chemin critique avec le délai sur celui-ci. 9

INF3500 : Conception et implémentation de systèmes numériques Configuration du FPGA L’action de programmer un FPGA consiste à configurer toutes ses tranches, ses blocs d’entrées et sorties et ses interconnexions. Les cellules de programmation sont placées en série. Un signal spécial permet de les placer en mode de programmation, où chaque cellule passe son contenu à la prochaine cellule à chaque coup d’horloge. Ce système permet d’effectuer la programmation du dispositif avec très peu de pattes : une pour le signal de programmation, une pour placer les cellules en mode de programmation, une pour lire le flux de bits de programmation pour fins de vérification, et une horloge de programmation. 10 source : fig. 5-3, Maxfield, © Mentor Graphics 2004

INF3500 : Conception et implémentation de systèmes numériques Vous devriez maintenant être capable de … Expliquez les processus d’association, de placement et de routage d’un circuit sur un FPGA. (B2) Expliquer les objectifs généraux du placement et du routage ainsi que les métriques pour évaluer deux solutions de placement et routage. (B2) Expliquer comment les métriques de performance et de coût sont obtenues à partir d’une solution d’implémentation. (B2) Analyser et évaluer la qualité de l’implémentation d’un circuit sur un FPGA, identifier les points faibles et proposer des améliorations. (B4, B5) Expliquer comment le fichier de configuration est obtenu et comment la configuration d’un FPGA est effectuée. (B2) 11 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.