Infotronique 2ème année Module MA3: Composants des systèmes temps réelr



Documents pareils
SIN-FPGA DESCRIPTION PAR SCHEMA

Le langage VHDL. Eduardo Sanchez EPFL

Manipulations du laboratoire

T. BLOTIN Lycée Paul-Eluard SAINT-DENIS

Conception Systèmes numériques VHDL et synthèse automatique des circuits

MAC-TC: programmation d un plate forme DSP-FPGA

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Chapitre 1 : Introduction aux méthodologies de conception et de vérification pour SE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

QUESTION 1 {2 points}

Conception et Intégration de Systèmes Critiques

Quoi de neuf en LabVIEW FPGA 2010?

Thème 3 Conception et vérification d architectures de systèmes sur puce

DOCUMENT PROTEGE PAR UN DROIT DE COPIE. CPLD ou FPGA Critères de choix. page 1

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

Chapitre II-2 : Conception SoPC (Altera)

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Une méthode de conception de systèmes sur puce

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Quoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)?

Implémentation FPGA d'algorithmes de surveillance de trafic. Projet 11 : Benoît FONTAINE Tristan GROLÉAT Franziska HUBERT

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Cours 7 : Programmation d une chaîne d acquisition

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

ADÉQUATION ALGORITHME-ARCHITECTURE APPLIQUÉE AUX CIRCUITS RECONFIGURABLES

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Ordonnancement temps réel

Compilation (INF 564)

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

PIC EVAL Dev Board PIC18F97J60

Profil UML pour TLM: contribution à la formalisation et à l automatisation du flot de conception et vérification des systèmes-sur-puce.

Alcatel OmniPCX Enterprise TSC-IP V1 (4098RE)

Configurer la supervision pour une base MS SQL Server Viadéis Services

Fiche technique CPU 315SN/PN (315-4PN33)

Étude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test

Environnements informatiques

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Modélisation physique des cellules logiques... Modèles pour le placement routage, le format "LEF"

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

fullprotect inside EOLE SPEie RS E-SPEie V-0.6A-RS 1.0 revision Protection environnement Datasheet édition française

Génie Logiciel avec Ada. 4 février 2013

RTDS G3. Emmanuel Gaudin

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Arbres binaires de recherche

Séminaire RGE REIMS 17 février 2011

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Modélisation des interfaces matériel/logiciel

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Cours Bases de données 2ème année IUT

IV- Comment fonctionne un ordinateur?

Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4

Fabricant. 2 terminals

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Projet M1 Année scolaire 2013/2014

Recherche dans un tableau

DigiView. Acquisition / Régulation / Traitement du signal Programmation Interactive Visuelle

Moteur DC: Comment faire varier sa vitesse?

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Serveur Lynx CALLEO Application 2240S Fiches Technique

Cours de Génie Logiciel

Description du logiciel Modbus RTU

Bases de données avancées

1. Structure d'un programme FORTRAN 95

Serveur Lynx CALLEO Application 2240 Fiches Technique

Gestion mémoire et Représentation intermédiaire

Conception de circuits numériques et architecture des ordinateurs

TP Modulation Démodulation BPSK

Usine Numérique Intégration Produit Production

Outils de CAO. Ecole de microélectronique IN2P octobre 2009, La Londe Les Maures. C. Colledani

StruxureWare Power Monitoring Expert v7.2

Métriques de performance pour les algorithmes et programmes parallèles

Vers du matériel libre

Cours Informatique Master STEP

EMETTEUR ULB. Architectures & circuits. Ecole ULB GDRO ESISAR - Valence 23-27/10/2006. David MARCHALAND STMicroelectronics 26/10/2006

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Préparer un état de l art

Modélisation de la Reconfiguration Dynamique appliquée à un décodeur LDPC Non Binaire

Qualité du logiciel: Méthodes de test

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

Fiche technique CPU 314SC/DPM (314-6CG13)

ACTIVITÉ DE PROGRAMMATION

Algorithmique et Programmation, IMA

JOG : une approche haut niveau des systèmes embarqués via Armadeus et Java

Introduction à MATLAB R

TP Contraintes - Triggers

La vie privée à l ère du numérique : approches philosophiques et informatiques

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Chapitre VI- La validation de la composition.

CLIP. (Calling Line Identification Presentation) Appareil autonome affichant le numéro appelant

ENSSAT EII2 Projet en conception de circuits intégrés dédiés

Présentation du PL/SQL

Transcription:

Infotronique 2ème année Module MA3: Composants des systèmes temps réelr 1) Méthodologie de conception 2) Outils de conception 3) La simulation et la vérification 1

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 2

Partitionnement 3

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

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

Max => O1 Min => O2 6

7

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

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

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. 10

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). 11

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. 12

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. 13

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

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

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

Edition/Synthèse 1) 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 17

Résultats de la synthèse library ieee; use ieee.std_logic_1164.all; architecture arch_adap2to2 of ADAP2TO2 is begin entity ADAP2TO2 is port( process (CLK) 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; Begin if (CLK'event and CLK='1') then if (SEL = '0') then O1 <= I1; O2<= I2; else O1 <= I2; O2 <= I1; end if; end if; end process; end arch_adap2to2; 18

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) end if; 19

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% 20

Simulation fonctionnelle 2) 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. 21

Etapes du flot de conception Etape 3 : Projection 22

CLB des FPGA Composants de library VHDL => CLBs 23

Projection 3) La projection Translate Mapping 24

Etapes du flot de conception Etape 4 : Place & routage 25

Placement routage 4) 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 26

27

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é 28

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) 29

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; 30

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

Simulation temporelle 5) 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 32

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) 33

Etapes du flot de conception Etape 6 : Configuration 34

Configuration 6) 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. 35

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

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

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

library ieee; use ieee.std_logic_1164.all; Flot de conception sur example simple 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 if; end process; end arch_muxd; IN0 IN1 CLK SEL MUX2TO2 Z 39

Edition/Compilation/Simulation 1) Démo de emacs avec package VHDL 2) Description de l outil ModelSim 3) Compilation/Synthèse sous ModelSim 4) Simulation sous ModelSim 5) Support 40

Démo ISE : Placement routage/configuration 1) Rapports 2) Floorplanner 3) Contraintes 4) Configuration 41

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

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

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

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

Réalisation de testbenches 2) 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; 46

Réalisation de testbenches 3) 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 10 ns; wait for (2000*TCLK_COP); wait until CLK_COP'event and CLK_COP = '1'; Instructions non synthétisables => pour simulation seulement 47

Réalisation de testbenches 4) 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); 48

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

Présent/Futur 50

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