SOC et IP. Patrice Nouel. http://vhdl33.free.fr

Documents pareils
SIN-FPGA DESCRIPTION PAR SCHEMA

Le langage VHDL. Eduardo Sanchez EPFL

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

Chapitre II-2 : Conception SoPC (Altera)

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

Manipulations du laboratoire

Quoi de neuf en LabVIEW FPGA 2010?

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

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

PIC EVAL Dev Board PIC18F97J60

Concept de machine virtuelle

Guide d'installation rapide TFM-560X YO.13

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmer en JAVA. par Tama

Compilation (INF 564)

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

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

[ Rencontres Mondiales du Logiciel Libre 2011 Lundi 11 juillet 2011 ] Introduction à l'open Hardware Auteur : Dr Ir Robert Viseur

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Conception et Intégration de Systèmes Critiques

WEB page builder and server for SCADA applications usable from a WEB navigator

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

TP1 : Initiation à Java et Eclipse

Linux embarqué: une alternative à Windows CE?

Projet audio. Analyse des Signaux ELE2700

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

Introduction aux systèmes temps réel. Iulian Ober IRIT

Architecture des Ordinateurs. Partie II:

Génération de code binaire pour application multimedia : une approche au vol

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

WSM la solution complète de provisionnement de bureaux virtuels

Programmation C. Apprendre à développer des programmes simples dans le langage C

Rappels d architecture

Conception de Systèmes de Communications Numériques

as Architecture des Systèmes d Information

Programmation en Java IUT GEII (MC-II1) 1

Prototypage électronique

Traitement de données

Cours 7 : Programmation d une chaîne d acquisition

Modélisation des interfaces matériel/logiciel

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

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

Ordinateurs, Structure et Applications

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Votre premier projet Android

Usine Numérique Intégration Produit Production

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

Java Licence Professionnelle CISII,

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

Préparer un état de l art

Conférence sur les microcontroleurs.

Importation de fichiers Eagle

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

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

CONTEC CO., LTD. Novembre 2010

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

Synergies entre Artisan Studio et outils PLM

Chapitre 4 : Les mémoires

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

La carte à puce. Jean-Philippe Babau

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

Débuter avec PsoC ou PsoC niveau 0

La technologie Java Card TM

Summary / Sommaire. 1 Install DRIVER SR2 USB01 Windows seven 64 bits / Installation du DRIVER SR2 USB01 Windows seven 64 bits 2

Déploiement de SAS Foundation

Architecture des ordinateurs

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

Software and Hardware Datasheet / Fiche technique du logiciel et du matériel

IV- Comment fonctionne un ordinateur?

Notions d IPMI et retour. Ecole d électronique numérique Fréjus 28 novembre 2012 Nicolas LETENDRE

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés

Plan de la conférence. Virtualization. Définition. Historique. Technique. Abstraction matérielle

Guide Mémoire NETRAM

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

Présentation du PL/SQL

How to Login to Career Page

Projet M1 Année scolaire 2013/2014

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

StruxureWare Power Monitoring v7.0. La nouvelle génération en matière de logiciel de gestion complète d énergie

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Windows 7 - Installation du client

ACTIVITÉ DE PROGRAMMATION

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

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

Éléments d'architecture des ordinateurs

Vers du matériel libre

Transcription:

Patrice Nouel http://vhdl33.free.fr

Technologie - Etat de l'art Les FPGA sont toujours à la pointe de la technologie pour compenser leur pertes en performance. EX: 65nm pour la série Virtex5, 40nm pour la Stratix IV Elements Logiques: 330K (virtex5 ), 680k (Stratix IV) Mémoire max: 20 Megabits environ. Vitesse de fonctionnement max: 500 Mhertz Note: Un processeur 32 bits consomme au maximum 1K élément logique 2

System On Chip Comporte au moins un processeur RAM/ ROM µc RAM/ ROM µc I / O DSP I / O DSP IP «core» virtual components 3

IP: Composants virtuels Pour être capable d intégrer un système, il faut: Réutiliser les blocs déjà conçus (Design Reuse) Acheter ou trouver des blocs génériques chez des fournisseurs extérieurs Les IP sont des blocs de propriété intellectuelle encore appelés: IP, IP blocks, cores, system-level blocks (SLB), macros, system level macros (SLMs), or Virtual Components (VCs). 4

IP: classification Soft: Source VHDL ou Verilog doit être synthétisée et optimisée au niveau physique Avantage: Indépendance vis à vis du choix technologique. Inconvénient: Travail d optimisation peut être long. Hard: Description ciblée technologiquement Avantage: performances escomptées (à vérifier) Inconvénient: Impossible de changer de cible. Firm: Niveau portes (netliste) Avantages : Flexible et prédictible 5

