infotronique 4ème année module ita3: composants des systèmes temps réel
DESCRIPTION
Infotronique 4ème année Module ITA3: Composants des systèmes temps réel. Méthodologie de conception Outils de conception La simulation et la vérification. Objectif. Développement de système basé sur des composants de type FPGA Comment décrire le système ? - PowerPoint PPT PresentationTRANSCRIPT
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
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
3Cours module ITA3 J.Dubois
PartitionnementPartitionnement
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
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
6Cours module ITA3 J.Dubois
Max => O1
Min => O2
7Cours module ITA3 J.Dubois
8Cours module ITA3 J.Dubois
Validation
Simulation
Validation
Simulation
Différentes méthodes de description &
association des composants
9Cours module ITA3 J.Dubois
Les possibilités de description
1) Schématique
2) Littérale
VHDL (variante altera AHDL)
Verilog
Abel
…
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.
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).
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.
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.
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
15Cours module ITA3 J.Dubois
Etapes du flot de conceptionEtapes du flot de conception
Synthèse si code fonctionnel !!!!!
= > Pas instructions comme wait!
16Cours module ITA3 J.Dubois
Etapes du flot de conceptionEtapes du flot de conception
Etapes 1 & 2 : Synthèse & Simulation
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
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;
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)
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%
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.
22Cours module ITA3 J.Dubois
Etapes du flot de conceptionEtapes du flot de conception
Etape 3 : Projection
23Cours module ITA3 J.Dubois
CLB des FPGA
Composants
de library
VHDL =>
CLBs
24Cours module ITA3 J.Dubois
Projection
3) La projection
Translate
Mapping
25Cours module ITA3 J.Dubois
Etapes du flot de conceptionEtapes du flot de conception
Etape 4 : Place & routage
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
27Cours module ITA3 J.Dubois
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é
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)
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;
31Cours module ITA3 J.Dubois
Etapes du flot de conceptionEtapes du flot de conception
Etape 5 : Simulation après placement
routage (back-annoted)
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
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)
34Cours module ITA3 J.Dubois
Etapes du flot de conceptionEtapes du flot de conception
Etape 6 : Configuration
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.
36Cours module ITA3 J.Dubois
RappelRappel
Compilation du code VHDL ou Verilog (ou vérification schématique)
Synthèse
Placement Routage (P&R)
Configuration
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
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)
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
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
41Cours module ITA3 J.Dubois
Démo ISE : Placement Démo ISE : Placement routage/Configurationroutage/Configuration
1) Rapports
2) Floorplanner
3) Contraintes
4) Configuration
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
43Cours module ITA3 J.Dubois
Réalisation de scriptsRéalisation de scripts
Utilisation du language Tcl
Forcer un signal : force
Lancer simulation : run
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
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
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;
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
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);
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;
50Cours module ITA3 J.Dubois
Présent/FuturPrésent/Futur
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