31
Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License Design flow & Outils EDA + scripts tcl Questa/ModelSim Etienne Messerli Le 8 février 2018 E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 1 Version pour SysLog2 2018 Outils EDA Contenu présentation Design flow VHDL Les outils EDA: catégorie, fonctionnalités, .. Simulateur Questasim Placement et routage Quartus Script QuestaSim/ModelSim E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 2

Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

  • Upload
    others

  • View
    5

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Formation VHDL et outils EDA

Outils EDA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License

Design flow & Outils EDA+ scripts tcl Questa/ModelSim

Etienne Messerli

Le 8 février 2018

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 1

Version pour SysLog2 2018

Outils EDA

Contenu présentation

Design flow VHDL

Les outils EDA: catégorie, fonctionnalités, ..

Simulateur Questasim

Placement et routage Quartus

Script QuestaSim/ModelSim

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 2

Page 2: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

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

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 3

Outils EDA

Complexité et coûts

Nouveau développement: ▪ PLD indispensable (CPLD, FPGA, HardCopy)

Niveau de complexité augmente fortement :▪ dizaines vers centaines de milliers de portes,

voir millions de portes

Développement "à la main" plus possible !nécessaire d'utiliser:

outils EDA performants, méthodologies etbibliothèques de "pièces" sont indispensables

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 4

Page 3: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Méthodologie de conception

Conception Top - Down

Décomposition du système▪ important de choisir l'architecture

▪ modules de bases doivent être simples

▪ réutilisation des descriptions (IP)

Conception full synchrone avec FPGA !▪ fiabilité, testabilité

Vérification: chaque module, puis l'ensemble▪ nouveau défi avec la complexité des designs

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 5

Outils EDA

Langages pour la synthèse (Design)

Langage VHDL très performant▪ hiérarchique, paquetage, générique, attributs, …

▪ méthodologie & design re-use

Utilisation parfois nécessaire de Verilog pour les IPs (composants virtuels textuels)

Dans le cas du langage Verilog▪ pratique d'utiliser des fonctionnalités de SystemVerilog

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 6

Page 4: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Réalisation d'un circuit : Design flowDescription VHDL

synthétisableFichier de simulation

VHDL

SYNTHETISEUR(traduction)

Description logiquenetlist

fichierVDHL

Placement routage(intégration)

Programmation circuitfichier de progr.

fichiersVDHL

SIMULATEURVHDL

fonctionnelle

temporelle

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 7

Outils EDA

QuartusQuestaSim

Réalisation d'un circuit : Design flowDescription VHDL

synthétisableFichier de simulation

VHDL

SYNTHETISEUR(traduction)

Description logiquenetlist

fichierVDHL

Placement routage(intégration)

Programmation circuitfichier de progr.

fichiersVDHL

SIMULATEURVHDL

fonctionnelle

temporelle

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 8

Page 5: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Caractéristiques des deux outils

Le simulateur :▪ interprète le langage VHDL

▪ comprend l'ensemble du langage VHDL

Le synthétiseur :▪ traduit la description VHDL en une netlist

logique

▪ comprend uniquement un sous-ensemble du langage VHDL

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 9

Outils EDAE. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 10

Ensemble synthétisable du VHDLEnsemble du VHDL (simulateur)

VHDL synthétisableoutil Y

VHDL synthétisableoutil X

VHDL Synthétisable

VHDL du cours

Page 6: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Objectif de la méthodologie

Description VHDL simuléeavant et après synthèse, l'objectif est :

même fonctionnement dans les deux cas

Une méthodologie est indispensableavec exemple de structures VHDL

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 11

Outils EDA

Le troisième outil

Finalement la netlist obtenue après synthèse doit être intégrée dans le circuit cible.

C'est l'outil de placement et routage▪ celui-ci est fourni par le fabricant du circuit

▪ il inclut souvent le synthétiseur

▪ les temps de propagations seront déterminés

Le fonctionnement logiquen'est pas modifié durant cette étape

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 12

Page 7: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

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

Spécifique à chaque fabricant de PLDs▪ Outils de placement-routage

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 13

Outils EDA

Catégories de logiciels EDA …