Design Reuse Méthodologie de conception des circuits Règles à respecter pour la conception des IP La qualification garantie le respect de ses règles VSIA-Virtual Socket Interface Alliance: Groupement de sociétés s ayant donné pour but d unifier le monde SOC http://www.vsi.org Livre conseillé: Reuse Methodology manual For System On Chip Designs. Michael Keating and Pierre Bricaud Kluwer Academic Publishers 6

IP: Fournisseurs Nombreux fournisseurs de blocs de propriété intellectuelle impossibles à dénombrer. http://www.opencores.org http://www.design-reuse.com http://www.mentor.com/inventra/ http://www.xilinx.com http://www.altera.com 7

IP: dominantes Traitement d image Filtres numériques Circuits d interface: USB Cryptage des données Processeurs et périphériques Communications sans fil DSP Mémoires 8

Codesign Concerne un projet mariant une étude de conception matérielle et logicielle conjointement. On peut être amené dans ce cadre à effectuer des co-simulations ( deboggage d un programme sur une plate-forme matérielle simulée). Un projet SOC mêle trois aspects: architecture matérielle, technologie et logiciel. 9

Outils Vérification système : A partir du moment où on peut rapidement construire un gros système avec des IP disparates, la difficulté se reporte sur la vérification système matérielle et logicielle conjointement. C est dans ce domaine que les outils se développent le plus à l heure actuelle. Partition logiciel-matériel : Définir l architecture idéale du système. 10

Les cœurs de processeurs Très nombreux (plusieurs centaines) sont inventoriés avec sur le site http://www.design-reuse.com Les leaders dans ce domaine sont ARM et MIPS. Plus de 50 sociétés possèdent 140 licences ARM ( principalement des applications faible consommation). Mips est très répandu dans les circuits intégrés pour les jeux, les imprimantes et les communications 11

Critères de Choix Le processeur RISC ou CISC 8, 16, 32, 64 bits IP SOFT ou HARD, configurable ou pas Le système de bus Les périphériques existantes Le système d exploitation Les outils disponibles de codesign. Implantation du cœur et des IP Vérification et test 12

Pourquoi utiliser un processeur softcore? Durée de vie du produit Indépendance de la technologie Prototypage en vue de réaliser un ASIC Propriété et maitrise des sources Souplesse d évolution (VHDL est standard) 13

Processeurs disponibles Cœur PowerPc en dur dans Virtex (xilinx) Hardcores ( Arm et MIPS par exemple) Softcores commerciaux multi-cibles ASIC ou FPG Softcores commerciaux à cible propriétaire NIOS pour Altera Microblaze et Picoblaze pour Xilinx Autres Softcore opensource Leon Sparc V8 OpenRISc (OpenCores.org) 14

Performances comparées (Patrick Pelgrims -De Nayer Instituut) Device Family Timing D-MIPS MUL. RAM Cache [kb] i d Virtex II 1000-4 100 MHz 62 HW blockram NA NA Virtex II 1000-4 100 MHz 45 SW blockram NA NA Virtex II 1000-4 50 MHz 4 HW SDRAM NA NA Virtex II 1000-4 50 MHz 6 HW SDRAM 2 2 Virtex II 1000-4 50 MHz 13 HW SDRAM 8 8 Device Family Timing D-MIPS RAM Cache [kb] i d Altera APEX20k200-2X 33 MHz 13 SRAM 0 0 Altera APEX20k1000E-2X 40 MHz 9 SDRAM 0 0 Altera Cyclone EP1C20 50 MHz 17 SRAM 4 4 Altera Cyclone EP1C20 50 MHz 15 SDRAM 4 4 Altera Stratix EP1S10 50 MHz 17 SRAM 4 4 Altera Stratix EP1S10 50 MHz 15 SDRAM 4 4 OpenRisc 1200 [Richard Herveille] Device Family Timing D-MIPS RAM Virtex-E 1600 25 MHz 20 SRAM Leon Device Family Timing D-MIPS RAM Cache [kb] i d Xilinx Virtex-E 1000E-6 25 MHz 21 SRAM 16 8 Altera APEX20k200-2X 26 MHz 21 SRAM 2 2 Altera APEX20k1000E-2X 20 MHz 4 SDRAM 8 8 Xilinx Virtex II 6000-5 40 MHz 27 SRAM 4 4 Altera Cyclone EP1C20 50 MHz 33 SRAM 4 4 15

