Beruflich Dokumente
Kultur Dokumente
Hiver 2013
Sysprog
Hiver 2013
1 / 231
Plan
1 2 3 4
Sysprog
Hiver 2013
2 / 231
VHDL
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 3 / 231
VHDL
VHDL
1 2
3 4
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a FPGA ` Conception dun systeme programmable SoftCore : NiosII
Sysprog
Hiver 2013
4 / 231
VHDL
Bibliographie
The designers guide to VHDL - Peter Ashenden, Morgan Kaufman (http://www.ashenden.com.au/designers-guide/DG.html) Alain Vachoux : Digital System Modeling http://lsmwww.ep.ch/design languages/ Cours Master SdI - Patrick Garda (patrick.garda@upmc.fr) Ressources
Hamburg VHDL archive :
http://tech-www.informatik.uni-hamburg.de/vhdl/vhdl.htm
http://www.geocities.com/SiliconValley/Heights/8831/websrc.html
Sysprog
Hiver 2013
5 / 231
VHDL
Outils
Free Model Foundation - http://www.freemodelfoundry.com/ Opencores - http://www.opencores.org XILINX : ISE - http://www.xilinx.com/ ALTERA : Quartus - http://www.altera.com/ Mentor Graphics : HDL Designer, ModelSim, Precision http://www.mentor.com/
Sysprog
Hiver 2013
6 / 231
VHDL
Historique
VHDL : VHSIC Hardware Description Language Historique Langage introduit dans le cadre du projet DARPA VHSIC : Very High Speed Integrated Circuits IBM, Texas Instruments et Intermetrics ont obtenu le contrat en 1983 et produit VHDL 7.2 en 1985 a ` IEEE pour normalisation en 1986 Propose Norme en 1987 : IEEE Std 1076-1987, dit VHDL-87 ee en 1992 : IEEE Std 1076-1993, dit VHDL-93 Norme revis de IEEE 1164-1993, dit std logic 1164 Normalisation simultanee ee en 2002 IEEE Std 1076-2002, VHDL - 2002 Norme revis
Sysprog
Hiver 2013
7 / 231
VHDL
Sysprog
Hiver 2013
8 / 231
VHDL
VHDL - RTL
RTL : Register Transfert Level Description Synthetisable Utilisable pour congurer un circuit logique programmable Sous ensemble de constructions VHDL
Sysprog
Hiver 2013
9 / 231
VHDL
VHDL - Base
Blocs de base
1 2 3
` Les bibliotheques (ou librairies) : Decrit Lentite linterfac age du composant Larchitecture : Decrit le fonctionnement du composant
Sysprog
Hiver 2013
10 / 231
VHDL
VHDL - Base
Sysprog
Hiver 2013
11 / 231
VHDL
VHDL - Base
Sysprog
Hiver 2013
11 / 231
VHDL
VHDL - Base
Sysprog
Hiver 2013
11 / 231
VHDL
` VHDL - Bibliotheque
Sysprog
Hiver 2013
12 / 231
VHDL
VHDL - Entite
context-clause entity entity-name is [ generic ( parameter-list ) ] [ port ( port-list ) ; ] type, subtype, constant, signal, subprogram concurrent procedure call, assertion, passive process [ local-declarations ]
[ begin passive-concurrent-statement ]
Sysprog
Hiver 2013
13 / 231
VHDL
VHDL - Entite
generic( parametre-name ,...: parametre-type [:=default-value]; ... parametre-name ,...: parametre-type [:=default-value]);
Sysprog
Hiver 2013
14 / 231
VHDL
VHDL - Entite
port( [signal] signal-name ,... : mode signal-type; ... [signal] signal-name ,... : mode signal-type);
Sysprog
Hiver 2013
15 / 231
VHDL
VHDL - Entite
entity MON-ET is generic (tp: time := 2ns); port( A : in std_logic; B : in std_logic; S : out std_logic); end entity MON-ET;
Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2013 16 / 231
VHDL
VHDL - Architecture
architecture archi-name of entity-name is [ local-declaration ] begin concurrent procedure call, assertion, passive process concurrent-statement
Sysprog
Hiver 2013
17 / 231
VHDL
VHDL - Larchitecture
S = A et B
architecture FLOT of MON-ET is begin s <= a and b after tp; end architecture FLOT;
Sysprog
Hiver 2013
18 / 231
VHDL
VHDL - Larchitecture
de conception Une architecture decrit le fonctionnement dune entite ` Cest-a-dire la determination des sorties en fonction des entrees ` Une architecture peut etre decrite de differentes manieres :
Flot de donnees Structurelle Comportementale RTL : Register Transfer Level
Sysprog
Hiver 2013
19 / 231
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 20 / 231
1 2
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a FPGA ` Conception dun systeme programmable SoftCore : NiosII Integration dun periph erique - Mapping memoire
Sysprog Hiver 2013 21 / 231
3 4
Une architecture ot de donnees (dataow) decrit un circuit au niveau des portes logiques (binaires) vers les Elle represente le ot des informations des entrees ` laide doperateurs sorties a combinatoires :
not, and, nand, or, nor, xor, xnor
Les signaux se propagent de fac on asynchrone La determination des valeurs est faite par linstruction daffectation des signaux <= a ` la Elle permet de modeliser le temps de propagation des portes grace clause after
Sysprog
Hiver 2013
22 / 231
architecture flot of addc is begin sum <= a xor b xor cin after 2 ns ; -- somme cout <= (a and b) or (b and cin) or (cin and a) after 1 ns ; -- retenue end architecture flot;
Sysprog
Hiver 2013
23 / 231
Architecture Structurelle
a ` denis Utilise des composants dej Larchitecture structurelle denit alors la structure comme un assemblage par des signaux dinstances de composants reliees ` la description textuelle dun schema Elle correspond a utilisant des ` cellules de bibliotheque
Sysprog
Hiver 2013
24 / 231
Architecture Structurelle
entity add4 is port ( a, b : in std_logic_vector (3 downto 0) ; s : out std_logic_vector (4 downto 0) ) end entity add4 ;
Sysprog
Hiver 2013
25 / 231
Architecture Structurelle
architecture struct of add4 is signal c : std_logic_vector (3 downto 1) ; begin addc_i0 : entity work.addc(flot) port map ( a(0), b(0), 0, s(0), c(1)) ; addc_i1 : entity work.addc(flot) port map ( a(1), b(1), c(1), s(1), c(2)) ; addc_i2 : entity work.addc(flo)t port map ( a(2), b(2), c(2), s(2), c(3)) ; addc_i3 : entity work.addc(flot) port map ( a(3), b(3), c(3), s(3), s(4)) ; end architecture struct ;
Sysprog
Hiver 2013
26 / 231
Architecture Structurelle
architecture struct of add4 is signal c : std_logic_vector (3 downto 1) ; begin addc_i0 : entity work.addc(flot) port map (a => a(0), b => b(0), cin => 0, sum => s(0), cout => c(1)) ; addc_i1 : entity work.addc(flot) port map (a => a(1), b => b(1), cin => c(1), sum => s(1), cout => c(2)) ; addc_i2 : entity work.addc(flo)t port map (a => a(2), b => b(2), cin => c(2), sum => s(2), cout => c(3)) ; addc_i3 : entity work.addc(flot) port map (a => a(3), b => b(3), cin => c(3), sum => s(3), cout => s(4)) ; end architecture struct ;
Sysprog
Hiver 2013
27 / 231
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity demiadd is port( a, b : in std_logic; c, s : out std_logic); end entity demiadd; architecture flot of demiadd is begin s <= a xor b; c <= a and b; end architecture flot;
Sysprog
Hiver 2013
28 / 231
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity add is port( a, b, cin : in std_logic; cout, s : out std_logic); end entity add; architecture struct of add is signal stmp, ctmp1,ctmp2 : std_logic; begin demiadd1 : entity work.demiadd(flot) port map(a,b,stmp,ctmp1); demiadd2 : entity work.demiadd(flot) port map(cin,stmp,s,ctmp2); cout <= ctmp1 or ctmp2; end architecture struct;
Sysprog
Hiver 2013
29 / 231
Architecture Comportementale
par un ensemble de processus sequentiels Larchitecture est represent ee qui sexecutent simultanement ` ce que lune de ses entrees Chaque processus est en attente jusqua change de valeur e Lorsque cela se produit le code du processus est execut sequentiellement ` la n dun processus on recommence son execution Lorsquon arrive a au debut La realisation electronique de larchitecture nest pas decrite
Sysprog
Hiver 2013
30 / 231
Le Process
Permet de realiser des parties sequentielles Introduit un niveau dabstraction proche de linformatique
Sysprog
Hiver 2013
31 / 231
Le Process
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity reg is port( d : in std_logic_vector(7 downto 0); hor : in std_logic; q : out std_logic_vector(7 downto 0); end entity reg; architecture comport of reg is begin clocked: process(d,hor) is begin if (horevent and hor = 1) then q<=d; end if; end process clocked; end architecture comport;
Sysprog
Hiver 2013
32 / 231
Les variables
Sysprog
Hiver 2013
33 / 231
Laffectation de variables
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity reg is port( d : in std_logic_vector(7 downto 0); hor : in std_logic; q : out std_logic_vector(7 downto 0); end entity reg; architecture comport of reg is begin clocked: process(d,hor) is variable q_int : std_logic_vector(7 downto 0); begin if (horevent and hor = 1) then q_int :=d; end if; q <= q_int; end process clocked; end architecture comport;
Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2013 34 / 231
Sysprog
Hiver 2013
35 / 231
Conditionnelle IF
if condition1 then instructions sequentielles 1 elsif condition2 then instructions sequentielles 2 elsif condition3 then instructions sequentielles 3 else instructions sequentielles n end if ;
Sysprog
Hiver 2013
36 / 231
Conditionnelle IF
library ieee; use ieee.std_logic_1164.all; entity decodeur is port ( choix : in std_logic_vector(1 downto 0); decode : out std_logic_vector(3 downto 0)); end entity decodeur; architecture comport of decodeur decodage : process(choix) is begin IF (choix= "00") THEN decode <="0001"; ELSIF (choix="01") THEN decode <="0010"; ELSIF (choix="10") THEN decode <="0100"; ELSE decode <="1000"; END IF; end process decodage; end architecture comport;
Sysprog
Hiver 2013
37 / 231
Conditionnelle IF
architecture behaviour of addc is begin calc_sum : process (a, b, cin) is begin if ( ((a + b + cin) rem 2) = 0) then sum <= 0 after 2 ns ; else sum <= 1 after 2 ns ; end if ; end process calc_sum ; calc_cout : process (a, b, cin) is begin if (a + b + cin >= 2) then cout <= 1 after 1 ns ; else cout <= 0 after 1 ns ; end if ; end process calc_cout ; end architecture behaviour ;
Sysprog
Hiver 2013
38 / 231
Conditionnelle CASE
case expression is when VALUE-1 => instructions sequentielles 1 when VALUE-2 VALUE-3 => instructions sequentielles 2 when VALUE-M to VALUE-N => instructions sequentielles 3 when others => instructions sequentielles n end case ;
Sysprog
Hiver 2013
39 / 231
Conditionnelle CASE
library ieee; use ieee.std_logic_1164.all; entity decodeur is port ( choix : in std_logic_vector(1 downto 0); decode : out std_logic_vector(3 downto 0)); end entity decodeur; architecture comport of decodeur decodage : process(choix) is begin CASE choix WHEN "00" => decode <="0001"; WHEN "01" => decode <="0010"; WHEN "10" => decode <="0100"; WHEN "11" => decode <="1000"; WHEN OTHERS => NULL; END CASE; end process decodage; end architecture comport;
Sysprog
Hiver 2013
40 / 231
Boucle FOR
[loop label] for identier in discrete range loop instructions du corps de boucle end loop [loop label] ; La variable identifier est
auto-declar ee elle nest visible que dans le corps de la boucle
Sysprog
Hiver 2013
41 / 231
Boucle FOR
entity additionneur is generic (N : natural := 8); port (a, b : in std_logic_vector(N-1 downto 0); s : out std_logic_vector(N-1 downto 0)); end additionneur;
add : process(a,b) variable sum,btemp : std_logic_vector(N-1 downto 0); variable retenue : std_logic_vector(N downto 0); begin -- process add btemps := b; retenue(0):=0; calcul : for i in 0 to N-1 loop sum(i):= a(i) xor btemp(i) xor retenue(i); retenue(i+1) := (a(i) and btemp(i)) or (a(i) and retenue(i)) or (btemp(i) and retenue(i)); end loop calcul; end process add; end flot;
Sysprog
Hiver 2013
42 / 231
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 43 / 231
1 2
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a FPGA ` Conception dun systeme programmable SoftCore : NiosII Integration dun periph erique - Mapping memoire
Sysprog Hiver 2013 44 / 231
3 4
par ieee (paquetage 1164) Les types ajoutes std ulogic is ( U, -- Non Initialis e - Non synth etis e X, -- Forc age Ind etermin e - Non synth etis e 0, -- Forc age ` a 0 - Synth` ese = 0 1, -- Forc age ` a 1 - Synth` ese = 1 Z, -- Haute Impedance - Synth` ese = Z W, -- Faible Ind etermin e - Non synth etis e L, -- Faible ` a 0 - Synth` ese = 0 H, -- Faible ` a 1 - Synth` ese = 1 - -- Peu Importe - Non synth etis e std ulogic vector is array ( natural range <> ) of std ulogic;
Sysprog
Hiver 2013
46 / 231
U X 0 1 Z W L H -
U U U U U U U U U U
X U X X X X X X X X
0 U X 0 X 0 0 0 0 X
1 U X X 1 1 1 1 1 X
Z U X 0 1 Z W L H X
W U X 0 1 W W W W X
L U X 0 1 L W L W X
H U X 0 1 H W W H X
- U X X X X X X X X
Sysprog
Hiver 2013
47 / 231
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 48 / 231
1 2
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a FPGA ` Conception dun systeme programmable SoftCore : NiosII Integration dun periph erique - Mapping memoire
Sysprog Hiver 2013 49 / 231
3 4
Les variables
dans les instructions sequentielles Les variables sont utilisees ` aucune realit e electronique Elles ne correspondent a des variables dans un langage de programmation Elles jouent le role limitee au processus dans lequel elles sont declar Elles ont une portee ees Elles sont typees
Sysprog
Hiver 2013
50 / 231
Les variables
Affectation
Symbole daffectation de variables := Laffectation dune variable est instantanee
Utilisation
` une variable Affectation dun signal a Execution dun algorithme sequentiel ` un signal Affectation dune variable a Autre utilisation : identicateur de boucle
Sysprog
Hiver 2013
51 / 231
Les signaux
physiques echang entre les Les signaux representent les donnees ees modules (anglais data signal) dans le circuit nal par une equipotentielle Chaque signal sera materialis e Exemples :
et de sorties dune entite ports dentrees ` une architecture signaux internes a
Sysprog
Hiver 2013
52 / 231
Les signaux
Sysprog
Hiver 2013
53 / 231
Les signaux
Chaque signal a un type, comme dans un langage structure Le type denit lensemble des valeurs que peut prendre le signal. Les signaux de type synthetisable sont synthetisables. pas de conversion automatique VHDL est fortement type,
davoir recours a ` des fonctions de conversion Necessit e
Sysprog
Hiver 2013
54 / 231
Les signaux
es Types enum er
type boolean is (false, true) ; ` type character is (liste des caracteres)
` Tous les caracteres ISO 8 bits ` est notee A Une constante caractere
type bit is (0, 1) ; type severity level is (note, warning, error, failure) ;
Sysprog
Hiver 2013
55 / 231
Les signaux
Entiers :
type integer is range -2147483 to 2147482 ; subtype positive is integer range 1 to integerhigh ; subtype natural is integer range 0 to integerhigh ;
Intervalles :
8 bits C2 Subtype byte is integer range -128 to 127 code
Reels :
type real is range $- to $+ Reels pas synthetisables
Sysprog
Hiver 2013
56 / 231
Les signaux
library ieee; use ieee.std_logic_1164.all; entity aff is port( a : in std_logic; d : out std_logic_vector(3 downto 0)); end entity aff; architecture flot of aff is signal aint : std_logic; begin aint <= 1; a<=aint; -- Erreur On ne peut pas ecrire sur une entree d<="0001"; end architecture flot;
Sysprog
Hiver 2013
57 / 231
` bit et bit a ` bit ou bit a ` bit ou-exclusif bit a ` bit non bit a
Les operateurs arithmetiques + Addition Soustraction * Multiplication / Division Peu Synthetisable mod Modulo Pas Synthetisable exp Exponentitation Pas synthetisable
Sysprog
Hiver 2013
58 / 231
Les tableaux
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 59 / 231
Les tableaux
1 2
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a FPGA ` Conception dun systeme programmable SoftCore : NiosII Integration dun periph erique - Mapping memoire
Sysprog Hiver 2013 60 / 231
3 4
Les tableaux
Les Tableaux
Declaration
type nom is array (intervalle) of type de base
Utilisation
Modelisation de bus. Modelisation de memoires.
` Synthese
` 1 dimension Tableaux a Indices entiers ou sous-type entiers Elements du tableau synthetisables
Sysprog
Hiver 2013
61 / 231
Les tableaux
Les Tableaux
Sysprog
Hiver 2013
62 / 231
erique Gen
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 63 / 231
erique Gen
1 2
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a FPGA ` Conception dun systeme programmable SoftCore : NiosII Integration dun periph erique - Mapping memoire
Sysprog Hiver 2013 64 / 231
3 4
erique Gen
Generic
` eriques avant les ports Les parametres gen sont denis dans lentite, dentrees-sorties : Ils peuvent etre utilises
apres ` leur declaration Dans lentite a ` lentite Dans le corps de toute architecture associee
entity MON-ET is generic (tp: time := 2ns); port( A : in std_logic; B : in std_logic; S : out std_logic); end entity MON-ET;
Sysprog
Hiver 2013
65 / 231
erique Gen
Generic
` erique ee lors de linstanciation de La valeur du parametre gen est precis lentite Des instances differentes peuvent utiliser des valeurs differentes
entity doubleor is port (in1, in2 : in std_logic; out2 : out std_logic); end entity doubleor; architecture struct of doubleor is signal out1 : std_logic; begin Gate1 : entity work.or2(behaviour) Generic map (2 ns) Port map (in1, in2, out1) ; Gate2 : entity work.or2(behaviour) Generic map (T_pd => 3 ns) Port map (a => out1, b => in2, y => out2) ; end architecture struct;
Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2013 66 / 231
erique Gen
Generic
` erique lors de Une valeur par defaut du parametre gen peut etre indiquee sa declaration Lors de linstanciation, cette valeur peut etre : telle quelle Utilisee par une autre valeur Remplacee
entity dff is Generic ( T_pd, T_su : time := 2 ns ; T_h : time := 0 ns) ; Port (clock, d : in std_logic ; q : out std_logic) end entity dff; architecture struct of reg is ....... Request_dff : entity work.dff (behaviour) Generic map (4 ns, 3 ns, open) Port map (system_clock, request, prending_request) ....... endGranado architecture struct; Bertrand Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2013
67 / 231
erique Gen
Generate
Linstruction concurrente generate permet de dupliquer des instructions ` iterative concurrentes de maniere ou conditionnelle.
Sysprog
Hiver 2013
68 / 231
erique Gen
Generate
entity shiftreg is generic (nbits: positive := 8); port (clk, rst, d: in std_logic; q: out std_logic); end entity shiftreg; architecture structure of shiftreg is component dff is port (clk, rst, d: in std_logic; q: out std_logic); end component dff; signal qint: std_logic _vector(1 to nbits-1); Begin cell_array: for i in 1 to nbits generate first_cell: if i = 1 generate dff1: dff port map (clk, rst, d, qint(1)); end generate first_cell; int_cell: if i > 1 and i < nbits generate dffi: dff port map (clk, rst, qint(i-1), qint(i)); end generate int_cell; last_cell: if i = nbits generate dffn: dff port map (clk, rst, qint(nbits-1), q); end generate last_cell; end generate cell_array; end architecture structure;
Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2013 69 / 231
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 70 / 231
1 2
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a FPGA ` Conception dun systeme programmable SoftCore : NiosII Integration dun periph erique - Mapping memoire
Sysprog Hiver 2013 71 / 231
3 4
Sysprog
Hiver 2013
72 / 231
LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL; USE ieee.std_logic_arith.ALL; ENTITY mae IS PORT( a : IN hor : IN raz : IN b : OUT ); END mae ;
Sysprog
Hiver 2013
73 / 231
Sysprog
Hiver 2013
74 / 231
clocked : PROCESS(hor,raz) BEGIN IF (raz = 0) THEN EtatPresent <= Etat0; ELSIF (horEVENT AND hor = 1) THEN EtatPresent <= EtatFutur; END IF; END PROCESS clocked;
Sysprog
Hiver 2013
75 / 231
LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL; USE ieee.std_logic_arith.ALL; ENTITY mae IS PORT( a : IN hor : IN raz : IN b : OUT ); END mae ;
Sysprog
Hiver 2013
77 / 231
ARCHITECTURE diagram OF mae IS TYPE STATE_TYPE IS (Etat0,Etat1,Etat2); SIGNAL EtatPresent : STATE_TYPE ; SIGNAL EtatFutur : STATE_TYPE ; BEGIN clocked : PROCESS(hor,raz) BEGIN ... END PROCESS clocked; nextstate : PROCESS (EtatPresent,a) BEGIN ... END PROCESS nextstate; END diagram;
Sysprog
Hiver 2013
78 / 231
clocked : PROCESS(hor,raz) BEGIN IF (raz = 0) THEN EtatPresent <= Etat0; -- Reset Values ELSIF (horEVENT AND hor = 1) THEN EtatPresent <= EtatFutur; -- Default Assignment To Internals END IF; END PROCESS clocked;
Sysprog
Hiver 2013
79 / 231
nextstate : PROCESS (EtatPresent,a) BEGIN CASE EtatPresent IS WHEN Etat0 => b <= 1; EtatFutur <= Etat1; WHEN Etat1 => IF (a = 1) THEN b <= 0; EtatFutur <= Etat2; ELSIF (a = 0) THEN b <= 1 ; EtatFutur <= Etat1; ELSE EtatFutur <= Etat1; END IF; WHEN Etat2 => b <= 0; EtatFutur <= Etat0; WHEN OTHERS => EtatFutur <= Etat0; END CASE; END PROCESS nextstate;
Sysprog
Hiver 2013
80 / 231
Clause Wait
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 81 / 231
Clause Wait
La clause Wait
half_adder : process(a, b) is begin sum <= a xor b after T_pd ; carry <= a and b after T_pd ; end process half_adder ;
Sysprog
Hiver 2013
82 / 231
Clause Wait
La clause Wait
wait until condition ` : wait on liste des signaux de condition until equivaut a condition
Sysprog
Hiver 2013
83 / 231
Clause Wait
La clause Wait
clock_gen : process is begin clock <= 1 after T_pw, 0 after 2* T_pw ; wait for 2* T_pw ; end process clock_gen ;
Pas synthetisable
Sysprog
Hiver 2013
84 / 231
Clause Wait
La clause Wait
Wait
Ce qui se passe :
` linstruction wait Le processus est suspendu lorsquil arrive a ` la n de la simulation Il reste suspendu jusqua
Exemple dapplication : test bench VHDL permet de decrire dans le meme langage :
` tester Le circuit a eration La gen des signaux dentree. La verication des signaux de sortie.
Sysprog
Hiver 2013
85 / 231
Test Bench
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 86 / 231
Test Bench
Test Bench
Sysprog
Hiver 2013
87 / 231
Test Bench
Assert
check_setup: PROCESS (clk, d) BEGIN IF (clkEVENT AND clk=1) THEN -- test si front mon ASSERT dSTABLE(setup_time) -- regarde si d es REPORT "Setup Violation..." -- affiche u SEVERITY WARNING; END IF; END PROCESS check_setup;
Sysprog
Hiver 2013
88 / 231
Test Bench
Assert
Sysprog
Hiver 2013
89 / 231
Test Bench
TestBench
Sysprog
Hiver 2013
90 / 231
Test Bench
TestBench
Sysprog
Hiver 2013
91 / 231
Test Bench
TestBench
Sysprog
Hiver 2013
92 / 231
Test Bench
TestBench
Sysprog
Hiver 2013
93 / 231
Test Bench
TestBench
Sysprog
Hiver 2013
94 / 231
Test Bench
TestBench
Sysprog
Hiver 2013
95 / 231
Test Bench
TestBench
Sysprog
Hiver 2013
96 / 231
Test Bench
TestBench
Sysprog
Hiver 2013
97 / 231
Simulation
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 98 / 231
Simulation
Simulation Evenementielle
Initialisation
1 2 3 4
Assign initial values to signals and variables. Tc = 0ns, = 0 Execute all processes until they suspend. Determine next time Tn according to 4.
Cycle
1 2 3 4
Tc = Tn. Update signals. Execute all processes sensitive to updated signals. Determine next time Tn:
if pending transactions at current time: = + 1 then 2 if no more pending transactions or Tn = timehigh then STOP else Tn = time of next earliest pending transaction, = 0
5
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 100 / 231
Paquetage
package proc_pkg is subtype data is integer range 0 to 3; type darray is array (1 to 3) of data; end package proc_pkg; use work.proc_pkg.all; entity procstmt is port ( inar : in darray; outar: out darray); end entity procstmt;
Sysprog
Hiver 2013
101 / 231
Procedure
architecture a of procstmt is begin process (inar) procedure swap (d: inout darray; l, h: in postitive) is variable tmp: data; begin if d(l) > d(h) then tmp := d(l); d(l) := d(h); d(h) := tmp; end if; end swap; variable tmpar: darray; begin tmpar := inar; swap(tmpar,1,2); swap(tmpar,2,3); swap(tmpar,1,2); outar <= tmpar; end process; end architecture a;
Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2013 102 / 231
Fonction
entity parity_check is generic (NBITS: positive := 8); port ( data: in bit_vector(NBITS-1 downto 0); prty: out bit); end entity parity_check; architecture func of parity_check is begin process (data) function parity (bv: bit_vector) return bit is variable result: bit; begin result := 0; for i in bvrange loop result := result xor bv(i); -- odd parity end loop; return result; end function parity; begin prty <= parity(data); end process; end architecture func;
Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2013 103 / 231
Fonction de conversion
Sysprog
Hiver 2013
104 / 231
` etats Machines a
Plan
1
Introduction Outils et methodes de conception VHDL Differents types de description Les types en VHDL Signaux et Variables en VHDL Les tableaux erique Gen ` Etats en VHDL Les Machines a Clause Wait Test Bench Simulation Paquetage, Procedure et Fonction ` etats Machines a
Sysprog Hiver 2013 105 / 231
` etats Machines a
` Systeme Numerique
Sysprog
Hiver 2013
106 / 231
` etats Machines a
` Systeme Numerique
Sysprog
Hiver 2013
106 / 231
` etats Machines a
Sysprog
Hiver 2013
107 / 231
` etats Machines a
` e par Un systeme electronique est caracteris : e0 , ..., ei , ..., en1 Ses entrees
Sysprog
Hiver 2013
107 / 231
` etats Machines a
` e par Un systeme electronique est caracteris : e0 , ..., ei , ..., en1 Ses entrees
Son etat electrique E
Sysprog
Hiver 2013
107 / 231
` etats Machines a
` e par Un systeme electronique est caracteris : e0 , ..., ei , ..., en1 Ses entrees
Son etat electrique E Ses sorties : s0 , ..., si , ..., sn1
Sysprog
Hiver 2013
107 / 231
` etats Machines a
` e par Un systeme electronique est caracteris : e0 , ..., ei , ..., en1 Ses entrees
Son etat electrique E Ses sorties : s0 , ..., si , ..., sn1
Sysprog
Hiver 2013
107 / 231
` etats Machines a
` e par Un systeme electronique est caracteris : e0 , ..., ei , ..., en1 Ses entrees
Son etat electrique E Ses sorties : s0 , ..., si , ..., sn1
Sysprog
Hiver 2013
107 / 231
` etats Machines a
` e par Un systeme electronique est caracteris : e0 , ..., ei , ..., en1 Ses entrees
Son etat electrique E Ses sorties : s0 , ..., si , ..., sn1
Sysprog
Hiver 2013
107 / 231
` etats Machines a
Logique Combinatoire
Denition : par Un circuit electronique est dit combinatoire si ses sorties sont determin ees et ceci apres ` un temps ni. Letat la combinaison de ses variables dentrees ` dun systeme est donc deni par la combinaison des variables e0 , ..., ei , ..., en1 .
Sysprog
Hiver 2013
108 / 231
` etats Machines a
Logique Combinatoire
e1 ei en
Circuit Combinatoire
s1 si sn
Sysprog
Hiver 2013
109 / 231
` etats Machines a
Logique Combinatoire
e1 ei en
Circuit Combinatoire
s1 si sn
tp t
p
tp
s1 s i sn
Sysprog
Hiver 2013
109 / 231
` etats Machines a
Logique Combinatoire
e1 ei en
Circuit Combinatoire tp
s1 si sn
Sysprog
Hiver 2013
109 / 231
` etats Machines a
Logique Sequentielle
Denition : non Un circuit electronique est dit sequentiel si ses sorties sont determin ees seulement par la combinaison de ses variables dentrees, mais aussi par la edentes et par letat sequence des combinaisons prec de ses entrees initial du ` systeme.
Sysprog
Hiver 2013
110 / 231
` etats Machines a
Logique Sequentielle
` lors que : Il appara t des Une meme combinaison de e0 , . . . , ei , . . . , en1 peut engendrer differents ` etats du systeme.
Sysprog
Hiver 2013
111 / 231
` etats Machines a
Logique Sequentielle
` lors que : Il appara t des Une meme combinaison de e0 , . . . , ei , . . . , en1 peut engendrer differents ` etats du systeme. ` ` Un systeme sequentiel est un systeme combinatoire de e0 , . . . , ei , . . . , en1 et de y0 , . . . , yi , . . . , yn1
Sysprog
Hiver 2013
111 / 231
` etats Machines a
Logique Sequentielle
` lors que : Il appara t des Une meme combinaison de e0 , . . . , ei , . . . , en1 peut engendrer differents ` etats du systeme. ` ` Un systeme sequentiel est un systeme combinatoire de e0 , . . . , ei , . . . , en1 et de y0 , . . . , yi , . . . , yn1 y0 , . . . , yi , . . . , yn1 sont des variables internes indiquant letat present du ` systeme
Sysprog
Hiver 2013
111 / 231
` etats Machines a
Logique Sequentielle
` lors que : Il appara t des Une meme combinaison de e0 , . . . , ei , . . . , en1 peut engendrer differents ` etats du systeme. ` ` Un systeme sequentiel est un systeme combinatoire de e0 , . . . , ei , . . . , en1 et de y0 , . . . , yi , . . . , yn1 y0 , . . . , yi , . . . , yn1 sont des variables internes indiquant letat present du ` systeme e0 , . . . , ei , . . . , en1 et les variables internes Les entrees ` y0 , . . . , yi , . . . , yn1 preparent letat futur du systeme.
Sysprog
Hiver 2013
111 / 231
` etats Machines a
Logique Sequentielle
e1 ei en
Circuit Combinatoire tp
s1 si sn y1 yi yn
s1 s i sn y1 y i yn
Circuit Squentiel
Sysprog
Hiver 2013
112 / 231
` etats Machines a
e1 ei en
Circuit Combinatoire tp
s1 si sn y1 yi yn
s1 s i sn y1 y i yn
Circuit Squentiel
Sysprog
Hiver 2013
113 / 231
` etats Machines a
e1 ei en
Circuit Combinatoire
s1 si sn y1 yi yn
s1 s i sn
D Q D Q D Q
y1 y i yn
Circuit Squentiel
Sysprog
Hiver 2013
114 / 231
` etats Machines a
` etats Machines a
Sysprog
Hiver 2013
115 / 231
` etats Machines a
` etats Machines a
conduisent a ` un nombre ni de Les combinaisons des entrees combinaisons de sortie. ` nombre detats Dou nis ou Machine A Etats. ` lappelation machine a
Sysprog
Hiver 2013
115 / 231
` etats Machines a
` etats Machines a
conduisent a ` un nombre ni de Les combinaisons des entrees combinaisons de sortie. ` nombre detats Dou nis ou Machine A Etats. ` lappelation machine a : Combinaison des variables dentree Vecteur dentree
Sysprog
Hiver 2013
115 / 231
` etats Machines a
` etats Machines a
conduisent a ` un nombre ni de Les combinaisons des entrees combinaisons de sortie. ` nombre detats Dou nis ou Machine A Etats. ` lappelation machine a : Combinaison des variables dentree Vecteur dentree Vecteur de sortie : Combinaison des variables de sortie
Sysprog
Hiver 2013
115 / 231
` etats Machines a
` etats Machines a
Notations :
Sysprog
Hiver 2013
116 / 231
` etats Machines a
` etats Machines a
Notations :
:E Entree
Sysprog
Hiver 2013
116 / 231
` etats Machines a
` etats Machines a
Notations :
:E Entree Etat Present : EP
Sysprog
Hiver 2013
116 / 231
` etats Machines a
` etats Machines a
Notations :
:E Entree Etat Present : EP Etat Futur : EF
Sysprog
Hiver 2013
116 / 231
` etats Machines a
` etats Machines a
Notations :
:E Entree Etat Present : EP Etat Futur : EF Sortie : S
Sysprog
Hiver 2013
116 / 231
` etats Machines a
` etats Machines a
Notations :
:E Entree Etat Present : EP Etat Futur : EF Sortie : S
Denitions
Sysprog
Hiver 2013
116 / 231
` etats Machines a
` etats Machines a
Notations :
:E Entree Etat Present : EP Etat Futur : EF Sortie : S
Denitions
Etat : Indicateur de position dans le temps
Sysprog
Hiver 2013
116 / 231
` etats Machines a
` etats Machines a
Notations :
:E Entree Etat Present : EP Etat Futur : EF Sortie : S
Denitions
Etat : Indicateur de position dans le temps de bascules permettant de memoriser Registre dEtat : Compose les valeurs des etats
Sysprog
Hiver 2013
116 / 231
` etats Machines a
` etats Machines a
Notations :
:E Entree Etat Present : EP Etat Futur : EF Sortie : S
Denitions
Etat : Indicateur de position dans le temps de bascules permettant de memoriser Registre dEtat : Compose les valeurs des etats ` linstant present Etat Present : sortie stable du registre detat a
Sysprog
Hiver 2013
116 / 231
` etats Machines a
` etats Machines a
Notations :
:E Entree Etat Present : EP Etat Futur : EF Sortie : S
Denitions
Etat : Indicateur de position dans le temps de bascules permettant de memoriser Registre dEtat : Compose les valeurs des etats ` linstant present Etat Present : sortie stable du registre detat a ` une impulsion Etat Futur : etat dans lequel se trouvera la machine apres
Sysprog
Hiver 2013
116 / 231
` etats Machines a
` etats Machines a
Sysprog
Hiver 2013
117 / 231
` etats Machines a
` etats Machines a
Table de transition : deux parties indiquant le present et le futur. a ` linstant n E : Entree ` linstant n EP : Etat Present a
Sysprog
Hiver 2013
117 / 231
` etats Machines a
` etats Machines a
Table de transition : deux parties indiquant le present et le futur. a ` linstant n E : Entree ` linstant n EP : Etat Present a ` linstant n + 1 EF : Etat Suivant a
Sysprog
Hiver 2013
117 / 231
` etats Machines a
` etats Machines a
Table de transition : deux parties indiquant le present et le futur. a ` linstant n E : Entree ` linstant n EP : Etat Present a ` linstant n + 1 EF : Etat Suivant a ` linstant n + 1 S : Fonction de Sortie a
Sysprog
Hiver 2013
117 / 231
` etats Machines a
` etats Machines a
Table de transition : deux parties indiquant le present et le futur. a ` linstant n E : Entree ` linstant n EP : Etat Present a ` linstant n + 1 EF : Etat Suivant a ` linstant n + 1 S : Fonction de Sortie a Table de transition E Entree EP Etat Present EF Etat Suivant S Sortie
Sysprog
Hiver 2013
117 / 231
` etats Machines a
EP Circuit Combinatoire tp
EF
Registre dtat
Signal dHorloge
S=F(EP,E)
Sysprog
Hiver 2013
118 / 231
` etats Machines a
EP Circuit Combinatoire tp
EF
Registre dtat
Signal dHorloge
S=F(EP,E)
Registre de sortie
Sysprog
Hiver 2013
119 / 231
` etats Machines a
Machines de Moore
EP Circuit Combinatoire tp
EF
Registre dtat
S=F(EP)
Signal dHorloge
Sysprog
Hiver 2013
120 / 231
` etats Machines a
` Etats Machines a
Machine de Mealy : S = f (E , EP ) et EF = g (E , EP )
Sysprog
Hiver 2013
121 / 231
` etats Machines a
` Etats Machines a
Machine de Mealy : S = f (E , EP ) et EF = g (E , EP ) Dans un etat, le vecteur sortie peut varier en fonction des valeurs du vecteur dentree
Sysprog
Hiver 2013
121 / 231
` etats Machines a
` Etats Machines a
Machine de Mealy : S = f (E , EP ) et EF = g (E , EP ) Dans un etat, le vecteur sortie peut varier en fonction des valeurs du vecteur dentree Machine de Moore : S = f (EP ) et EF = g (E , EP )
Sysprog
Hiver 2013
121 / 231
` etats Machines a
` Etats Machines a
Machine de Mealy : S = f (E , EP ) et EF = g (E , EP ) Dans un etat, le vecteur sortie peut varier en fonction des valeurs du vecteur dentree Machine de Moore : S = f (EP ) et EF = g (E , EP ) ` une valeur unique Dans un etat, le vecteur de sortie a
Sysprog
Hiver 2013
121 / 231
` etats Machines a
Notations Transitions
Transition
EP
horloge.EP.Entre
EF
MEALY S0 Entre/Sortie S1
Sysprog
Hiver 2013
122 / 231
` etats Machines a
Sysprog
Hiver 2013
123 / 231
` etats Machines a
Sysprog
Hiver 2013
123 / 231
` etats Machines a
Sysprog
Hiver 2013
123 / 231
` etats Machines a
Sysprog
Hiver 2013
123 / 231
` etats Machines a
Methode de realisation
Sysprog
Hiver 2013
124 / 231
` etats Machines a
Methode de realisation
1 2
Sysprog
Hiver 2013
124 / 231
` etats Machines a
Methode de realisation
1 2 3
Specication du cahier des charges (Crucial). Determination des etats. et des sorties de la machine a ` etats. Identication des entrees
Sysprog
Hiver 2013
124 / 231
` etats Machines a
Methode de realisation
1 2 3 4
Specication du cahier des charges (Crucial). Determination des etats. et des sorties de la machine a ` etats. Identication des entrees Etablissement du graphe de transistion.
Sysprog
Hiver 2013
124 / 231
` etats Machines a
Methode de realisation
1 2 3 4 5
Specication du cahier des charges (Crucial). Determination des etats. et des sorties de la machine a ` etats. Identication des entrees Etablissement du graphe de transistion. Etablissement de la table de transistion.
Sysprog
Hiver 2013
124 / 231
` etats Machines a
Methode de realisation
1 2 3 4 5 6
Specication du cahier des charges (Crucial). Determination des etats. et des sorties de la machine a ` etats. Identication des entrees Etablissement du graphe de transistion. Etablissement de la table de transistion. Determination du nombre de bascules necessaires.
Sysprog
Hiver 2013
124 / 231
` etats Machines a
Methode de realisation
1 2 3 4 5 6 7
Specication du cahier des charges (Crucial). Determination des etats. et des sorties de la machine a ` etats. Identication des entrees Etablissement du graphe de transistion. Etablissement de la table de transistion. Determination du nombre de bascules necessaires. Determination des equations de letat futur et des sorties et realisation.
Sysprog
Hiver 2013
124 / 231
` etats Machines a
Application 1
Sysprog
Hiver 2013
125 / 231
` etats Machines a
Application 1 Application 2
Sysprog
Hiver 2013
125 / 231
` etats Machines a
Sysprog
Hiver 2013
125 / 231
` etats Machines a
`7 Les Etapes 5 a
Sysprog
Hiver 2013
126 / 231
` etats Machines a
`7 Les Etapes 5 a
Etapes quasi automatiques sur des methodes ` Basee de realisation de systemes electroniques standards
Sysprog
Hiver 2013
126 / 231
` etats Machines a
E0
Etat 0
E4
Etat 1
Sysprog Hiver 2013 127 / 231
` etats Machines a
Transitions Conditionnelles E0
Etat 0
E4
Etat 1
Sysprog Hiver 2013 127 / 231
` etats Machines a
Transitions Conditionnelles E0
Etat 0
E4
Etat 1
Sysprog Hiver 2013 127 / 231
` etats Machines a
Transitions Conditionnelles E0
Etat 0
E4
Etat 1
Sysprog Hiver 2013 127 / 231
` etats Machines a
Sysprog
Hiver 2013
128 / 231
` etats Machines a
Sysprog
Hiver 2013
128 / 231
` etats Machines a
Sysprog
Hiver 2013
128 / 231
` etats Machines a
des entrees et des sorties : les vecteurs Representation condensee et de sortie. dentree
Sysprog
Hiver 2013
129 / 231
` etats Machines a
des entrees et des sorties : les vecteurs Representation condensee et de sortie. dentree
des entrees a,b et c. Lorsque a=0,b=0 et Ici E denote le vecteur dentree c=0 alors E=0 et on note E0, Lorsque a=0,b=0 et c=1 alors E=1 et on note ` a=1,b=1 et c=1 alors E=7 et on note E7 E1 ainsi de suite jusqu a
Sysprog
Hiver 2013
129 / 231
` etats Machines a
des entrees et des sorties : les vecteurs Representation condensee et de sortie. dentree
des entrees a,b et c. Lorsque a=0,b=0 et Ici E denote le vecteur dentree c=0 alors E=0 et on note E0, Lorsque a=0,b=0 et c=1 alors E=1 et on note ` a=1,b=1 et c=1 alors E=7 et on note E7 E1 ainsi de suite jusqu a Ici S denote le vecteur de sortie des sorties x et y. Lorsque x=0 et y=0 alors S=0 et on note S0. Lorsque x=0 et y=1 alors S=1 et on note S1. Lorsque x=1 et y=0 alors S=2 et on note S2 et lorsque x=1 et y=1 S=3 et on note S3.
Sysprog
Hiver 2013
129 / 231
` etats Machines a
des entrees et des sorties : les vecteurs Representation condensee et de sortie. dentree
des entrees a,b et c. Lorsque a=0,b=0 et Ici E denote le vecteur dentree c=0 alors E=0 et on note E0, Lorsque a=0,b=0 et c=1 alors E=1 et on note ` a=1,b=1 et c=1 alors E=7 et on note E7 E1 ainsi de suite jusqu a Ici S denote le vecteur de sortie des sorties x et y. Lorsque x=0 et y=0 alors S=0 et on note S0. Lorsque x=0 et y=1 alors S=1 et on note S1. Lorsque x=1 et y=0 alors S=2 et on note S2 et lorsque x=1 et y=1 S=3 et on note S3.
Sysprog
Hiver 2013
129 / 231
` etats Machines a
Sysprog
Hiver 2013
130 / 231
` etats Machines a
Sysprog
Hiver 2013
130 / 231
` etats Machines a
lhorloge est une entree ` etat Machine a synchrone toujours presente Horloge = entree
Sysprog
Hiver 2013
130 / 231
` etats Machines a
lhorloge est une entree ` etat Machine a synchrone toujours presente Horloge = entree Le changement detat seffectue sur un front dhorloge
Sysprog
Hiver 2013
130 / 231
` etats Machines a
Exemple Moore
E0
Etat 0
E4
Etat 1
Sysprog Hiver 2013 131 / 231
` etats Machines a
E E0 E1 E2 E3 E4 E5 E6 E7 ...
Sysprog
Hiver 2013
132 / 231
` etats Machines a
E E0 E4 X E1 E2
Sysprog
Hiver 2013
133 / 231
` etats Machines a
Sysprog
Hiver 2013
134 / 231
` etats Machines a
Sysprog
Hiver 2013
134 / 231
` etats Machines a
Sysprog
Hiver 2013
134 / 231
` etats Machines a
Sysprog
Hiver 2013
134 / 231
` etats Machines a
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
Vecteur S S0 S1 S2 S3
x 0 0 1 1
y 0 1 0 1
Hiver 2013
134 / 231
` etats Machines a
0 0 0 1 1
0 0 1 0 0
Sysprog
0 0 1 1 0
n +1 Q0 0 1 0 0 0
Hiver 2013
135 / 231
` etats Machines a
n Q1
n Q0
a b c
0 0 0 0 0 x x
0 0 1 x 0 0 0
0 1 1 x 0 x x
0 1 0 x 0 0 0
1 1 0 x 0 x x
1 1 1 x 0 x x
1 0 1 x 0 x x
1 0 0 1 0 x x
0 0 1 1
n +1 Q1 :
0 1 1 0
n Q1
n Q0
a b c
0 0 0 0 1 x x
0 0 1 x 1 x 1
0 1 1 x 1 x x
0 1 0 x 1 x 0
1 1 0 x 1 x x
1 1 1 x 1 x x
1 0 1 x 1 x x
1 0 0 0 1 x x
Hiver 2013 136 / 231
0 0 1 1
0 1 1 0
Sysprog
` etats Machines a
x:
n Q1 n Q0
0 0 0
1 1 x
0 1 y:
n Q1 n Q0
0 0 1
1 0 x
0 1
Sysprog
Hiver 2013
137 / 231
` etats Machines a
n +1 Q0 =
Sysprog
Hiver 2013
138 / 231
` etats Machines a
n +1 Q0 = n +1 Q1 =
Sysprog
Hiver 2013
138 / 231
` etats Machines a
n +1 Q0 = n +1 Q1 =
x=
Sysprog
Hiver 2013
138 / 231
` etats Machines a
n +1 Q0 = n +1 Q1 =
x= y=
Sysprog
Hiver 2013
138 / 231
` etats Machines a
n +1 Q0 = n +1 Q1 =
x= y= Schema
Sysprog
Hiver 2013
138 / 231
` etats Machines a
Exemple Mealy
Sysprog
Hiver 2013
139 / 231
` etats Machines a
Sysprog
Hiver 2013
140 / 231
` etats Machines a
Sysprog
Hiver 2013
140 / 231
` etats Machines a
Sysprog
Hiver 2013
140 / 231
` etats Machines a
Sysprog
Hiver 2013
140 / 231
` etats Machines a
Sysprog
Hiver 2013
140 / 231
` etats Machines a
E E0 E1 E0 E1 E a 0 1 0 1
S S0 S1 S2 S3 S x 0 0 1 1 y 0 1 0 1
0 0 1 1
0 1 0 1
Sysprog
Hiver 2013
141 / 231
` etats Machines a
0 0 0
1 1 1
0 1 x:
n Q0
0 0 1
1 0 1
0 1 y:
n Q0
0 0 0
1 1 1
Hiver 2013 142 / 231
0 1
Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog
` etats Machines a
n +1 Q0 =
Sysprog
Hiver 2013
143 / 231
` etats Machines a
n +1 Q0 =
x=
Sysprog
Hiver 2013
143 / 231
` etats Machines a
n +1 Q0 =
x= y=
Sysprog
Hiver 2013
143 / 231
` etats Machines a
n +1 Q0 =
x= y= Schema
Sysprog
Hiver 2013
143 / 231
` etats Machines a
Codage par defaut : codage binaire = coder les etats avec le moins de bits possibles
Sysprog
Hiver 2013
144 / 231
` etats Machines a
Codage par defaut : codage binaire = coder les etats avec le moins de bits possibles One hot Encoding : rajouter des bascules an de simplier les equations combinatoires
Sysprog
Hiver 2013
144 / 231
` etats Machines a
Codage par defaut : codage binaire = coder les etats avec le moins de bits possibles One hot Encoding : rajouter des bascules an de simplier les equations combinatoires Principe : Une bascule par etat
Sysprog
Hiver 2013
144 / 231
` etats Machines a
Codage par defaut : codage binaire = coder les etats avec le moins de bits possibles One hot Encoding : rajouter des bascules an de simplier les equations combinatoires Principe : Une bascule par etat ` 1, toutes les autres ont leur sortie Il ny a quune bascule ayant sa sortie a `0 a
Sysprog
Hiver 2013
144 / 231
` etats Machines a
Codage par defaut : codage binaire = coder les etats avec le moins de bits possibles One hot Encoding : rajouter des bascules an de simplier les equations combinatoires Principe : Une bascule par etat ` 1, toutes les autres ont leur sortie Il ny a quune bascule ayant sa sortie a `0 a ` 1 alors la machine est dans letat Lorsque la sortie de la bascule i est a i
Sysprog
Hiver 2013
144 / 231
` etats Machines a
CK
STABLE ts th
Sysprog
Hiver 2013
145 / 231
` etats Machines a
N P t p0 t p1 I A
D0
Registre dtat
D1
Signal dHorloge
Registre de sortie
F=F(P,I)
Horloge
A D0 D1
t p0 t p1 tS
Sysprog
Hiver 2013
146 / 231
` etats Machines a
Le changement dune seule variable peut entrainer des changements du registre detat multiples sur les entrees
Sysprog
Hiver 2013
147 / 231
` etats Machines a
Le changement dune seule variable peut entrainer des changements du registre detat multiples sur les entrees de la machine nest pas predictible En cas de violation de tS ou de tH letat
Sysprog
Hiver 2013
147 / 231
` etats Machines a
N P t p0 t p1
D0
Registre dtat
D1
Signal dHorloge
Registre dentre
A
Registre de sortie
F=F(P,I)
Horloge
Horloge
Horloge
A A D0 D1
t p0 t p1
t >> t S
Sysprog
Hiver 2013
148 / 231
` etats Machines a
Sysprog
Hiver 2013
149 / 231
` etats Machines a
Sysprog
Hiver 2013
149 / 231
` etats Machines a
Sysprog
Hiver 2013
149 / 231
` etats Machines a
Metastabilit e
Horloge tS Q
tH
tCO
t MET
Sysprog
Hiver 2013
150 / 231
` etats Machines a
Metastabilit e
Sysprog
Hiver 2013
151 / 231
` etats Machines a
Metastabilit e
Respect des contraintes tS ou de tH . La violation des contraintes peut entrainer un etat metastable de la bascule.
Sysprog
Hiver 2013
151 / 231
` etats Machines a
Metastabilit e
Respect des contraintes tS ou de tH . La violation des contraintes peut entrainer un etat metastable de la bascule. Letat metastable nappara t pas forcement.
Sysprog
Hiver 2013
151 / 231
` etats Machines a
Metastabilit e
Respect des contraintes tS ou de tH . La violation des contraintes peut entrainer un etat metastable de la bascule. Letat metastable nappara t pas forcement. dun etat au processus de fabrication. La probabilite metastable est lie
Sysprog
Hiver 2013
151 / 231
` etats Machines a
Metastabilit e
Respect des contraintes tS ou de tH . La violation des contraintes peut entrainer un etat metastable de la bascule. Letat metastable nappara t pas forcement. dun etat au processus de fabrication. La probabilite metastable est lie ne met pas forcement ` La metastabilit e le systeme dans un etat indetermin e.
Sysprog
Hiver 2013
151 / 231
` etats Machines a
Metastabilit e
Respect des contraintes tS ou de tH . La violation des contraintes peut entrainer un etat metastable de la bascule. Letat metastable nappara t pas forcement. dun etat au processus de fabrication. La probabilite metastable est lie ne met pas forcement ` La metastabilit e le systeme dans un etat indetermin e. est caracteris ee par le MTBF (Mean Time Between La metastabilit e Failure) du circuit
Sysprog
Hiver 2013
151 / 231
` etats Machines a
Sysprog
Hiver 2013
152 / 231
` etats Machines a
Sysprog
Hiver 2013
152 / 231
` etats Machines a
Sysprog
Hiver 2013
152 / 231
` etats Machines a
` acces ` Aleatoire Ces acronymes denissent tous les deux des memoires a
Sysprog
Hiver 2013
152 / 231
` etats Machines a
` acces ` Aleatoire Ces acronymes denissent tous les deux des memoires a ` acces ` sequentiel Mais il existe aussi des memoires a
Sysprog
Hiver 2013
152 / 231
` etats Machines a
Sysprog
Hiver 2013
153 / 231
` etats Machines a
ROM : Read Only Memory = Memoire Lecture Seule ? Les noms nont de sens que pour les auteurs !
Sysprog
Hiver 2013
153 / 231
` etats Machines a
ROM : Read Only Memory = Memoire Lecture Seule ? Les noms nont de sens que pour les auteurs ! Il existes des memoires avec differentes caracteristiques
Sysprog
Hiver 2013
153 / 231
` etats Machines a
Sysprog
Hiver 2013
154 / 231
` etats Machines a
Sysprog
Hiver 2013
154 / 231
` etats Machines a
` Quels Criteres pour classier ? ` Criteres pertinents ou apparaissant comme tels. ` Criteres pas forcement indeniment valides.
Sysprog
Hiver 2013
154 / 231
` etats Machines a
Lecture Ecriture
Sysprog
Hiver 2013
155 / 231
` etats Machines a
Sysprog
Hiver 2013
156 / 231
` etats Machines a
manipulees Denition sur les donnees binaire bit : Binary digIT - Plus petite quantite
Sysprog
Hiver 2013
156 / 231
` etats Machines a
manipulees Denition sur les donnees binaire bit : Binary digIT - Plus petite quantite sur 8 bits - Unite de ref erence octet (byte) : information codee
Sysprog
Hiver 2013
156 / 231
` etats Machines a
manipulees Denition sur les donnees binaire bit : Binary digIT - Plus petite quantite sur 8 bits - Unite de ref erence octet (byte) : information codee erence utilise - dependant mot (word) : ref la taille du bus de donnees du ` systeme - Un processeur 16 bits a une taille de mot de 16 bits, un processeur 64 bits a une taille de mot de 64 bits - Taille egale la taille du bus.
Sysprog
Hiver 2013
156 / 231
` etats Machines a
Sysprog
Hiver 2013
157 / 231
` etats Machines a
Sysprog
Hiver 2013
157 / 231
` etats Machines a
Sysprog
Hiver 2013
157 / 231
` etats Machines a
Sysprog
Hiver 2013
157 / 231
` etats Machines a
Sysprog
Hiver 2013
157 / 231
` etats Machines a
Sysprog
Hiver 2013
157 / 231
` etats Machines a
Sysprog
Hiver 2013
157 / 231
` etats Machines a
Bit
T4 T2 T3
T6 T1 T5
Sysprog
Bit
Hiver 2013
158 / 231
` etats Machines a
Bit
T4 T2 T3
T6 T1 T5
Vdd
Sysprog
Bit Sortie
Hiver 2013
159 / 231
` etats Machines a
Bit
T4 T2 T3
T6 T1 T5
Entre
Sysprog
Bit W
Hiver 2013
160 / 231
` etats Machines a
Sysprog
Hiver 2013
161 / 231
` etats Machines a
` ` 2 donnees en Cellule biport : permet dacceder simultanement a memoires par contenu, utile pour les memoires Cellule CAM : cellule adressee caches associatives
Sysprog
Hiver 2013
161 / 231
` etats Machines a
Sysprog
Hiver 2013
162 / 231
` etats Machines a
Sysprog
Hiver 2013
163 / 231
` etats Machines a
Rapide
Sysprog
Hiver 2013
164 / 231
` etats Machines a
Sysprog
Hiver 2013
164 / 231
` etats Machines a
Rapide Cellule Statique : Retention innie tant qualimentation Faible Consommation (CMOS)
Sysprog
Hiver 2013
164 / 231
` etats Machines a
Rapide Cellule Statique : Retention innie tant qualimentation Faible Consommation (CMOS) Cellule volumineuse
Sysprog
Hiver 2013
164 / 231
` etats Machines a
Rapide Cellule Statique : Retention innie tant qualimentation Faible Consommation (CMOS) Cellule volumineuse ` Chere
Sysprog
Hiver 2013
164 / 231
` etats Machines a
Rapide Cellule Statique : Retention innie tant qualimentation Faible Consommation (CMOS) Cellule volumineuse ` Chere Volatile
Sysprog
Hiver 2013
164 / 231
` etats Machines a
Bit T1 C
Mot
Sysprog
Hiver 2013
165 / 231
` etats Machines a
Compact
Sysprog
Hiver 2013
166 / 231
` etats Machines a
Sysprog
Hiver 2013
166 / 231
` etats Machines a
Sysprog
Hiver 2013
166 / 231
` etats Machines a
Compact Faible Consommation (CMOS) de re ecriture Lecture destructrice : necessit e Rafra chissement regulier pour combler la decharge du condensateur
Sysprog
Hiver 2013
166 / 231
` etats Machines a
Compact Faible Consommation (CMOS) de re ecriture Lecture destructrice : necessit e Rafra chissement regulier pour combler la decharge du condensateur Volatile
Sysprog
Hiver 2013
166 / 231
` etats Machines a
CS R W
Tampon dEntres/Sorties
2 2
N
Dcodeur de Ligne
N-1
1 bit
AN-1 AN-2
A1 A0
2 1
Sysprog
Hiver 2013
167 / 231
` etats Machines a
Sysprog
Hiver 2013
168 / 231
` etats Machines a
Adressage Simple : une adresse une donnee memoire large Grande capacite bus de donnee
Sysprog
Hiver 2013
168 / 231
` etats Machines a
Adressage Simple : une adresse une donnee memoire large Grande capacite bus de donnee Scinder ladresse en deux parties : ligne et colonne
Sysprog
Hiver 2013
168 / 231
` etats Machines a
CS R W 2
D0
K-1
2 1
Dcodeur de Ligne
2 2
N-K
N-K-1
1 bit
AN-1 AN-2
AK+1 AK
2 1
K K-1
2 1
Dcodeur de Colonne
AK-1AK-2 A1 A0
Sysprog
Hiver 2013
169 / 231
` etats Machines a
CS R W 2
K-1
2 1
Dcodeur de Ligne
2 2
N-K
N-K-1
4 bits
AN-1 AN-2
AK+1 AK
2 1
K K-1
2 1
Dcodeur de Colonne
AK-1AK-2 A1 A0
Sysprog
Hiver 2013
170 / 231
` etats Machines a
Sysprog
Hiver 2013
171 / 231
` etats Machines a
Sysprog
Hiver 2013
171 / 231
` etats Machines a
Sysprog
Hiver 2013
171 / 231
` etats Machines a
Donnes
M bits
R W
Sysprog
Hiver 2013
172 / 231
` etats Machines a
Donnes
4 bits
R W
Sysprog
Hiver 2013
173 / 231
` etats Machines a
Adresses 10 bits
Sysprog
Hiver 2013
174 / 231
` etats Machines a
CS
CS
CS
CS
R W
R W
R W
R W
10 bits
Sysprog
Hiver 2013
175 / 231
` etats Machines a
Sysprog
Hiver 2013
176 / 231
` etats Machines a
Pour un bon fonctionnement de la memoire dans les cycles de lecture et decriture Repect de temps indique
Sysprog
Hiver 2013
176 / 231
` etats Machines a
Tad Tcdsh
T1
T2
T3 T4
Sysprog
Hiver 2013
177 / 231
` etats Machines a
Tcdsh
DONNEE VALIDE
T1
T2
T3 T4
Sysprog
Hiver 2013
178 / 231
` etats Machines a
Vhdl : memoire
entity memoire is port (donnee : in std_logic_vector(7 downto 0); adresse: in std_logic_vector(6 downto 0); rw : in std_logic; cs : in std_logic; sortie: out std_logic_vector(7 downto 0)); end entity memoire;
Sysprog
Hiver 2013
179 / 231
` etats Machines a
Vhdl : memoire
architecture comport of memoire is begin process(cs,adresse,donnee,rw) is type memory is array (0 to 79) of std_logic_vector(7 downto 0); variable mem : memory; begin if cs=0 then if rw=1 then sortie <= mem(conv_integer(adresse)); elsif rw=0 then mem(conv_integer(adresse)) := donnee; end if; else sortie<= "ZZZZZZZZ"; end if; end process; end architecture comport;
Sysprog
Hiver 2013
180 / 231
` etats Machines a
Sysprog
Hiver 2013
181 / 231
` etats Machines a
Sysprog
Hiver 2013
181 / 231
` etats Machines a
` : technologie asynchrone Jusque la Difcile de maitriser les temps de propagation de synchroniser les acces ` memoire Necessit e
Sysprog
Hiver 2013
181 / 231
` etats Machines a
` : technologie asynchrone Jusque la Difcile de maitriser les temps de propagation de synchroniser les acces ` memoire Necessit e SDRAM: Synchone DRAM
Sysprog
Hiver 2013
181 / 231
` etats Machines a
` : technologie asynchrone Jusque la Difcile de maitriser les temps de propagation de synchroniser les acces ` memoire Necessit e SDRAM: Synchone DRAM Introduction du mode Rafale (BURST)
Sysprog
Hiver 2013
181 / 231
` etats Machines a
Sysprog
Hiver 2013
182 / 231
` etats Machines a
Sysprog
Hiver 2013
183 / 231
` etats Machines a
Frequence Processeur = 800 MHz, frequence SDRAM = 100 MHz de reduire Necessit e cet ecart
Sysprog
Hiver 2013
183 / 231
` etats Machines a
Frequence Processeur = 800 MHz, frequence SDRAM = 100 MHz de reduire Necessit e cet ecart : lire sur le front montant et descendant de lhorloge Idee
Sysprog
Hiver 2013
183 / 231
` etats Machines a
Frequence Processeur = 800 MHz, frequence SDRAM = 100 MHz de reduire Necessit e cet ecart : lire sur le front montant et descendant de lhorloge Idee ` double debit) DDRAM : Double rate DRAM (DRAM a
Sysprog
Hiver 2013
183 / 231
` etats Machines a
Sysprog
Hiver 2013
184 / 231
` etats Machines a
Sysprog
Hiver 2013
185 / 231
` etats Machines a
Sysprog
Hiver 2013
186 / 231
` etats Machines a
Idee1 : lire sur le front montant et descendant de lhorloge comme une DDRAM
Sysprog
Hiver 2013
187 / 231
` etats Machines a
Idee1 : lire sur le front montant et descendant de lhorloge comme une DDRAM et sortie pour permettre une lecture et une Idee2 : dissocier entree ecriture simultanee
Sysprog
Hiver 2013
187 / 231
` etats Machines a
Idee1 : lire sur le front montant et descendant de lhorloge comme une DDRAM et sortie pour permettre une lecture et une Idee2 : dissocier entree ecriture simultanee ` quadruple debit) QDRAM : Quad rate DRAM (DRAM a
Sysprog
Hiver 2013
187 / 231
` etats Machines a
Sysprog
Hiver 2013
188 / 231
` etats Machines a
K K# W#
Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) R# Sysprog Hiver 2013 189 / 231
` etats Machines a
Sysprog
Hiver 2013
190 / 231
` etats Machines a
Sysprog
Hiver 2013
191 / 231
` etats Machines a
Sysprog
Hiver 2013
192 / 231
` etats Machines a
Sysprog
Hiver 2013
192 / 231
` etats Machines a
de memoire Necessit e non-volatile Bios de micro-ordinateur ` Stockage de programmes dans des systemes embarques
Sysprog
Hiver 2013
192 / 231
` etats Machines a
de memoire Necessit e non-volatile Bios de micro-ordinateur ` Stockage de programmes dans des systemes embarques Reconguration automatique des FPGA
Sysprog
Hiver 2013
192 / 231
` etats Machines a
Sysprog
Hiver 2013
193 / 231
` etats Machines a
lors de la fabrication du circuit Mask - ROM : realis e PROM : Fusible - One Time Programming
Sysprog
Hiver 2013
193 / 231
` etats Machines a
lors de la fabrication du circuit Mask - ROM : realis e PROM : Fusible - One Time Programming ` Grille Flottante - Reprogrammabilite EPROM : Transistors a
Sysprog
Hiver 2013
193 / 231
` etats Machines a
lors de la fabrication du circuit Mask - ROM : realis e PROM : Fusible - One Time Programming ` Grille Flottante - Reprogrammabilite EPROM : Transistors a NOVRAM : RAM + Pile
Sysprog
Hiver 2013
193 / 231
` etats Machines a
Sysprog
Hiver 2013
194 / 231
` etats Machines a
Sysprog
Hiver 2013
194 / 231
` etats Machines a
Aluminium
Aluminium
Sysprog Hiver 2013 195 / 231
` etats Machines a
Aluminium
Aluminium
Sysprog Hiver 2013 195 / 231
` etats Machines a
Aluminium
Aluminium
Sysprog Hiver 2013 195 / 231
` etats Machines a
Sysprog
Hiver 2013
196 / 231
` etats Machines a
Sysprog
Hiver 2013
197 / 231
` etats Machines a
Sysprog
Hiver 2013
198 / 231
` etats Machines a
Sysprog
Hiver 2013
199 / 231
` etats Machines a
Sysprog
Hiver 2013
200 / 231
` etats Machines a
Sysprog
Hiver 2013
201 / 231
` etats Machines a
Sysprog
Hiver 2013
202 / 231
` etats Machines a
Sysprog
Hiver 2013
203 / 231
` etats Machines a
Sysprog
Hiver 2013
204 / 231
` etats Machines a
UV-EPROM : Effacement aux ultra-violet EEPROM : Effacement electrique par mot memoire
Sysprog
Hiver 2013
204 / 231
` etats Machines a
UV-EPROM : Effacement aux ultra-violet EEPROM : Effacement electrique par mot memoire FLASH : Effacement electrique par bloc
Sysprog
Hiver 2013
204 / 231
` etats Machines a
Sysprog
Hiver 2013
205 / 231
` etats Machines a
Sysprog
Hiver 2013
205 / 231
` etats Machines a
` Programmation hors systeme ` Effacement hors systeme Temps deffacement long (15 minutes pour les UV-EPROM)
Sysprog
Hiver 2013
205 / 231
` etats Machines a
Sysprog
Hiver 2013
206 / 231
` etats Machines a
Sysprog
Hiver 2013
206 / 231
` etats Machines a
Programmation ISP (In Situ Programming ou In Serial Programming) Effacement ISP Programmation par mot ou bloc
Sysprog
Hiver 2013
206 / 231
` etats Machines a
Programmation ISP (In Situ Programming ou In Serial Programming) Effacement ISP Programmation par mot ou bloc Temps deffacement rapide
Sysprog
Hiver 2013
206 / 231
` etats Machines a
Programmation ISP (In Situ Programming ou In Serial Programming) Effacement ISP Programmation par mot ou bloc Temps deffacement rapide e car effacement par mot memoire Cout elev
Sysprog
Hiver 2013
206 / 231
` etats Machines a
Programmation ISP
Sysprog
Hiver 2013
207 / 231
` etats Machines a
Sysprog
Hiver 2013
207 / 231
` etats Machines a
Sysprog
Hiver 2013
207 / 231
` etats Machines a
Programmation ISP Effacement ISP Programmation par mot ou bloc ` rapide Temps deffacement tres
Sysprog
Hiver 2013
207 / 231
` etats Machines a
Programmation ISP Effacement ISP Programmation par mot ou bloc ` rapide Temps deffacement tres car effacement par bloc Cout limite
Sysprog
Hiver 2013
207 / 231
` etats Machines a
Sysprog
Hiver 2013
208 / 231
` etats Machines a
Sysprog
Hiver 2013
209 / 231
` etats Machines a
Sysprog
Hiver 2013
210 / 231
` etats Machines a
Sysprog
Hiver 2013
211 / 231
` etats Machines a
Sysprog
Hiver 2013
212 / 231
` etats Machines a
Sysprog
Hiver 2013
213 / 231
` etats Machines a
Sysprog
Hiver 2013
214 / 231
` etats Machines a
Sysprog
Hiver 2013
215 / 231
` etats Machines a
Sysprog
Hiver 2013
216 / 231
` etats Machines a
Sysprog
Hiver 2013
217 / 231
` etats Machines a
SRAM : Rapidite
Sysprog
Hiver 2013
218 / 231
` etats Machines a
Sysprog
Hiver 2013
218 / 231
` etats Machines a
Sysprog
Hiver 2013
218 / 231
` etats Machines a
SRAM : Rapidite DRAM : Densite Flash : Permanence Allier ces trois caracteristiques : MRAM
Sysprog
Hiver 2013
218 / 231
` etats Machines a
Sysprog
Hiver 2013
219 / 231
` etats Machines a
Sysprog
Hiver 2013
220 / 231
` etats Machines a
Sysprog
Hiver 2013
221 / 231
` etats Machines a
Sysprog
Hiver 2013
222 / 231
FPGA
F.P.G.A et SRAM
Utilisation de cellule de memoire statique
Vdd
Select Donne T2
T4
T6
T1 Interconnexion
T3
T5
Sysprog
Hiver 2013
223 / 231
FPGA
Sysprog
Hiver 2013
224 / 231
FPGA
Sysprog
Hiver 2013
224 / 231
FPGA
Sysprog
Hiver 2013
224 / 231
FPGA
Sysprog
Hiver 2013
224 / 231
FPGA
Sysprog
Hiver 2013
224 / 231
FPGA
Sysprog
Hiver 2013
225 / 231
FPGA
Sysprog
Hiver 2013
225 / 231
FPGA
Sysprog
Hiver 2013
225 / 231
FPGA
Des Entrees-Sorties
Sysprog
Hiver 2013
225 / 231
FPGA
Sysprog
Hiver 2013
225 / 231
FPGA
Sysprog
Hiver 2013
226 / 231
FPGA
Structure de linterconnexion
Sysprog
Hiver 2013
227 / 231
FPGA
Structure de linterconnexion
Sysprog
Hiver 2013
228 / 231
FPGA
FPGA
Sysprog
Hiver 2013
229 / 231
Overvie
# All ?ilinx FPGAs contain the same basic resources
6 Slices grouped into .onfigurable $ogic Bloc8s :.$Bs;
@ .ontain combinatorial logic and register resources
6 1Bs
@ nterface between the FPGA and the outside world
$%&A Introd'ction 9
2009 Xilinx, Inc. All Rights Reserved
-irte$.// Architecture
First family with Ambedded -ultipliers to enable high-performance DSP
1loc) Select*A+3 resource /0O 1loc)s %/O1s&
Programmable interconnect "mbedded multipliers (onfigurable #ogic 1loc)s %(#1s& (loc) +anagement %D(+s, 1UFG+U2es&
.1,)
Slice S#
Slice SC
Slice SB
$ocal /outing
.2
.2
Slice *esources
# (ach slice contains two) D Four inputs loo8up tables
D C&-bit distributed Select/AD C&-bit shift register
M!$%& L!" G C# M!$%5 Register
RAM16
SRL16
@ (ach register)
D D flip-flop D $atch
@ De icate logic)
D -uxes D Arithmetic logic D -,$)EA2D D .arry .hain
L!" F
C#
Register
Arithmetic Logic
$%&A Introd'ction -2
2009 Xilinx, Inc. All Rights Reserved
#oo).Up 4ables
# .ombinatorial logic is stored in $oo8-,p )ables :$,)s;
6 Also called Function Generators :FGs; 6 .apacity is limited by the number of inputs= not by the complexity
A 1 ( D 5 6 6 6 6 6 6 6 6 7 6 6 6 7 6 6 6 6 7 7 7 6 7 6 6 7 6 7 6 7 7
(ombinatorial #ogic
,
5
A 1 ( D
7 7 6 6 6 7 7 6 7 6 7 7 7 6 6 7 7 7 7 7
$%&A Introd'ction -(
2009 Xilinx, Inc. All Rights Reserved
Distributed *A+
# *+Ts #se as memory insi e the %a$ric # Flexi$le, can $e #se as RAM, R-M, or shi%t register # Distri$#te memory with %ast access time RAM/0 # Casca a$le with $#ilt.in C*& ro#ting SR*/0 # Applications
6'( &!b Dual Port /AC .$B C9*b C&b Single Port /AC .$B
6 $inear feedbac8 shift register 6 Distributed arithmetic 6 )ime-shared registers 6 Small F F1 6 Digital delay lines :F-C;
$%&A Introd'ction -)
$,)
Shift register
/12$
C&b
C .$B
4he S*#78"
# 4he 78 S*A+ cells have been organi9ed into a shift register
/ / The 0 12 is 'sed, in con3'nction 4ith the cloc5, to 4rite data into the first flip6flop and for all other data to move right 78 one position 9eca'se this is a predicta7le operation, no address is re:'ired for 4riting
D )
SRLC16E Casca+a(le
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
C* D )
)15
0000
1111
)
$%&A Introd'ction -*
2009 Xilinx, Inc. All Rights Reserved
&
/2
R('
.A D 3 30
/2
&C4"
@ Sit#ate $etween the &loc! RAMs an C*& array to ena$le high.per%ormance m#ltiply.acc#m#late operations @ This ramatically increase m#ltiplier spee an m#ltipliers an ena$le FP'A $ase DSP
$%&A Introd'ction -+
2009 Xilinx, Inc. All Rights Reserved
Outline
# # # # # # # Power of Parallelism Basic FPGA Architecture 5irtex .44 Pro Virtex-! Virtex-" Spartan -# Family $atest Families % Virtex-& Family % Spartan-& Family # 'hy should use FPGAs for DSP( # )he DSP!* Slice Ad+antage
$%&A Introd'ction -.
2009 Xilinx, Inc. All Rights Reserved
High per%ormance Tr#e D#al.port RAM 6 178 M$ Select4-:. +ltra Technology . ;;0 4<- in in xc19p30 xc19p30
(m$e e =tremeDSP F#nctionality . /30 m#ltipliers on xc19p30 Roc!et4-: High.spee Serial Transcei9ers 011 M$ps to 37/1; '$ps. 2 in xc19p30 >8 $ro#ght o#t to connectors on =+P &oar ? PowerPC: Processors 800@ MHz Cloc! Rate 6 1 in xc19p30
=C4T( Digitally Controlle 4mpe ance . Any 4<DCM: Digital Cloc! Management 6 2 in xc19p30
$%&A Introd'ction -,
2009 Xilinx, Inc. All Rights Reserved
+ultiplier Unit
# Ambedded C*-bit x C*-bit multiplier # )he ?,P Virtex- Pro includes a Virtex- Pro xc9+p#B de+ice with C#& -ultipliers # 9s complement signed operation # !- to C*-bit operands # .ombinational > pipelined options # 1perates with bloc8 /A- and fabric to implement -A. function
$%&A Introd'ction -9
2009 Xilinx, Inc. All Rights Reserved
-irte$.: Family
Ad+anced Silicon -odular B$oc8 :AS-B$; Architecture 1ptimi<ed for logic= Ambedded= and Signal Processing
*=
*esource
F=
7=;<7:6; #(s 6,8<76 +b :<=6 ?=<7>= =:6<B>8 6<=: (hannels 7 or = (ores = or : (ores
S=
=?;<@@; #(s =,?<@,A +b :<B 7=B<@7= ?=6<8:6 20A 20A 20A
-irte$.: Features
/efer to de+ice data sheet on web for detailed technical information
100,000 *ogic Cells ;00 MHz =esi#m: Di%%erential Cloc!ing A(S Sec#re Chip Design Sec#rity
5irtex.8
07; '$ps
5irtex.8
5irtex.8
$%&A Introd'ction 22
2009 Xilinx, Inc. All Rights Reserved
-irte$.: Architecture
Roc#etIO ulti2Gi&abit Transceivers
/44 bps51(67 Gbps
Smart RA
!e" bloc# RA $%I%O
A3vance3 C9:s
4((; 9o&ic Cells
1 Gbps SelectIO
ChipSync Source synch, XCITE Active Termination
$%&A Introd'ction 2)
2009 Xilinx, Inc. All Rights Reserved
DSP:B 1loc)
&C-+T
PC-+T
&R('
&
0 /
/2
C(&
.A D 3 1.Deep RST&
/2
MR('
.A D 3 C1 30 6 30 /2 RSTM 6 /C.$it shi%t /C.$it shi%t E RSTP 6 = C(P
PR('
D .A D 3 82 0 / 82
AR('
C(A
.A D 3 1.Deep RSTA
Carry4n
82
C -pMo e
82 82
&C4"
$%&A Introd'ction 2*
2009 Xilinx, Inc. All Rights Reserved
PC4"
DSP:B 1loc)
Dynamically Programmable DSP 1p -odes
8 5ero 6 Dold P 6 A!1 Select 6 +ultiply 6 ( Select 6 Feedbac) Add 6 ?8.1it Adder 6 P (ascade Select 6 P (ascade Feedbac) Add 6 P (ascade Add 6 P (ascade +ultiply Add 6 P (ascade Add 6 P (ascade Feedbac) Add Add6 P (ascade Add Add 6 Dold P 6 Double Feedbac) Add 6 Feedbac) Add 6 +ultiply.Accumulate 6 Feedbac) Add 6 Double Feedbac) Add 6 Feedbac) Add Add 6 ( Select 6 Feedbac) Add 6 ?8.1it Adder 6 +ultiply.Add 6 Double 6 Double Add Feedbac) Add 6 Double Add 6
Op+ode
5 @ 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7
: 6 6 6 6 6 6 6 7 7 7 7 7 7 7 6 6 6 6 6 6 6 7 7 7 7 7 7 7
G ? = 6 6 6 6 6 6 6 7 7 7 7 7 7 7 6 6 6 6 6 6 6 7 7 7 7 7 7 7 6 6 6 6 6 6 6 7 7 7 7 7 7 7 6 6 6 6 6 6 6 7 7 7 7 7 7 7
2 7 6 6 6 7 6 7 7 6 7 6 6 7 6 7 7 6 6 7 6 7 7 6 7 6 6 7 6 7 7 6 6 7 6 7 7 6 7 6 6 7 6 7 7 6 6 7 6 7 7 6 7 6 6 7 6 7 7
Output
C0. (in C0. %P C (in& C0. %A!1 C (in& C0. %A E 1 C (in& C0. %( C (in& C0. %( C P C (in& C0. %A!1 C ( C (in& P(/F C0. (in P(/F C0. %P C (in& P(/F C0. %A!1 C (in& P(/F C0. %A E 1 C (in& P(/F C0. %( C (in& P(/F C0. %( C P C (in& P(/F C0. %A!1 C ( C (in& P C0. (in P C0. %P C (in& P C0. %A!1 C (in& P C0. %A E 1 C (in& P C0. %( C (in& P C0. %( C P C (in& P C0. %A!1 C ( C (in& ( C0. (in ( C0. %P C (in& ( C0. %A!1 C (in& ( C0. %A E 1 C (in& ( C0. %( C (in& ( C0. %( C P C (in& ( C0. %A!1 C ( C (in&
# Anables time-di+ision multiplexing for DSP # 1+er !B different modes # Aach ?tremeDSP Slice indi+idually controllable # .hange operation in a single cloc8 cycle # .ontrol functionality from logic= memory or processor
For Academic Use Only
$%&A Introd'ction 2+
2009 Xilinx, Inc. All Rights Reserved
DSP:B 1loc)
,seful For -ore )han DSP
-irte$.@ Family
1ptimi<ed for logic= Ambedded= Signal Processing= and 7igh-Speed .onnecti+ity
-irte$3.@ Platforms
*ogic -n.chip RAM DSP Capa$ilities Parallel 4<-s Serial 4<-s PowerPCA Processors
#2
Logic
#24
Logic/Serial
S24
DSP/Serial
F24
Emb./Serial
$%&A Introd'ction 29
2009 Xilinx, Inc. All Rights Reserved
+ultiple Platforms
# Aasy to create sub-families
6 $? J 7igh-performance logic and parallel 1 6 $?)J 7igh-performance logic with serial connecti+ity 6 S?)J Axtensi+e signal processing with serial connecti+ity 6 F?)J Axtensi+e processor oriented
@ Ambedded-oriented with 7ighest Performance Serial .apabilities
Platform
LX
Platform
LXT
Platform
SXT
Platform
FXT
# ,sers can choose the best mix of resources to optimi<e cost and performance
$%&A Introd'ction (0
2009 Xilinx, Inc. All Rights Reserved
-irte$.@ Architecture
Enhanced
259bit 259bit D8al D8al Port Port 6lock 6lock -$M -$M // 7)7* 7)7* with with )ntegrated )ntegrated ECC ECC 550 550 MHz MHz Clock Clock Management Management Tile Tile with with DCM DCM and and PLL PLL Select)* Select)* with with Chi"S+nc Chi"S+nc Technolog+ Technolog+ and and ,C)TE ,C)TE DC) DC) $d/anced $d/anced Con4ig8ration Con4ig8ration *"tion# *"tion# :5&!; :5&!; DSP DSP Slice Slice with with )ntegrated )ntegrated $L1 $L1 Tri Tri Mode Mode !0/!00/!000 !0/!00/!000 Mb"# Mb"# Ethernet Ethernet M$C# M$C#
New
Mo#t Mo#t $d/anced $d/anced High High Per4ormance Per4ormance -eal -eal 5L1T 5L1T Logic Logic 7abric 7abric
( End"oint 6lock PC) PC) E&"re## E&"re##( End"oint 6lock
S+#tem S+#tem Monitor Monitor 78nction 78nction with with 68ilt 68ilt in in $DC $DC
( %e&t %e&t 'eneration 'eneration PowerPC PowerPC( Embedded Embedded Proce##or Proce##or
Low Low Power Power 'TP0 'TP0 1" 1" to to 2.35 2.35 'b"# 'b"# High High Per4ormance Per4ormance 'T,0 'T,0 1" 1" to to 5.5 5.5 'b"# 'b"#
$%&A Introd'ction (2
2009 Xilinx, Inc. All Rights Reserved
DSP:B"
# Virtex-"S? introduced a few new impro+ements in the DSP!*A GenhancedH DSP bloc8 # )he adder bloc8 was modified to become a mulifunctional A$,3 A pattern compare was added to support the detection of saturation= o+erflow and underflow conditions # A !*-bit carry chain supports the propagation of partial sum and product carryIs so multiple DSP!*A bloc8s can be chained to gi+e higher bit precision # A$, opcodes are dynamically controlled allowing functional changes on a cloc8 cycle basis
$%&A Introd'ction ((
2009 Xilinx, Inc. All Rights Reserved
DSP:B" 1loc)
&C-+T AC-+T
PC-+T
& R('
&
/2
0 /
.A 3 D 1.Deep
/2
M R('
.A D 3 C1 30 0 30 0 / 0 =
P R('
D .A D 3 82
A R('
1;
0 /
.A D 3 1.Deep
1;
C R('
0
Carry4n C -pMo e 82
C or MC
PATT(R" D(T(CT
82
.A D
82
&C4" AC4"
PC4"
$%&A Introd'ction ()
Spartan.?
Designed for low-cost= high-+olume applications
Spartan.3
Ban8 B B an8 # B an8 C Ban8 9
: /0O 1an)s, Support for all /0O Standards including P(/3, DD*???, *SDS, mini.#-DS
Guaranteed Density +igration Fumerous parts in the same pac)age P. = P. e= P. -? and P. A?P/ASS are registered trademar8s and0or ser+ice mar8s of P. -S G3
$%&A Introd'ction (+
2009 Xilinx, Inc. All Rights Reserved
+odified Slices
S$ .A- and S$ .A$
Slice ?CNC
Slice ?BNC
Slice ?BNB
Fast .onnects
S7 F)1,)
.2
.2
$%&A Introd'ction (.
2009 Xilinx, Inc. All Rights Reserved
$%&A Introd'ction (,
2009 Xilinx, Inc. All Rights Reserved
Spartan.?A
Spartan-#A DSP is a superset of Spartan-#A
# Power -anagement
6 7ibernate and Suspend modes
4rue ?,?v PPDSI=@ PPDSI?? 4+DSI?? DD* = Dot S apping +inimi9ed Po er *ails
# -inimi<ed power rails # 2ew 01 Standards # B/A- with Byte write enable # SP 0BP Flash nterface # 7ot swapping
Ban8 B
Power Power Management Management
Ban8 9
$%&A Introd'ction (9
2009 Xilinx, Inc. All Rights Reserved
Spartan.?A DSP
# ncorporates the primary features from earlier Virtex family DSP!* bloc8s # )he DSP!*A bloc8 supports full -A. support with a preadder stage= multiplier= and add0accumulate state # Dedicated DSP bloc8 offer the lowest cost0-A. in a FPGA
$%&A Introd'ction )0
2009 Xilinx, Inc. All Rights Reserved
D!%),A 9loc5
ncorporates primary features from V! DSP!* and includes a pre-adder stage
6 Application optimi<ed capacity 6 ntegrated pre-adder optimi<ed for filters 6 9"B -7< operation= standard speed grade 6 .ompatible with Virtex-DSP
@ #!BBA 6 C9& DSP!*As @ C*BBA 6 *! DSP!*As
Architecture Alignment
-irte$.8 FPGAs Spartan.8 FPGAs
Aar5et !i=e
@igh logic densit8 D serial connectivit8 "ltra high6speed serial connectivit8 D logic D!% D logic D serial connectivit8
6 Pattern detector
or)loads
@
Reg
-A. ,nit
C/
.B =
C1
C3
= PC1;;
@
Data 1ut
Data 1ut
< = MSPS
# -any low sample rate channels can be multiplexed :e3g3 )D-; and processed in the FPGA= at a high rate # nterpolation :using <eros; can also dri+e sample rates higher
$%&A Introd'ction ),
2009 Xilinx, Inc. All Rights Reserved
1 1 1 1
2 2 2 2 2 2
1 1
2 2 2 2
D)
D)
Spee
-ptimize %orH
Cost
$%&A Introd'ction )9
2009 Xilinx, Inc. All Rights Reserved
SD*A+
+A(s DSP +A(s Procs3 ontrol ontrol
Quad )/x
PC er w Po
FPGA
FPGA
1S+ Car3
!DRAA
Car3
A0D A0D
SD*A+
PowerPC PowerPC
(ontrol
P#:
ASSP
?,7=@ Gbps
D0A D0A
$%&A Introd'ction *0
(ontrol
(O*1A
!DRAA
2009 Xilinx, Inc. All Rights Reserved
C/
.B =
C1
C3
C8
C;
.B =
C0
CC
C30
C3/
@ @
@ @
@
>ariable Latenc+
# #9 )AP filter implementation will Data *8t 7abric and -o8ting Ma+ consume C=!&C logic cells to -ed8ce Per4ormance implement adders in fabric
$%&A Introd'ction *2
2009 Xilinx, Inc. All Rights Reserved
Data n
C0
C/
C1
C3
C8
C;
C0
CC
C30
C3/
@
Data 1ut
Reg
Reg
$%&A Introd'ction *(
2009 Xilinx, Inc. All Rights Reserved
Reg
Reg
Reg
Reg
Reg
Reg
Reg
?6?&33@&A&B0C>&;'D&>:=6&E-F*G'&H*,I&)JEK&
Register Packing
Altera Stratix III, Stratix IV Adaptive Logic Modules (ALM) Arithmetic Mode
Performing Operation
R = (X < Y) ? Y : X
LUT-Register Mode
Register Chain
SoftCore : NiosII
Plan
Introduction Outils et methodes de conception FPGA ` Conception dun systeme programmable SoftCore : NiosII Integration dun periph erique - Mapping memoire
Sysprog
Hiver 2013
230 / 231
Plan
Introduction Outils et methodes de conception FPGA ` Conception dun systeme programmable SoftCore : NiosII Integration dun periph erique - Mapping memoire
Sysprog
Hiver 2013
231 / 231