Outil de gestion de projet et saisie graphique (IDE):▪ Active-HDL (Aldec)▪ Altium Designer (Altium)▪ HDL Designer (Mentor Graphics)▪ Outils des vendeurs de PLDs

• Actel: Libero IDE

• Altera:Quartus Prime, Qsys (SoC)• Lattice: ispLEVER• Xilinx: Vivado & ISE Design Suites

▪ Logisim• outil libre utilisé au REDS en collaboration avec

d'autres HES (BE, GE) et une communauté

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 14

Page 8: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Catégories de logiciels EDA …

Simulateurs:▪ Incisive Entreprise VHDL, SystemVerilog

(Cadence)

▪ ModelSim VHDL, Verilog, SystemC(Model Technology & Mentor Graphics)

▪ QuestaSim VHDL, Verilog, SystemC, (Mentor Graphics) SystemVerilog

▪ Riviera-PRO 2010 VHDL, Verilog, SystemVerilog(Aldec)

▪ SMASH VHDL(Dolphin Integration)

▪ VCS VHDL, Verilog, SystemC, SystemVerilog(Synopsys)

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 15

Outils EDA

Catégories de logiciels EDA …

Synthétiseurs:▪ Leonardo, Precision (Mentor Graphics)

▪ Synplify Pro/ Premier (Synopsys)

▪ …

▪ Intégré dans les outils des vendeurs de PLDs

Logiciels de placement routage▪ Propriétaire pour chaque fabricant de PLD

▪ Voir "Logiciel EDA vendeurs de PLDs"

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 16

Page 9: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Logiciels EDA des vendeurs de PLDs …

Chaque vendeur de PLDs propose une suite d'outils:▪ IDE pour la gestion du projet

▪ Editeur graphique hiérarchique (saisie schéma)

▪ MegaWizard pour fonctions de base et étendues (licence)• spécifique pour les circuits du vendeur de PLDs

▪ Simulation simple ou simulateur externe (gratuit ou prix réduit)

▪ Synthétiseur (performant, synthèse de qualité)

▪ Placement/routage (spécifique)

▪ Fréquemment version de base gratuite

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 17

Outils EDA

… logiciels EDA des vendeurs de PLDs …

Utilisation dans l'industrie:▪ Fréquemment utilisé dans les PME

▪ Outil abordable• version de base gratuite

• version étendue à prix raisonnable (quelques KFr)

Adéquat pour design simple

Design de moyenne complexité▪ utilisation d'un simulateur externe (performant)

▪ version étendue à prix abordable

E. Messerli (HES-SO / HEIG-VD / REDS), 2017 p 18

Page 10: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

… logiciels EDA des vendeurs de PLDs

Principaux logiciels de vendeurs de PLDs

Fabricant Logiciel EDA

Actel Libero IDE, Libero SoC

Altera Quartus II (inclus Qsys system Integration)

Atmel ProChip Designer

CypressSemiconductor

PSoC Creator™ and PSoC Designer™

LatticeSemiconductor

Lattice DiamondispLEVER, iCEcube2 Design

QuickLogic Corp. QuickWorks

Xilinx Vivado Design, ISE Design Suite

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 19

Outils EDA

Les outils EDA au REDS

Outil de gestion de projet et saisie graphique:▪ Logisim (utilisé en 1ère, voir 2ème année)

Simulateur:▪ QuestaSim 10.2

Synthétiseur:▪ Synthétiseur tiers: Precision RTL & Synplify pro, plus utilisé

▪ Synthétiseur des outils des fabricants de PLDs

Synthétiseur et placement/routage:▪ Altera: Quartus II (13.0)▪ Xilinx: ISE

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 20

Page 11: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Réalisation de projet textuelUtilisation de scripts pour les différents outils

▪ GUI des outils écrit en Tcl/Tk, dispose d’un wish▪ Documentation pour l’édition de script▪ Automatise compilation, chargement, …

Structure des répertoires:• racine: scripts, puis sous-répertoires:

- comp compilation pour Questa/ModelSim- pr infos pour le placement-routage par Quartus- src fichiers sources vhdl- src_cpld fichiers top pour le circuit CPLD- src_tb fichiers sources pour la simulation

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 21