Performances comparées (Patrick Pelgrims -De Nayer Instituut) Overzicht MHz Virtex II PRO Virtex II Virtex E Component Spartan II E Spartan II Stratix Cyclone APEX II APEX ASIC 0.18µ OpenRisc Nios Microblaze Leon 0 100 200 300 MHz 16

Le circuit ALTERA EP1S10F780C6 EP1S: Famille Stratix technologie cuivre 1,5volt 0,13µm (fréquence limite 300 MHz) 10 : Surface et ressources 10570 Logic element 920448 bits de RAM soient 94 blocs de RAM 32x18 bits 128 blocs de RAM 128x36 bits 1 bloc de RAM 4Kx144 bits 6 Blocs DSP 48 multiplieurs 9X9 bits ou 24 multiplieurs 18x18 bits ou 6 multiplieurs 36x36 bits 17

EP1S10F780C6 (suite) Ressources (suite) 6 PLLs F: Type de package ->Fine line BGA 780 : Nombres de broches 426 I/O max : Nombreux standards de communication rapide simple ou différentielle. C: Commerciale -> circuit garanti de 0 C à 85 C 6 : rapidité moyenne (échelle de 5 rapide à 7 lent) 18

EP1S10 (suite) Architecture interne 1lab = 10 LE 19

EP1S10 (suite) Logic element 20

EP1S10 (suite) Les horloges disponibles 16 entrées réservées aux horloges. Cela va piloter l ensemble des horloges globlales ou locales. 6 PLL pour diviser ou multiplier les fréquences d horloge Le réseau d horloge est structuré: globale = sur l ensemble du circuit, on garantie un minimum de skew Locale = idem mais sur un quadrant particulier 21

EP1S10 (suite) Les I/O JTAG LVDS 3.3v PCI Pullup resistor Tri-state buffer Open-drain outputs Skew control Programmable delay 22

PLD Design Flow Design Specification Design Entry/RTL Coding - Behavioral or Structural Description of Design LE M4K M512 I/O RTL Simulation - Functional Simulation (Modelsim, Quartus II) - Verify Logic Model & Data Flow (No Timing Delays) Synthesis - Translate Design into Device Specific Primitives - Optimization to Meet Required Area & Performance Constraints - Precision, Synplify, Quartus II Place & Route - Map Primitives to Specific Locations inside Target Technology with Reference to Area & Performance Constraints - Specify Routing Resources to Be Used 23

PLD Design Flow t clk Timing Analysis - Verify Performance Specifications Were Met - Static Timing Analysis Gate Level Simulation - Timing Simulation - Verify Design Will Work in Target Technology PC Board Simulation & Test - Simulate Board Design - Program & Test Device on Board - Use SignalTap II for Debugging 24

Exemple d IP gratuit: PIC P1684 http://www.opencores.org Projet PPX16mcu Site créé en mai 2002, revu en octobre 2002 10 fichiers VHDL Apparence du VHDL: Bon choix de bibliothèques, peu ou pas de commentaire dans le code. Compilation:une erreur facile à corriger Simulation: certaines fonctionnalités fausses. Trois erreurs détectées et corrigées dont une complexe. 25

Modèle PIC Analyse (1) ENTITY P16F84 IS GENERIC( SyncReset : boolean := true); PORT( Clk : IN std_logic; Reset_n : IN std_logic; T0CKI : IN std_logic; INT : IN std_logic; Port_A : INOUT std_logic_vector(7 DOWNTO 0); Port_B : INOUT std_logic_vector(7 DOWNTO 0) ); END P16F84; 26

Modèle PIC Analyse (2) Différence entre composant discret et composant virtuel ( entité). Ceci aura une incidence sur la génération du logiciel: Ports A et B identiques Entrée TOCKI séparée du port A Entrée d interruption séparée du port B Mémoire EEPROM n existe pas 27

Modèle PIC Structure interne 28

Projet PIC - Méthodologie Mettre au point le logiciel (fichier *.hex) Créer le composant ROM en VHDL contenant le programme. Rom84.vhd Simuler au niveau RTL Synthétiser Placer-router après avoir choisi la cible. Remarque: Modèle de simulation diffère légèrement du modèle réel. 29

Projet PIC sur FPGA Cible: kit de développement Nios Altera FPGA: EP1S10F780C6 Réalisation: Chenillard à diode par interruption timer. Teste les prédiviseurs, le timer, l interruption. 30

Structure du circuit de test LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; ENTITY pic IS GENERIC ( simulation : boolean := false); -- change les constantes de temps PORT ( clk : IN std_logic; -- horloge systeme reset_n : IN std_logic; -- reset general int : IN std_logic; -- demande interruption port_a : INOUT std_logic_vector(7 DOWNTO 0); port_b : INOUT std_logic_vector(7 DOWNTO 0) ); END pic; 31

