Méthodologie de conception Outils de conception

Slides:



Advertisements
Présentations similaires
Du Software au Hardware
Advertisements

Test Intégré pour Convertisseurs Analogique/Numérique
Signal numérique sur 10 bits Signal analogique sur 4 V
La chaîne d’information dans la structure générale d ’un système pluritechnique But de la chaîne d’information : Piloter avec le maximum d’efficacité la.
Flow de conception (4h)-demo
Ing Mohamed MASMOUDI Cours VHDL Ing Mohamed MASMOUDI
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Décrire un circuit numérique avec VHDL
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 #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
1 Exercice : longueur d’un mot est-elle paire ?  Test fonctionnel  Quel ensemble de valeur choisir / spécification  Test structurel  Soit le code d’un.
Électronique numérique Intervenants : Boitier V. / Perisse T.
Introduction Objectifs du cours Évaluation Références
Présentation du mémoire
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
COMPOSANTS PROGRAMMABLES
Modélisation VHDL d’un chemin des données
Décodeurs et encodeurs : 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
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 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 Description d’un circuit.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Entrées et sorties par.
Advanced Boolean Equation Language
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Langages de description architecturale.
MICROLOR Le savoir partagé
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Vérification de circuits.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Cours d’Outils de conception ESME SUDRIA 2003
Créer des packages.
INF8505: processeurs embarqués configurables
Les systèmes mono-puce
Mise au point de systèmes mixtes et évaluation de puissance : Un exemple d’application Anne-Marie TRULLEMANS- ANCKAERT FTFC’03 UCL-DICE, Place du Levant.
Concepts intermédiaires de VHDL
Synthèse et implémentation d’un circuit combinatoire
Journées d'études Faible Tension Faible Consommation 14, 15, 16 mai Gwenolé CORRE, Nathalie JULIEN, Eric SENN, Eric MARTIN LESTER, Université de.
TP N°4 – M2 EEA SM Conception en Vue du Test. Objectifs Réaliser le flot complet de synthèse – test – synthèse en vue du test Utilisation d’un design.
Application à la Radio Logicielle Restreinte
Implantation de processeurs dans les FPGA et ASIC
Introduction au VHDL - R.WEBER - Polytech'Orleans
Steven Derrien Équipe R2D2
CIRCUITS LOGIQUES PROGRAMMABLES
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Tests exhaustifs.
1 Université Henri Poincaré, Nancy 1 La préemption appliquée aux FPGAs Soutenance de rapport bibliographique de DEA Faculté des Sciences Vandoeuvre-lès-Nancy.
Les FPGA « Field Programmable Gate Array »
Implémentation de la division sur FPGA
VHDL pour circuits séquentiels
SUNDANCE Multiprocessor Technology Ltd. Yann CLIN Stage effectué de février à juin Superviseur technique: Jocelyn SEROT Superviseur industriel: Emmanuel.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Flot de conception de.
ELE6306 : Test de systèmes électroniques Adaptation d’une interface de communication pour implants en vue du test Laurent Aubray, Dominique Pâquet-Ferron.
Composants à réseaux logiques programmables
Le VHDL Programmation des CPLD et FPGA avec Quartus II ENSET d'Oran / IUFM Aix Marseille - mai
LES SIMULATEURS RÉSEAU
TPs d’Intégration des Systemes
IUS62 INCISIVE UNIFIED SIMULATOR linux. ENVIRONNEMENT Xwin32 -> lappsun26, lappsun27 Script d’initialisation de l’environnement –Mldv Aide –cdnshelp.
Description d’un circuit combinatoire en VHDL
Chapitre 01: Structure d'un module VHDL
Architecture des processeurs « Partie matérielle » CE311/CE317 Module « Systèmes matériels et logiciels » Crédit : 5 (en 2 parties) Vincent Beroulle Bureau.
Transcription de la présentation:

Infotronique 4ème année Module ITA3: Composants des systèmes temps réel Méthodologie de conception Outils de conception La simulation et la vérification

Objectif Développement de système basé sur des composants de type FPGA Comment décrire le système ? Mettre en place les différentes étapes de conception Maîtriser les différents outils de la chaîne de développement Maîtriser la simulation, la vérification fonctionnelle et temporelle du système

Partitionnement

FPGA? Avantages/Inconvénients par rapport aux DSP et ASIC Les différentes technologies existantes (Cf. cours J.Miteran) Les différentes possibilités de description

Démarche Top-Down Down-Top Décomposé le système a développé en tâches de moins en moins complexes Down-Top Codés les composants Associés les composants

Max => O1 Min => O2

Différentes méthodes de description & association des composants Validation Simulation Différentes méthodes de description & association des composants Validation Simulation

Les possibilités de description Schématique Littérale VHDL (variante altera AHDL) Verilog Abel …

Description schématique La réalisation de circuits se fait à base de cellules standards (portes logiques précaractérisées). On décrit la structure d'un circuit à l'aide de connexions sur des cellules de base à partir d'une librairie.