Outils EDA

Exemple structure de répertoires

Structure des répertoires du projet "bin_lin"

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 22

Page 12: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Simulateur QuestaSim & ModelSim Simulateur très répandu ModelSim: VHDL, Verilog, SystemC QuestaSim: VHDL, Verilog, SystemC, SystemVerilog

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 23

Outils EDA

Exemple de simulation manuelle

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 24

Page 13: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Console interactive du REDS

Simulation manuelle: Le composant à simuler est connecté dans console_sim.vhd

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 25

Outils EDA

Fichier console_sim.vhd …

Permet une simulation manuelleConnexion de la console "REDS Console"

avec la description à simulerModèle d'un générateur d'horloge disponible

dans le fichier console_sim.vhd Preuve de la simulation fournie par le

chronogramme

Exemple d'utilisation lors projet Bin_Lin

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 26

Page 14: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

… fichier console_sim.vhd …

E. Messerli (HES-SO / HEIG-VD / REDS), 2017 p 27

entity console_sim isport(

--16 switchs (interrupteurs)S0_sti : in Std_Logic; …S15_sti : in std_logic; --Valeurs 16 bits Val_A et Val_BVal_A_sti : in std_logic_vector (15 downto 0 );Val_B_sti : in std_logic_vector (15 downto 0 );--16 Leds L0_obs : out std_logic;…L15_obs : out std_logic;--2 Resultats sur 16 bitsResult_A_obs : out std_logic_vector (15 downto 0 );Result_B_obs : out std_logic_vector (15 downto 0 );--2 Affichage 7 segments avec valeurs en hexadecimal (4 bits) Hex0_obs : out Std_Logic_Vector (3 downto 0);Hex1_obs : out Std_Logic_Vector (3 downto 0);--1 Affichage 7 segmentsseg7_A_obs : out std_logic;…seg7_G_obs : out std_logic );

end console_sim ;

Outils EDA

… fichier console_sim.vhd … architecture struct of console_sim is

-- Declraration de signaux internessignal B_s : std_logic_vector(3 downto 0);signal P_s : std_logic_vector(3 downto 0);

-- Declaration du composant a simulercomponent 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 : timer use entity Work. timer(Comport);

-- Declaration de constantes et signaux internesconstant Periode_c : Time := 100 ns;signal Horloge_s : Std_Logic;

begin

E. Messerli (HES-SO / HEIG-VD / REDS), 2017 p 28

Page 15: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

… fichier console_sim.vhd …

begin

--¦process de generation d'une horloge interne à console_Simprocessbegin

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 simulerI1 : timer port map (

Clock_i => Horloge_s, --connecter sur horlogeReset_i => S15_sti, Start_i => S0_sti,Done_o => L0_obs

);

end struct;

E. Messerli (HES-SO / HEIG-VD / REDS), 2017 p 29

Outils EDA

Utilisation d'un script Tcl Permet d'automatiser les commandes

nécessaires pour les différentes étapes d'une simulation, soit:▪ création de la librairie work▪ compilation de l'ensemble des fichiers du projet

inclus les paquetages et le test-bench▪ chargement du test-bench▪ ouverture des fenêtres et placement de celles-ci▪ ajout des signaux à visualiser ou chargement du

format de la fenêtre wave préalablement sauvée▪ lancement de la simulation▪ …

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 30

Page 16: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Script de compilation fichiers

# -- Exemple de script: comp_gen_pwm.tcl

#create library work vlib work

#map library work to workvmap work work

# Complation des paquetages

# PWM generator files compilationvcom -reportprogress 300 -work work ../src/div_freq_s.vhdvcom -reportprogress 300 -work work ../src/pwm_s.vhdvcom -reportprogress 300 -work work ../src/gen_pwm_s.vhd

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 31

Outils EDA

Script pour lancer simulation

Suite: voir présentation script Tcl

# -- File: run_gen_pwm_sim.tcl

#compile tous les fichiers source (utilise un script) do ../comp_gen_pwm.tcl

# compilation de top_sim.vhdvcom -reportprogress 300 -work work ../src_tb/console_sim.vhd