Circuit de test P1 : P16F84 PORT MAP ( clk => clk, reset_n => reset_n, T0CKI => t0cki, int => int, port_a => port_a, port_b => port_b); diviseur: PROCESS CONSTANT rapport : natural := 749; -- si 50 Mhz alors 15 us CONSTANT rapport_s : natural := 9; -- pour simu VARIABLE c : natural RANGE 0 TO rapport; BEGIN -- PROCESS diviseur WAIT UNTIL rising_edge(clk); t0cki <= '0'; IF simulation THEN IF c < rapport_s THEN -- simulation c := c + 1; ELSE c := 0; t0cki <= '1'; END IF; ELSE IF c < rapport THEN -- synthèse c := c + 1; ELSE c := 0; t0cki <= '1'; END IF; END IF; 50 MHz diviseur PIC Entrée Timer END PROCESS diviseur; Afficheurs 7 segments Poussoir 32

Principes de conception VHDL Tout doit être synchrone On rentre sur des registres, on sort sur des registres Choix des bibliothèques VHDL normalisées par IEEE Std_logic_1164 Numeric_std Commentaires Utilisation de conventions pour les identificateurs: reset_n, clear, clock Chaque module doit être accompagné de son test bench 33

Pourquoi utiliser des scripts? Pour lier des outils entre eux ( precision ou modelsim + quartus) Pour automatiser des tâches Pour diminuer la taille mémoire d un projet Pour faciliter la maintenance d un projet Pour créer des outils (ex désassembleur dans Modelsim) 34

Le langage Tcl/Tk TCL = Tool Command Language Tk est une extension qui introduit le graphique Fonctionne sur tous types de machine Langage interprété ( n a pas besoin d être compilé) Quartus II et modelsim utilisent TCL comme langage de script Editeur dédié dans Quartus 35

Syntaxe TCL Sensible à la casse (majuscules-minuscules) Syntaxe courante Command arg1 arg2 arg3 Example : set var 3 Substitution de variable puts La valeur de la variable est $var Ecrit La valeur de la variable est 3 dans la fenêtre message Substitution de commande puts La valeur de la variable est [expr $var + $var] Ecrit La valeur de la variable est 6 dans la fenêtre message 36

Syntaxe TCL (suite) Arithmetique Listes On passe par la commande expr set a { 1 2 3 } donne 3 valeurs à a set b [llength $a] b est égal à la longueur de a set c [lindex $a 2] c est égal à a[2] ou à 3 37

Syntaxe TCL (suite) Structures de commande if-elseif-else Boucles for Boucles foreach Boucle loops Procedures Commande proc Utiles pour créer des fonctions ou des sous-programmes 38

Paquetages TCL Regroupent un certain nombre de fonctions proches Exemple de packages dans Quartus: ::quartus::project pour projets et affectations ::quartus::flow pour compilation et run ::quartus::report pour créer des rapports particuliers ::quartus::timing_report pour les chemins critiques Load_package <name> [-version <version>] 39

Exemple de script TCL package require ::quartus::project set need_to_close_project 0 set make_assignments 1 # Check that the right project is open if {[is_project_open]} { if {[string compare $quartus(project) "pic"]} { puts "Project pic is not open" set make_assignments 0 } } else { # Only open if not already open if {[project_exists pic]} { project_open -revision pic pic } else { project_new -revision pic pic } set need_to_close_project 1 } 40

Exemple de script TCL # Make assignments if {$make_assignments} { set_global_assignment -name ORIGINAL_QUARTUS_VERSION "4.1 SP2" set_global_assignment -name PROJECT_CREATION_TIME_DATE "10:35:48 JANUARY 25, 2005" set_global_assignment -name LAST_QUARTUS_VERSION 4.2 set_global_assignment -name VHDL_FILE rtl/new_ppx_pcs.vhd # etc.. set_global_assignment -name VHDL_FILE rtl/ppx_ram.vhd set_global_assignment -name VHDL_FILE rtl/ppx_tmr.vhd set_global_assignment -name VHDL_FILE rtl/rom84.vhd set_global_assignment -name IGNORE_CLOCK_SETTINGS ON set_global_assignment -name FMAX_REQUIREMENT "70.0 MHz" set_global_assignment -name DEVICE_FILTER_PACKAGE FBGA set_global_assignment -name DEVICE_FILTER_PIN_COUNT 780 set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 6 set_global_assignment -name FAMILY Stratix set_global_assignment -name DEVICE EP1S10F780C6 set_location_assignment PIN_K17 -to clk 41