Description schématique Il existe deux types de cellules dans la librairie Xilinx accessibles par le core-generator: les soft-macros qui sont implantées en fonction des flips-flops et des générateurs de fonctions disponibles , les hard-macros qui sont préroutées et utilisent complètement les CLB qu'elles occupent ou utilisent des blocs spécifiques (multiplieurs, bloc mémoires).

Description schématique La saisie de schéma à partir de cellules de base permet un développement " bas niveau " qui rend difficile la réalisation de circuits complexes où chaque changement ou amélioration remet en cause toute la description. spécifications de " haut niveau " tel que le VHDL (VHSIC Hardware Description Language avec VHSIC : Very High Speed Integrated Circuits) soit en français langage de description de matériel traitant des circuits intégrés à très grande vitesse.

Description littérale type VHDL A partir de la démarche Down-Top blocs de base proche ressources matérielles blocs " haut niveau " associés en ensemble. Le langage VHDL autorise deux niveaux de description (Cf cours M.Paindavoine): le niveau structurel décrit le câblage des composants élémentaires ou RTL (Register To Logic), le niveau comportemental décrit le fonctionnement par des blocs programmes appelés Processus qui échangent des données au moyen de signaux comprenant des instructions séquentielles.

Etapes du flot de conception Compilation du code VHDL ou Verilog (ou vérifcation schématique) Synthèse Placement Routage (P & R) Configuration

Etapes du flot de conception Synthèse si code fonctionnel !!!!! = > Pas instructions comme wait!

Etapes du flot de conception Etapes 1 & 2 : Synthèse & Simulation

Edition/Synthèse Création des modèles VHDL (éditeur de texte). Il s’agit de créer des modèles VHDL synthétisables au niveau RTL (Register To Logic). Les fonctions complexes sont décrites de manière comportementale. La synthèse permet à partir d'une spécification VHDL, la génération d'une architecture au niveau transfert de registre RTL (register transfert level) qui permet l'ordonnancement et l'allocation de ressources sans une représentation physique, compilable par un outil de synthèse logique. Cette étape est réalisable à condition de se limiter à un sous ensemble du langage VHDL qui soit strictement synthétisable. équations logiques