#Chargement fichier pour la simulationvsim work.console_sim

#ajout signaux composant simuler dans la fenetre waveadd wave UUT/*#ou ouvrir le fichier avec le format predefini#do wave_gen_pwm_top_sim.do

#lance la console REDSdo /opt/tools_reds/REDS_console_logisim.tcl

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 32

Page 17: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDAE. Messerli (HES-SO / HEIG-VD / REDS), 2018

Configuration chronogramme

Possible de modifier le format d'affichage

p 33

voir manuel utilisation Questasim

Outils EDA

Simulation automatique d’un 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

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 34

Page 18: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

… simulation automatique d’un design …

Enjeux de la simulation Pas d’erreur = design fonctionne ?

▪ NON !▪ Signifie que le design correspond aux tests réalisés dans

le banc de test ▪ possible qu’il reste des erreurs !!

Est-il possible d’assurer une vérification à 100% ? Traité dans le cours à choix CSF

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 35

Outils EDA

… simulation automatique d’un design …

Structure d'un banc de test :

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 36

Description VHDLà tester(synthétisable)

Erreurs

Générateurde stimuli

Vérificationdes sorties

Fichier test bench _tb

Process de stimuli-vérification

Stimuli_sti

Signaux observés _obs

UUT

Références _ref

Page 19: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Simulation d'un projet complexe …

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 37

Outils EDA

… simulation d'un projet complexe …

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 38

Page 20: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

… simulation d'un projet complexe

Agrandissement d'une partie du chronogramme

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 39

Outils EDA

Simulation Go/ no G0Copie 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

>>Nombre d'erreur(s) détectée(s) = 0>>Le design correspond aux cas vérifiés

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 40

Page 21: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Outil de placement et routage

Spécifique aux vendeurs de PLDsConnait 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, *.sof, …) Propose une sonde USB pour la program-

mation in situ par JTAGE. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 41

Outils EDA

Dia volontairement laissé vide

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 42

Page 22: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Formation VHDL et outils EDA

Outils EDA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License

Script Tcl pourQuestaSim & ModelSim

Etienne MesserliInstitut REDS, HEIG-VD

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 43

Outils EDA

Utilité d'un script

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

inclus le test-bench▪ chargement du test-bench▪ ouverture des fenêtres et placement de celles-ci▪ ajout des signaux à visualiser ou chargement du

format de la fenêtre wave préalablement sauvée▪ lancement de la simulation

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 44

Page 23: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

QuestaSim / ModelSim et Tcl QuestaSim/ModelSim 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 Tkvoir exemple de la console REDS d'où :

intégration complète entre le simulateur et Tcl/Tk

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 45

Outils EDA

Intérêts pour script Tcl

Outils gratuit

Adapter à la gestion de fichier

Disponible avec de nombreux outils EDA

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 46

Page 24: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Contrôle de QuestaSim/ModelSim

avec un script Tcl toutes les commandes et options de configuration de Questa/ModelSim sont disponibles via interface GUI seul une partie des options

de configuration sont accessibles les commandes réalisées via le GUI sont

aussi affichées dans la fenêtre log avec la commande Tcl correspondante ▪ solution pour créer un script :

copier les commandes de la fenêtre log

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 47

Outils EDA

Commandes Tcl pour QuestaSim/ModelSim

Principales commandes seront présentées

Arguments courants seront expliqués

pour plus :voir documentation de ModelSim (menu Help)

Remarque :La liste complète des arguments de chaque commande ne sera pas donné ici

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 48

Page 25: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Utilisation scripts avec QuestaSim/ModelSim

Extension des fichiers script :▪ standard : *. tcl,

▪ spécifique Questa/ModelSim: *.do

Lancement d'un script dans Questa/ModelSim :▪ Lancer Questa

▪ Sélectionner le répertoire de travail via le menu :File Change Directory…

▪ Lancer le script Tcl en tapant dans la fenêtre log :QuestaSim> do <chemin>/<Nom_Srcipt.tcl ou .do>

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 49

Outils EDA

Lancement de script : do

Commande do▪ The do command executes commands contained

