Unité CSF Conception de systèmes numériques sur FPGA Outils EDA Etienne Messerli Mise à jour le 21 février 2012 CSF P1, Méthodologie, p 1 Contenu présentation Design flow VHDL Les outils EDA: catégorie, fonctionnalités,.. Liste des outils disponible Outils IDE: aide gestion projet et saisie graphique Simulateur QuestaSim/ModelSim Synthétiseur Placement et routage Script QuestaSim/ModelSim CSF P1, Méthodologie, p 2
Outils EDA (Electronic Design Automation) Logiciels EDA modernes comprennent les catégories suivantes: Outils d'aide à la gestion de projet (IDE) Outils de saisie graphique avec génération automatique de descriptions VHDL Simulateur VHDL Synthétiseur VHDL Outils de placement-routage des fabricants de PLDs CSF P1, Méthodologie, p 3 Réalisation d'un circuit : Design flow Description VHDL synthétisable Modèle de spécification Fichier de simulation VHDL SYNTHETISEUR (traduction) Spécification Description logique netlist fichier VDHL VHDL fonctionnelle temporelle SIMULATEUR Placement routage (intégration) Programmation circuit fichier de progr. fichiers VDHL CSF P1, Méthodologie, p 4
Catégories de logiciels EDA Outil de gestion de projet et saisie graphique (IDE): Active-HDL (Aldec) Altium Designer (Altium) HDL Designer (Mentor Graphics) Simulateurs: ModelSim (Model Technology & Mentor Graphics) VHDL, Verilog, SystemC QuestaSim (Mentor Graphics) VHDL, Verilog, SystemVerilog Riviera-PRO 2010 (Aldec) VHDL, New VHDL 2008, Verilog, SystemVerilog SMASH (Dolphin Integration) VHDL VCS (Synopsys) VHDL, Verilog, SystemVerilog CSF P1, Méthodologie, p 5 Catégories de logiciels EDA Synthétiseurs: Leonardo, Precision (Mentor Graphics) Synopsys Synplify FPGA (Synopsys, ex Synplicity) RTL Synthesis (Synopsys) ou synthétiseur des logiciels de P-R (voir ci-dessous) Logiciels de placement routage Propriétaire pour chaque fabricant de PLD Voir "Logiciel EDA vendeurs de PLDs" CSF P1, Méthodologie, p 6
Logiciels EDA des vendeurs de PLDs Logiciel proposé par les vendeurs de PLDs IDE: Logiciel intégré avec un synthétiseur et un simulateur simple ou externe Gestion du projet, saisie graphique (hiérarchie) MegaWizard pour fonctions de base et étendues (licence) Simulation simple Synthèse, placement et routage Version de base gratuite Recommandé pour design simple Recommandé pour design de moyenne complexité avec un simulateur externe Logiciel vendeurs de PLDs Altera: Quartus II Actel: Libero IDE Lattice: isplever Xilinx: ISE Design Suite CSF P1, Méthodologie, p 7 Autres outils EDA Symphony EDA - http://www.symphonyeda.com/ Offers a VHDL compiler/simulator with an integrated development environment. Supports VHDL'93, Vital, and SDF. Free command-line tools also available Translogic - http://www.translogiccorp.com/ EASE and EALE provide HDL aware entry tools, both graphical and text based. Also providing Linux support. SynaptiCAD - http://www.syncad.com/ Software tools for EDA, VHDL and Verilog model generation, simulation, and timing diagram editor. TransEDA - http://www.transeda.com/ Provider of ready-to-use verification solutions for the SoC, ASIC and FPGA CSF P1, Méthodologie, p 8
Logiciels EDA-SoC pour PLDs Conception de SoC: Altera Altium Lattice Xilinx SOPC Builder (Nios-II) Altium Designer isplever Platform Studio and the EDK (MicroBlaze) CSF P1, Méthodologie, p 9 Les outils EDA au REDS Outil de gestion de projet et saisie graphique: HDL Designer 2007.1 (pour BSL et SSA) Simulateur: QuestaSim 6.3d Synthétiseur: Precision RTL 2007a Placement et routage: Quartus II, Altera ISE Project Navigator, Xilinx CSF P1, Méthodologie, p 10
HDL Designer Outils d'aide utilisé pour la réalisation de circuits numériques avec intégration dans un PLDs Gestion du projet et des fichiers Saisie graphique de schéma bloc et de machines d'états Génération automatique de la description VHDL correspondant aux saisies graphiques Pilote les autres outils pour la simulation et la synthèse Possibilité lancement outils de placement et routage CSF P1, Méthodologie, p 11 HDL Designer : gestion de projet Gestion des répertoires et des fichiers du projet NomProjet_proj répertoire racine du projet NomProjet (plusieurs possibles) répertoire de travail du projet Comp : compilation pour ModelSim Graph : infos graphique pour HDL Designer P_R : infos pour le placement-routage par Quartus Synth : infos pour la synthèse, Precision VHDL : fichier sources VHDL CSF P1, Méthodologie, p 12
Design manager CSF P1, Méthodologie, p 13 Designer manager, suite.. CSF P1, Méthodologie, p 14
Saisie graphique du Symbol CSF P1, Méthodologie, p 15 Schéma "Block Diagram" CSF P1, Méthodologie, p 16
Schéma bloc Add1_c Schéma hiérarchique, utilisation librairie "REDS_Lib_Base" CSF P1, Méthodologie, p 17 dia volontairement laisser vide CSF P1, Méthodologie, p 18
Réalisation de projet textuel Utilisation de scripts pour les différents outils GUI des outils sont en Tcl/Tk, dispose d un wish Tcl Utilisation langage Tcl/Tk (gratuit) Automatise compilation, chargement, Définir une structure des répertoires: racine: scripts, puis sous-répertoires: comp compilation pour ModelSim p_r infos pour le placement-routage par Quartus src fichiers sources vhdl src_tb fichiers sources pour la simulation synth : infos pour la synthèse, Precision CSF P1, Méthodologie, p 19 Exemple structure répertoire r CapT_I2C Structure des répertoires du TP CSF P1, Méthodologie, p 20
Simulateur Questa & ModelSim Simulateur très répandu ModelSim: VHDL, Verilog, SystemC Questa: VHDL, Verilog, SystemC, SystemVerilog CSF P1, Méthodologie, p 21 Fonctionnalités s d'un simulateur Exécute la description VHDL comportement dans le temps de notre description VHDL permet de décrire un banc de test envoi de stimuli et vérifications des sorties Permet de visualiser n'importe quel signal du design (analyseur logique) CSF P1, Méthodologie, p 22
Simulation Automatique: utilisation d'un banc de test automatique génère des stimuli et opère des vérification, résultat Go/ no Go Manuelle: limiter son utilisation au strict nécessaire! utilisé pour des simulations simples, pour des composants de base principe: générer des stimuli sur les entrées vérifier le comportement du circuit par lecture du chronogramme CSF P1, Méthodologie, p 23 Exemple de simulation manuelle CSF P1, Méthodologie, p 24
Console interactive du REDS Console utilisée pour simulation manuelle : Composant à simuler connecté dans Top_Sim CSF P1, Méthodologie, p 25 Fichier Top_Sim.vhd Permet une simulation manuelle Connexion de la console "REDS Console" avec la description à simuler Modèle d'un générateur d'horloge disponible dans le fichier Top_Sim.vhd Preuve de la simulation fournie par le chronogramme CSF P1, Méthodologie, p 26
fichier Top_Sim.vhd entity Top_Sim is port( --8 switchs (interrupteurs) S0_i : in Std_Logic; S7_i : in std_logic; --Valeurs 8 bits Val_A et Val_B Val_A_i : in std_logic_vector ( 7 downto 0 ); Val_B_i : in std_logic_vector ( 7 downto 0 ); --8 Leds L0_o : out std_logic; L7_o : out std_logic; --2 Resultats sur 8 bits Result_A_o : out std_logic_vector ( 7 downto 0 ); Result_B_o : out std_logic_vector ( 7 downto 0 ); --2 Affichage 7 segments avec valeurs en hexadecimal (4 bits) Hex0_o : out Std_Logic_Vector (3 downto 0); Hex1_o : out Std_Logic_Vector (3 downto 0); --1 Affichage 7 segments seg7_a_o : out std_logic; seg7_g_o : out std_logic ); end Top_Sim ; CSF P1, Méthodologie, p 27 fichier Top_Sim.vhd architecture Struct of Top_Sim is -- Declraration de signaux internes signal B_s : std_logic_vector(3 downto 0); signal P_s : std_logic_vector(3 downto 0); -- Declaration du composant a simuler component Master_I2C_timer port( Clock_i : in std_logic; Reset_i : in std_logic; Start_i : in std_logic; Done_o : out std_logic ); end component ; for all : Master_I2C_timer use entity Work.Master_I2C_timer(Comport); -- Declaration de constantes et signaux internes constant Periode_c : Time := 100 ns; signal Horloge_s : Std_Logic; begin CSF P1, Méthodologie, p 28
fichier Top_Sim.vhd begin -- process de generation d'une horloge interne à Top_Sim process begin Horloge_s <= '0', '1' after Periode_c/3, '0' after (Periode_c/3)+(Periode_c/2); wait for Periode_c; end process; -- Instanciation du composant a simuler I1 : Master_I2C_timer port map ( Clock_i => Horloge_s, --connecter sur horloge Reset_i => S7_i, Start_i => S0_i, Done_o => L0_o ); end Struct; CSF P1, Méthodologie, p 29 Utilisation scripts Tcl Permet d'automatiser les commandes nécessaires pour les différentes étapes d'une simulation, soit: création des librairie Work ou spécifique compilation de l'ensemble des fichiers du projet chargement du test-bench ouverture des fenêtres et ajout des signaux à visualiser sauvegarder le format de la fenêtre wave préparer lors d'une simulation génération des stimuli pour simulation manuelle lancement de la simulation CSF P1, Méthodologie, p 30
Script Tcl pour ModelSim & QuestaSim ModelSim/QuestaSim sont écrit en Tcl/Tk La fenêtre log est un Wish Tcl Disponibilité immédiate du Tcl Lien immédiat avec les signaux VHDL et le Tcl forcer des signaux, ou lire leur état Possibilité de réaliser des fenêtre graphique avec Tk voir exemple de la console REDS d'où : intégration complète entre le simulateur et Tcl/Tk CSF P1, Méthodologie, p 31 Script de compilation Top_sim # -- File : comp_master_i2c_timer_sim.tcl # Complation des paquetages vcom -reportprogress 300 -work work../lib/log_pkg.vhd vcom -reportprogress 300 -work work../src_master_i2c/master_i2c_pkg.vhd # Complation des fichiers du I2C master vcom -reportprogress 300 -work work../src_master_i2c/master_i2c_timer.vhd # Compilation du top_sim pour la simulation manuelle vcom -reportprogress 300 -work work../src_master_i2c_tb/top_sim_timer.vhd CSF P1, Méthodologie, p 32
Script pour lancer simulation # -- File : run_master_i2c_timer_sim.tcl vlib work vmap work work #appel fichier de compilation de Top_Sim_Timer do../comp_master_i2c_timer_sim.tcl #Charge le projet dans QuestaSim vsim Top_Sim #Affiche les signaux dans la fenetre wave do../wave_master_i2c_timer_sim.tcl Voir présentation: Script Tcl pour ModelSim & QuestaSim CSF P1, Méthodologie, p 33 Configuration du chronogramme Possible de changer format d'affichage CSF P1, Méthodologie, p 34
Simulation automatique d un d design Description en VHDL d un banc de test automatique: Génère des stimuli sur les entrées Modélise comportement système externe au design Génération de valeur de référence Vérification des sorties avec le model (référence) Résultat Go/ no Go Possibilité de génération de fichiers de report Affichage des erreurs Fenêtre «wave» pour le debug du design Chronogramme pour la documentation CSF P1, Méthodologie, p 35 Simulation d'un projet complexe CSF P1, Méthodologie, p 36
simulation d'un projet complexe Utilisation d un banc de test automatique CSF P1, Méthodologie, p 37 simulation d'un projet complexe Agrandissement d'une partie du chronogramme CSF P1, Méthodologie, p 38
Simulation Go/ no G0 Copie de la fenêtre log du simulateur # ** Note: >> Debut de la simulation # Time: 0 ns Iteration: 0 Instance: /master_i2c_tb/tester # ** Warning: NUMERIC_STD."=": metavalue detected, returning FALSE # Time: 0 ns Iteration: 0 Instance: /master_i2c_tb/uut/timer # ** Warning: NUMERIC_STD."=": metavalue detected, returning FALSE # Time: 0 ns Iteration: 0 Instance: /master_i2c_tb/uut/cpt_nb # Time: 6696502 ns Iteration: 0 Instance: /master_i2c_tb/tester # ** Note: >> Debut d'une transmission donnee, stimuli (I=48) # Time: 6871502 ns Iteration: 0 Instance: /master_i2c_tb/tester # ** Note: >> Debut d'une transmission donnee, stimuli (I=49) # ** Note: >> Debut d'une transmission donnee, stimuli (I=165) # Time: 33048502 ns Iteration: 0 Instance: /master_i2c_tb/tester # ** Note: ---------------------------------------------------------- # >>Nombre d'erreur(s) détectée(s) = 0 # >>Le design semble correct. # >>Fin de la simulation # Time: 33173502 ns Iteration: 0 Instance: /master_i2c_tb/tester CSF P1, Méthodologie, p 39 Synthétiseur tiseur Traduction de la description VHDL en net-liste Synthèse adaptée selon la technologie utilisée configurer la famille de PLD utilisé utilisation d'algorithme d'optimisation différencié Possible configurer optimisation surface/vitesse Fmax signal particulier Fourni en sorti une net-list pour logiciel de placement et routage CSF P1, Méthodologie, p 40
Outil de placement et routage Spécifique aux vendeurs de PLDs Connait structure interne des circuits configuration des chemins de routage dans le circuits calcul des temps de propagation calcul de la fréquence max en full synchrone Génère un fichier de programmation du circuit (*.pof) Dispose généralement d'un outil de programmation via LPT ou USB CSF P1, Méthodologie, p 41 Terminologie CPLD : Complex Programmable Logic Device EDA : Electronic Design Automation FPGA : Field Programmable Gate Array HDL : Hardware Description Language IDE : Integrated Design Environment PLD : Programmable Logic Device SoC : System on Chip SoPC : System on Programmable Chip CSF P1, Méthodologie, p 42
Questions! CSF P1, Méthodologie, p 43