Résultats de la synthèse library ieee; use ieee.std_logic_1164.all; entity ADAP2TO2 is port( I1:in std_logic_vector (31 downto 0); I2:in std_logic_vector (31 downto 0); O1: out std_logic_vector (31 downto 0); O2: out std_logic_vector (31 downto 0); CLK: in std_logic; SEL: in std_logic ); END ADAP2TO2; architecture arch_ADAP2TO2 of ADAP2TO2 is begin process (CLK) Begin if (CLK'event and CLK='1') then if (SEL = '0') then O1 <= I1; O2<= I2; else O1 <= I2; O2 <= I1; end if; end process; end arch_ADAP2TO2;

if (CLK'event and CLK='1') then if (SEL = '0') then O1 <= I1; O2<= I2; else O1 <= I2; O2 <= I1; end if; Ensemble de composants décrits et associés en VHDL (port map sur composants de base)

Résultats de la synthèse Device utilization summary:--------------------------- Selected Device : 2s300eft256-6 Number of Slices: 37 out of 3072 1% Number of Slice Flip Flops: 64 out of 6144 1% Number of 4 input LUTs: 64 out of 6144 1% Number of bonded IOBs: 129 out of 182 70% Number of GCLKs: 1 out of 4 25%

Simulation fonctionnelle La simulation fonctionnelle ne tient pas compte des capacités de liaison dues au routage entre les différentes cellules. Elle permet donc de vérifier uniquement la validité du circuit par rapport au cahier des charges d'un point de vue fonctionnel et non d'un point de vue temporel.

Etapes du flot de conception Etape 3 : Projection

CLB des FPGA Composants de library VHDL => CLBs

Projection La projection Translate Mapping

Etapes du flot de conception Etape 4 : Place & routage

Placement routage L'étape suivante consiste à attribuer les cellules (CLB) du circuit à chaque équation délivrée par la projection et à définir les connexions. L'algorithme de placement place physiquement les différentes cellules et les chemins d'interconnexion dessinés entre les cellules afin de faciliter le routage. Des directives jointes à la netlist permettent une bonne répartition des cellules

Placement routage A partir de la description du système => des délais précis (fichier SDF) peuvent décrire le système réalisé

Ajout de contraintes Placement des entrées/sorties Placement des macro-blocks (multiplieurs, blocks mémoires…) Outil : Floorplanner Description littérale (fichier de type UCF)

Example de fichier UCF NET "clk" TNM_NET = "clk_raw"; TIMESPEC "TS_clk" = PERIOD "clk" 100 MHz HIGH 50 %; NET "clk" LOC = "AA12"; # 100 MHz osc OFFSET = IN 5 ns BEFORE "clk"; OFFSET = OUT 5 ns AFTER "clk"; NET "I1<0>" LOC = "B6"; NET "I1<1>" LOC = "A5"; NET "I1<2>" LOC = "B5"; NET "I1<3>" LOC = "A4"; #Commentaires!!! # Loc the DLL and GBUF is optional in this design #INST "clk_comp_clkdll_1" LOC = DLL0; #INST "clk_comp_clk0_bufg_1" LOC = GCLKBUF1; #INST "clk_comp_clkdv_bufg_1" LOC = GCLKBUF0; #NET "sw_input<*>" pullup;

Etapes du flot de conception Etape 5 : Simulation après placement routage (back-annoted)

Simulation temporelle Simulation temporelle après placement et routage (Modelsim) => back annotated. Il s’agit ici de simuler un modèle VHDL avec les informations de délais extraites du modèle obtenu. : => les longueurs d'interconnexion et les délais de propagation au partionnement et au routage. L’outil Modelsim permet d’utiliser un modèle de test VHDL avec un composant à tester décrit en langage Verilog

Intérêts simulation Back-annoted Simulation réalise Association avec des descriptions de composants extérieurs (SRAM, SDRAM) si l’on possède les modèles avec description fonctionnelles (VHDL + SDF)

Etapes du flot de conception Etape 6 : Configuration

Configuration Configuration du FPGA. Il s’agit placer le FPGA dans la configuration souhaitée. Cette configuration est effectuée soit par transfert d’un fichier binaire (Bitstream) directement au FPGA (via ex câble JTAG), soit par l’intermédiaire d’une PROM à la mise sous tension du système.

Rappel Compilation du code VHDL ou Verilog (ou vérification schématique) Synthèse Placement Routage (P&R) Configuration

Outils de développement Edition vi, nedit, Emacs, (voir ModelSim, ISE…) Synthèse ISE (5.1 -> 6.3), outil pour composants Xilinx Leonardo, outil pour composants Altera Synopsys DC Symplify

Outils de développement P & R ISE (5.1 -> 6.3) , outil pour composants Xilinx Quatrus II, outil pour composants Altera Cadence Simulation ModelSim (5.8)

Flot de conception sur example simple library ieee; use ieee.std_logic_1164.all; entity MUXD is port( IN0:in std_logic; IN1:in std_logic; CLK: in std_logic; SEL: in std_logic; Z: out std_logic ); END MUXD; architecture arch_MUXD of MUXD is begin process (CLK) begin if (CLK'event and CLK='1') then if (SEL = '0') then Z <= IN0; else Z <= IN1; end if; end process; end arch_MUXD; IN0 IN1 CLK SEL Z MUX2TO2

Edition/Compilation/Simulation Démo de emacs avec package VHDL Description de l’outil ModelSim Compilation/Synthèse sous ModelSim Simulation sous ModelSim Support

Démo ISE : Placement routage/Configuration Rapports Floorplanner Contraintes Configuration

Techniques de simulation et de vérification Scripts (tcl) Testbenches Composant sans entrées/sorties chargés de donner les vecteurs de test

Réalisation de scripts Utilisation du language Tcl Forcer un signal : force Lancer simulation : run

Réalisation de testbenches Définir les signaux pour connecter les composants internes (et externes…) Définir un temps de simulation Définir des variables pour utiliser des fichiers de données Ouverture et fermeture de fichiers de données Vérification des résultats Mise en place de testbenches plus complexes Fonction/procédures Process en parallèle

Réalisation de testbenches Définir les signaux pour connecter les composants internes (et externes…) Affectation des entrées/sorties

Réalisation de testbenches Définir des variables pour utiliser des fichiers de données FILE data : text; variable sample : line; variable I1_var, I2_var :std_logic_vector (31 downto 0); variable O1_var,O2_var :std_logic_vector (31 downto 0); variable SEL_var: std_logic;

Réalisation de testbenches Définir un temps de simulation constant TCLK_COP : time := 15 ns; constant TCLKL : time := 15 ns; CLK <= '0'; wait for 10 ns; CLK <= '1'; wait for (2000*TCLK_COP); wait until CLK_COP'event and CLK_COP = '1'; Instructions non synthétisables => pour simulation seulement

Réalisation de testbenches Ouverture et fermeture de fichiers de données file_open (data,"adap2to2.dat", read_mode); while not endfile(data) loop readline (data,sample); read (sample,I1_var); read (sample,I2_var); read (sample,SEL_var); read (sample,O1_var); read (sample,O2_var); end loop; file_close (data);

Réalisation de testbenches Vérification des résultats assert O1 = O1_var report "Out1 is incorrect" severity error; assert O2 = O2_var report "Out2 is incorrect"

Présent/Futur

Présent/Futur Vers Co-processing & co-design Co-processeur associé à processeur basé sur un DSP ou processeur multi-média Vers le prototypage rapide