Transcript
Page 1: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

1Cours module ITA3 J.Dubois

Infotronique 4ème annéeInfotronique 4ème annéeModule ITA3:Module ITA3:

Composants des systèmes temps réelComposants des systèmes temps réel

1) Méthodologie de conception

2) Outils de conception

3) La simulation et la vérification

Page 2: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

2Cours module ITA3 J.Dubois

ObjectifObjectif

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

Page 3: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

3Cours module ITA3 J.Dubois

PartitionnementPartitionnement

Page 4: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

4Cours module ITA3 J.Dubois

FPGA?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

Page 5: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

5Cours module ITA3 J.Dubois

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

Page 6: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

6Cours module ITA3 J.Dubois

Max => O1

Min => O2

Page 7: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

7Cours module ITA3 J.Dubois

Page 8: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

8Cours module ITA3 J.Dubois

Validation

Simulation

Validation

Simulation

Différentes méthodes de description &

association des composants

Page 9: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

9Cours module ITA3 J.Dubois

Les possibilités de description

1) Schématique

2) Littérale

VHDL (variante altera AHDL)

Verilog

Abel

Page 10: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

10Cours module ITA3 J.Dubois

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.

Page 11: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

11Cours module ITA3 J.Dubois

Description schématiqueIl 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).

Page 12: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

12Cours module ITA3 J.Dubois

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.

Page 13: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

13Cours module ITA3 J.Dubois

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.

Page 14: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

14Cours module ITA3 J.Dubois

Etapes du flot de conceptionEtapes du flot de conception

Compilation du code VHDL ou Verilog (ou vérifcation schématique)

Synthèse

Placement Routage (P & R)

Configuration

Page 15: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

15Cours module ITA3 J.Dubois

Etapes du flot de conceptionEtapes du flot de conception

Synthèse si code fonctionnel !!!!!

= > Pas instructions comme wait!

Page 16: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

16Cours module ITA3 J.Dubois

Etapes du flot de conceptionEtapes du flot de conception

Etapes 1 & 2 : Synthèse & Simulation

Page 17: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

17Cours module ITA3 J.Dubois

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

Page 18: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

18Cours module ITA3 J.Dubois

Résultats de la synthèselibrary 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 if;

end process;

end arch_ADAP2TO2;

Page 19: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

19Cours module ITA3 J.Dubois

if (CLK'event and CLK='1') then

if (SEL = '0') then O1 <= I1; O2<= I2;

else O1 <= I2; O2 <= I1;

end if;

end if;

Ensemble de composants décrits et

associés en VHDL (port map sur

composants de base)

Page 20: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

20Cours module ITA3 J.Dubois

Résultats de la synthèseDevice 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%

Page 21: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

21Cours module ITA3 J.Dubois

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.

Page 22: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

22Cours module ITA3 J.Dubois

Etapes du flot de conceptionEtapes du flot de conception

Etape 3 : Projection

Page 23: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

23Cours module ITA3 J.Dubois

CLB des FPGA

Composants

de library

VHDL =>

CLBs

Page 24: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

24Cours module ITA3 J.Dubois

Projection

3) La projection

Translate

Mapping

Page 25: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

25Cours module ITA3 J.Dubois

Etapes du flot de conceptionEtapes du flot de conception

Etape 4 : Place & routage

Page 26: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

26Cours module ITA3 J.Dubois

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

Page 27: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

27Cours module ITA3 J.Dubois

Page 28: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

28Cours module ITA3 J.Dubois

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é

Page 29: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

29Cours module ITA3 J.Dubois

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)

Page 30: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

30Cours module ITA3 J.Dubois

Example de fichier UCFNET "clk" TNM_NET = "clk_raw";TIMESPEC "TS_clk" = PERIOD "clk" 100 MHz HIGH 50 %;NET "clk" LOC = "AA12"; # 100 MHz oscOFFSET = 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;

Page 31: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

31Cours module ITA3 J.Dubois

Etapes du flot de conceptionEtapes du flot de conception

Etape 5 : Simulation après placement

routage (back-annoted)

Page 32: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

32Cours module ITA3 J.Dubois

Simulation temporelle5) 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

Page 33: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

33Cours module ITA3 J.Dubois

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)

Page 34: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

34Cours module ITA3 J.Dubois

Etapes du flot de conceptionEtapes du flot de conception

Etape 6 : Configuration

Page 35: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

35Cours module ITA3 J.Dubois

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.

Page 36: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

36Cours module ITA3 J.Dubois

RappelRappel

Compilation du code VHDL ou Verilog (ou vérification schématique)

Synthèse

Placement Routage (P&R)

Configuration

Page 37: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

37Cours module ITA3 J.Dubois

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

Page 38: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

38Cours module ITA3 J.Dubois

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)

Page 39: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

39Cours module ITA3 J.Dubois

Flot de conceptionFlot de conception sur example simple sur example simplelibrary 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 isbegin 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

ZMUX2TO2

Page 40: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

40Cours module ITA3 J.Dubois

Edition/Compilation/SimulationEdition/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

Page 41: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

41Cours module ITA3 J.Dubois

Démo ISE : Placement Démo ISE : Placement routage/Configurationroutage/Configuration

1) Rapports

2) Floorplanner

3) Contraintes

4) Configuration

Page 42: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

42Cours module ITA3 J.Dubois

Techniques de simulation et de Techniques de simulation et de vérificationvérification

1) Scripts (tcl)

2) Testbenches

Composant sans entrées/sorties chargés de

donner les vecteurs de test

Page 43: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

43Cours module ITA3 J.Dubois

Réalisation de scriptsRéalisation de scripts

Utilisation du language Tcl

Forcer un signal : force

Lancer simulation : run

Page 44: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

44Cours module ITA3 J.Dubois

Réalisation de testbenchesRé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

Page 45: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

45Cours module ITA3 J.Dubois

Réalisation de testbenchesRéalisation de testbenches

1) Définir les signaux pour connecter les

composants internes (et externes…)

2) Affectation des entrées/sorties

Page 46: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

46Cours module ITA3 J.Dubois

Réalisation de testbenchesRé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;

Page 47: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

47Cours module ITA3 J.Dubois

Réalisation de testbenchesRé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

Page 48: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

48Cours module ITA3 J.Dubois

Réalisation de testbenchesRé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);

Page 49: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

49Cours module ITA3 J.Dubois

Réalisation de testbenchesRé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;

Page 50: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

50Cours module ITA3 J.Dubois

Présent/FuturPrésent/Futur

Page 51: Infotronique 4ème année Module ITA3: Composants des systèmes temps réel

51Cours module ITA3 J.Dubois

Présent/FuturPré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