in a macro file (script Tcl). Synthaxe

do <filename> [<parameter_value>]

Exemples :▪ lancement de script de compilation

do Nom_Srcipt.tcl▪ Chargement d'un format pour la fenêtre wave (voir ci-

après)do wave_NomDesign.do

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 50

Page 26: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Création de librairie : vlib

Commande vlib▪ The vlib command creates a design library.

Create a library directory.

Synthaxevlib <Lib_Name>

Exemple :▪ création d'un répertoire pour la librairie par défaut

workvlib Work

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 51

Outils EDA

Mapper une librairie : vmap

Commande vmap▪ The vmap command defines a mapping between

a logical library name and a directory

Synthaxevmap <Lib_Name> <dir_Name>

Exemple :▪ mapper une librairie spécifique avec work

vmap PCI Work

Rem : commande superflue vmap Work Work E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 52

Page 27: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Compilation de fichier : vcom

Commande vcom▪ The vcom command compiles VHDL source code into a

specified working library (or to the work library by default)

Synthaxevcom [-87] [-93] [-2002] --choix norme VHDL

[-work <library_name>] --spécifie le nom de la librairie

--à utiliser--par défaut Work est utilisé

<filename>Exemple :

vcom -93 –work work parite.vhd parite_tb.vhd

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 53

Outils EDA

Chargement d'un design : vsim …

Commande vsim▪ The vsim command is used to invoke the VSIM simulator▪ Le design (entité) spécifié est chargé dans

Questa/ ModelSim

Synthaxevsim [-t [<multiplier>]<time_unit>]

<library_name>.<design_unit>

<design_unit> : nom de l'entité du test-bench à simulé-t option permettant de changer le pas de simulation

par défaut 1 ns

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 54

Page 28: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

… chargement d'un design : vsim

Exemples :- chargement simple d'un design :

vsim work.parite_tb

- chargement avec choix d'un pas de simulation de 100 ps :

vsim –t 100 ps work.parite_tb

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 55

Outils EDA

Ouverture de fenêtres : view

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 56

Commande view▪ The view command opens a ModelSim window

Synthaxeview <window_type>

<window_type> : nom d'une fenêtre de Questa/ModelSim,soit

memory, process, signals, source, structure, variables, wave

Exemple :view signal --ouvre la fenêtre des signauxview wave --ouvre la fenêtre wave

Page 29: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Ajout de signaux : add wave

Commande add wave▪ The add wave command adds the following

items to the List window: VHDL signals and variables

Synthaxeadd wave * --ajout de tous les signaux du design

Exemple :add wave *

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 57

Outils EDA

Chargement d'un "format" :

Possible de sauver un format de la fenêtre Wave▪ Configurer une fenêtre Wave avec tous les

signaux souhaités (évtl de plusieurs hiérarchies)▪ Sauvez le format depuis la fenêtre Wave :

• menu File save format "wave_NomDesign.do"

Commande do wave_NomDesign.do▪ The do command executes commands contained

in a macro file.

Exemple :do wave_Parite.do

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 58

Page 30: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

Lancement de la simulation : run

Commande run▪ The run command advances the simulation by

the specified number of timesteps

Synthaxerun [<timesteps>[<time_units>] ] | [-all]

Exemple :

run 100 ns

run –all

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 59

Outils EDA

Exemple de script : Parite …

#script pour design Parite

#create library work vlib work#map library work to work#vmap work work

#compilation des fichiers vhd vcom -93 -work work Parite.vhdvcom -93 -work work Parite_tb.vhd

...

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 60

Page 31: Design flow & Outils EDA - HEIG-VDreds.heig-vd.ch/share/...01_Design_Flow_Tools_EDA.pdf · Formation VHDL et outils EDA Outils EDA This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Outils EDA

… exemple de script : Parite.. ..

#chargement du tb pour simuler vsim work.Parite_tb

# Ouvre les fenetres.view signalsview wave

#ajout des fichiers dans la fenetre waveadd wave sim:/parite_tb/*

#lancement de la simulationrun -all

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 61

Outils EDA

Questions !

E. Messerli (HES-SO / HEIG-VD / REDS), 2018 p 62