13.07.2015 Views

Transparents du cours - VHDL - MAE - Mémoire - Free

Transparents du cours - VHDL - MAE - Mémoire - Free

Transparents du cours - VHDL - MAE - Mémoire - Free

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

SysprogBertrand GranadoEnseignant-ChercheurLIP6 / UPMCMel : Bertrand.Granado@upmc.frHiver 2014Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 1 / 298


Plan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à états3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOIntégration d’un périphérique - Mapping mémoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 2 / 298


Outils et méthodes de conception<strong>VHDL</strong>Plan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 3 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong>1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à états3 FPGA4 Conception d’un système programmablePort JtagBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 4 / 298


Outils et méthodes de conception<strong>VHDL</strong>BibliographieThe designer’s guide to <strong>VHDL</strong> - Peter Ashenden, Morgan Kaufman(http://www.ashenden.com.au/designers-guide/DG.html)Alain Vachoux : Digital System Modeling -http://lsmwww.epfl.ch/design languages/Cours Master SdI - Patrick Garda (patrick.garda@upmc.fr)RessourcesHamburg <strong>VHDL</strong> archive :http://tech-www.informatik.uni-hamburg.de/vhdl/vhdl.htmhttp://www.geocities.com/SiliconValley/Heights/8831/websrc.htmlBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 5 / 298


Outils et méthodes de conception<strong>VHDL</strong>Outils<strong>Free</strong> Model Foundation - http://www.freemodelfoundry.com/Opencores - http://www.opencores.orgXILINX : ISE - http://www.xilinx.com/ALTERA : Quartus - http://www.altera.com/Mentor Graphics : HDL Designer, ModelSim, Precision -http://www.mentor.com/Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 6 / 298


Outils et méthodes de conception<strong>VHDL</strong>Historique<strong>VHDL</strong> : VHSIC Hardware Description Language HistoriqueLangage intro<strong>du</strong>it dans le cadre <strong>du</strong> projet DARPA VHSIC : Very HighSpeed Integrated CircuitsIBM, Texas Instruments et Intermetrics ont obtenu le contrat en 1983 etpro<strong>du</strong>it <strong>VHDL</strong> “7.2” en 1985Proposé à IEEE pour normalisation en 1986Norme en 1987 : IEEE Std 1076-1987, dit <strong>VHDL</strong>-87Norme révisée en 1992 : IEEE Std 1076-1993, dit <strong>VHDL</strong>-93Normalisation simultanée de IEEE 1164-1993, dit std logic 1164Norme révisée en 2002 IEEE Std 1076-2002, <strong>VHDL</strong> - 2002Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 7 / 298


Outils et méthodes de conception<strong>VHDL</strong>Flot de conception <strong>VHDL</strong>Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 8 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - RTLRTL : Register Transfert LevelDescription SynthétisableUtilisable pour configurer un circuit logique programmableSous ensemble de constructions <strong>VHDL</strong>Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 9 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - BaseBlocs de base1 Les bibliothèques (ou librairies)2 L’entité : Décrit l’interfaçage <strong>du</strong> composant3 L’architecture : Décrit le fonctionnement <strong>du</strong> composantBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 10 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - BaseBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 11 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - BaseBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 11 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - Bibliothèquelibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 12 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - Entitétype, subtype, constant,signal, subprogramconcurrent proce<strong>du</strong>recall, assertion,passive processcontext-clauseentity entity-name is[ generic ( parameter-list ) ][ port ( port-list ) ; ][ local-declarations ][ beginpassive-concurrent-statement ]end [ entity ] [ entity-name ] ;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 13 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - Entitégeneric(parametre-name ,...: parametre-type [:=default-value];...parametre-name ,...: parametre-type [:=default-value]);Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 14 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - Entitéport([signal] signal-name ,... : mode signal-type;...[signal] signal-name ,... : mode signal-type);Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 15 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - Entitéentity MON-ET isgeneric (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 2014 16 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - Architectureconcurrent proce<strong>du</strong>recall, assertion,passive processarchitecture archi-name of entity-name is[ local-declaration ]beginconcurrent-statementend [ architecture ] [ archi-name ] ;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 17 / 298


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - L’architecturearchitecture FLOT of MON-ET isbegins


Outils et méthodes de conception<strong>VHDL</strong><strong>VHDL</strong> - L’architectureUne architecture décrit le fonctionnement d’une entité de conceptionC’est-à-dire la détermination des sorties en fonction des entréesUne architecture peut être décrite de différentes manières :Flot de donnéesStructurelleComportementaleRTL : Register Transfer LevelBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 19 / 298


Outils et méthodes de conceptionDifférents types de descriptionPlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 20 / 298


1 Intro<strong>du</strong>ctionOutils et méthodes de conceptionDifférents types de description2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à états3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 21 / 298


Outils et méthodes de conceptionDifférents types de descriptionArchitecture Flot de donnéesUne architecture “flot de données” (dataflow) décrit un circuit au niveaudes portes logiquesElle représente le flot des informations des entrées (binaires) vers lessorties à l’aide d’opérateurs combinatoires :not, and, nand, or, nor, xor, xnorLes signaux se propagent de façon asynchroneLa détermination des valeurs est faite par l’instruction d’affectation dessignaux


Outils et méthodes de conceptionDifférents types de descriptionArchitecture Flot de donnéesarchitecture flot of addc isbeginsum


Outils et méthodes de conceptionDifférents types de descriptionArchitecture StructurelleUtilise des composants déjà définisL’architecture structurelle définit alors la structure comme un assemblaged’instances de composants reliées par des signauxElle correspond à la description textuelle d’un schéma utilisant descellules de bibliothèqueBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 24 / 298


Outils et méthodes de conceptionDifférents types de descriptionArchitecture Structurelleentity add4 is port (a, b : in std_logic_vector (3 downto 0) ;s : out std_logic_vector (4 downto 0) )end entity add4 ;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 25 / 298


Outils et méthodes de conceptionDifférents types de descriptionArchitecture Structurellearchitecture struct of add4 issignal c : std_logic_vector (3 downto 1) ;beginaddc_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)tport 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 ;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 26 / 298


Outils et méthodes de conceptionDifférents types de descriptionArchitecture Structurellearchitecture struct of add4 issignal c : std_logic_vector (3 downto 1) ;beginaddc_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)tport 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 ;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 27 / 298


Outils et méthodes de conceptionDifférents types de descriptionL’instantiation de composants PORT MAPlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity demiadd isport( a, b : in std_logic;c, s : out std_logic);end entity demiadd;architecture flot of demiadd isbegins


Outils et méthodes de conceptionDifférents types de descriptionL’instantiation de composants PORT MAPlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity add isport( a, b, cin : in std_logic;cout, s : out std_logic);end entity add;architecture struct of add issignal stmp, ctmp1,ctmp2 : std_logic;begindemiadd1 : entity work.demiadd(flot)port map(a,b,stmp,ctmp1);demiadd2 : entity work.demiadd(flot)port map(cin,stmp,s,ctmp2);cout


Outils et méthodes de conceptionDifférents types de descriptionArchitecture ComportementaleL’architecture est représentée par un ensemble de processus séquentielsqui s’exécutent simultanémentChaque processus est en attente jusqu’à ce que l’une de ses entréeschange de valeurLorsque cela se pro<strong>du</strong>it le code <strong>du</strong> processus est exécutéséquentiellementLorsqu’on arrive à la fin d’un processus on recommence son exécution audébutLa réalisation électronique de l’architecture n’est pas décriteBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 30 / 298


Outils et méthodes de conceptionDifférents types de descriptionLe ProcessPermet de réaliser des parties séquentiellesIntro<strong>du</strong>it un niveau d’abstraction proche de l’informatiqueBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 31 / 298


Outils et méthodes de conceptionDifférents types de descriptionLe Processlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity reg isport( 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 isbeginclocked: process(d,hor) isbeginif (hor’event and hor = ’1’) thenq


Outils et méthodes de conceptionDifférents types de descriptionLes variablesNiveau d’abstraction niveau algorithmiquePas assimilable à un filBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 33 / 298


Outils et méthodes de conceptionDifférents types de descriptionL’affectation de variableslibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity reg isport( 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 isbeginclocked: process(d,hor) isvariable q_int : std_logic_vector(7 downto 0);beginif (hor’event and hor = ’1’) thenq_int :=d;end if;q


Outils et méthodes de conceptionDifférents types de descriptionLes structures de contrôleLes structures ConditionnellesLa structure IFLa structure CASELes structure de Répétitions LOOPLa structure FORBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 35 / 298


Outils et méthodes de conceptionDifférents types de descriptionConditionnelle IFif condition1 theninstructions séquentielles 1elsif condition2 theninstructions séquentielles 2elsif condition3 theninstructions séquentielles 3elseinstructions séquentielles nend if ;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 36 / 298


Outils et méthodes de conceptionDifférents types de descriptionConditionnelle IFlibrary ieee;use ieee.std_logic_1164.all;entity decodeur isport ( choix : in std_logic_vector(1 downto 0);decode : out std_logic_vector(3 downto 0));end entity decodeur;architecture comport of decodeurdecodage : process(choix) isbeginIF (choix= "00") THEN decode


Outils et méthodes de conceptionDifférents types de descriptionConditionnelle IFarchitecture behaviour of addc isbegincalc_sum : process (a, b, cin) isbeginif ( ((a + b + cin) rem 2) = 0) then sum


Outils et méthodes de conceptionDifférents types de descriptionConditionnelle CASEcase expression iswhen VALUE-1 =>instructions séquentielles 1when VALUE-2 — VALUE-3 =>instructions séquentielles 2when VALUE-M to VALUE-N =>instructions séquentielles 3when others =>instructions séquentielles nend case ;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 39 / 298


Outils et méthodes de conceptionDifférents types de descriptionConditionnelle CASElibrary ieee;use ieee.std_logic_1164.all;entity decodeur isport ( choix : in std_logic_vector(1 downto 0);decode : out std_logic_vector(3 downto 0));end entity decodeur;architecture comport of decodeurdecodage : process(choix) isbeginCASE choixWHEN "00" => decode decode decode decode NULL;END CASE;end process decodage;end architecture comport;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 40 / 298


Outils et méthodes de conceptionDifférents types de descriptionBoucle FOR[loop label]for identifier in discrete range loop– instructions <strong>du</strong> corps de boucleend loop [loop label] ;La variable identifier estauto-déclaréeelle n’est visible que dans le corps de la boucleBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 41 / 298


Outils et méthodes de conceptionLes types en <strong>VHDL</strong>Plan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 43 / 298


1 Intro<strong>du</strong>ctionOutils et méthodes de conceptionLes types en <strong>VHDL</strong>2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à états3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 44 / 298


Outils et méthodes de conceptionLes types en <strong>VHDL</strong>Les différents Type <strong>VHDL</strong>Les types originauxBit is (’0’, ’1’);Bit vector is array (Natural range ) of Bit;Boolean is (false, true);CharacterIntegerNatural is Integer range 0 to Integer’highPositive is Integer range 1 to Integer’highRealString is array (Positive range ) of CharacterTimeunitsfs; -- femtosecondeps = 1000 fs; -- picosecondens = 1000 ps; -- nanosecondeus = 1000 ns; -- microsecondems = 1000 us; -- millisecondesec = 1000 ms; -- secondemin = 60 sec; -- minutehr = 60 min; -- heureend units;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 45 / 298


Outils et méthodes de conceptionLes types en <strong>VHDL</strong>Les différents Type <strong>VHDL</strong>Les types ajoutés par ieee (paquetage 1164)std ulogic is (’U’, -- Non Initialisé - Non synthétisé’X’, -- Forçage Indéterminé - Non synthétisé’0’, -- Forçage à 0 - Synthèse = 0’1’, -- Forçage à 1 - Synthèse = 1’Z’, -- Haute Impedance - Synthèse = Z’W’, -- Faible Indéterminé - Non synthétisé’L’, -- Faible à 0 - Synthèse = 0’H’, -- Faible à 1 - Synthèse = 1’-’ -- Peu Importe - Non synthétiséstd ulogic vector is array ( natural range ) ofstd ulogic;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 46 / 298


Outils et méthodes de conceptionLes types en <strong>VHDL</strong>Std logic type résolu de std ulogic’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’Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 47 / 298


Outils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>Plan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 48 / 298


1 Intro<strong>du</strong>ctionOutils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à états3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 49 / 298


Outils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>Les variablesLes variables sont utilisées dans les instructions séquentiellesElles ne correspondent à aucune réalité électroniqueElles jouent le rôle des variables dans un langage de programmationElles ont une portée limitée au processus dans lequel elles sont déclaréesElles sont typéesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 50 / 298


Outils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>Les variablesAffectationSymbole d’affectation de variables :=L’affectation d’une variable est instantanéeUtilisationAffectation d’un signal à une variableExécution d’un algorithme séquentielAffectation d’une variable à un signalAutre utilisation : identificateur de boucleBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 51 / 298


Outils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>Les signauxLes signaux représentent les données physiques échangées entre lesmo<strong>du</strong>les (anglais data signal)Chaque signal sera matérialisé dans le circuit final par une équipotentielleExemples :ports d’entrées et de sorties d’une entitésignaux internes à une architectureBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 52 / 298


Outils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>Les signauxInstruction d’affectation de signaux :s


Outils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>Les signauxChaque signal a un type, comme dans un langage structuréLe type définit l’ensemble des valeurs que peut prendre le signal.Les signaux de type synthétisable sont synthétisables.<strong>VHDL</strong> est fortement typé, pas de conversion automatiqueNécessité d’avoir re<strong>cours</strong> à des fonctions de conversionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 54 / 298


Outils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>Les signauxTypes énuméréstype boolean is (false, true) ;type character is (liste des caractères)Tous les caractères ISO 8 bitsUne constante caractère est notée ’A’type bit is (’0’, ’1’) ;type severity level is (note, warning, error, failure) ;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 55 / 298


Outils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>Les signauxEntiers :type integer is range -2147483 to 2147482 ;subtype positive is integer range 1 to integer’high ;subtype natural is integer range 0 to integer’high ;Remarques sur entiers :Valeurs négatives codées en complément à 2Entiers synthétisés comme bus 32 bits par défautIntervalles :Réels :Subtype byte is integer range -128 to 127 – codé 8 bits C2type real is range $- to $+Réels pas synthétisablesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 56 / 298


Outils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>Les signauxlibrary ieee;use ieee.std_logic_1164.all;entity aff isport( a : in std_logic;d : out std_logic_vector(3 downto 0));end entity aff;architecture flot of aff issignal aint : std_logic;beginaint


Outils et méthodes de conceptionSignaux et Variables en <strong>VHDL</strong>Les opérateurs LogiquesLes opérateurs logiques :andorxornotet bit à bitou bit à bitou-exclusif bit à bitnon bit à bitLes opérateurs arithmétiques+ Addition- Soustraction* Multiplication/ Division Peu Synthétisablemod Mo<strong>du</strong>lo Pas Synthétisableexp Exponentitation Pas synthétisableBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 58 / 298


Outils et méthodes de conceptionLes tableauxPlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 59 / 298


1 Intro<strong>du</strong>ctionOutils et méthodes de conceptionLes tableaux2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à états3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 60 / 298


Outils et méthodes de conceptionLes tableauxLes TableauxDéclarationUtilisationtype nom is array (intervalle) of type de baseModélisation de bus.Modélisation de mémoires.SynthèseTableaux à 1 dimensionIndices entiers ou sous-type entiersEléments <strong>du</strong> tableau synthétisablesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 61 / 298


Outils et méthodes de conceptionLes tableauxLes TableauxTypes tableaux prédéfinistype bit vector is array (natural range ) of bit ;type string is array (positive range ) of character ;type std ulogic vector is array (natural range ) of std ulogic ;type std logic vector is array (natural range ) of std logic ;Exemples de modélisation de busSubtype byte is std logic vector (7 downto 0) ;Subtype word is std logic vector (15 downto 0) ;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 62 / 298


Outils et méthodes de conceptionGénériquePlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 63 / 298


1 Intro<strong>du</strong>ctionOutils et méthodes de conceptionGénérique2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à états3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 64 / 298


Outils et méthodes de conceptionGénériqueGenericLes paramètres génériques sont définis dans l’entité, avant les portsd’entrées-sortiesIls peuvent être utilisés :Dans l’entité après leur déclarationDans le corps de toute architecture associée à l’entitéentity MON-ET isgeneric (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 2014 65 / 298


Outils et méthodes de conceptionGénériqueGenericLa valeur <strong>du</strong> paramètre générique est précisée lors de l’instanciation del’entitéDes instances différentes peuvent utiliser des valeurs différentesentity doubleor isport (in1, in2 : in std_logic;out2 : out std_logic);end entity doubleor;architecture struct of doubleor issignal out1 : std_logic;beginGate1 : 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 2014 66 / 298


Outils et méthodes de conceptionGénériqueGenericUne valeur par défaut <strong>du</strong> paramètre générique peut être indiquée lors desa déclarationLors de l’instanciation, cette valeur peut être :Utilisée telle quelleRemplacée par une autre valeurentity dff isGeneric (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).......end architecture struct;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 67 / 298


Outils et méthodes de conceptionGénériqueGenerateL’instruction concurrente generate permet de <strong>du</strong>pliquer des instructionsconcurrentes de manière itérative ou conditionnelle.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 68 / 298


Outils et méthodes de conceptionGénériqueGenerateentity shiftreg isgeneric (nbits: positive := 8);port (clk, rst, d: in std_logic;q: out std_logic);end entity shiftreg;architecture structure of shiftreg iscomponent dff isport (clk, rst, d: in std_logic;q: out std_logic);end component dff;signal qint: std_logic _vector(1 to nbits-1);Begincell_array: for i in 1 to nbits generatefirst_cell: if i = 1 generatedff1: dff port map (clk, rst, d, qint(1));end generate first_cell;int_cell: if i > 1 and i < nbits generatedffi: dff port map (clk, rst, qint(i-1), qint(i));end generate int_cell;last_cell: if i = nbits generatedffn: 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 2014 69 / 298


Outils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>Plan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 70 / 298


1 Intro<strong>du</strong>ctionOutils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à états3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 71 / 298


Outils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>Les machines à états en <strong>VHDL</strong>Moore ou MealyUtilisation d’au moins 2 processUn process de transition de l’état futur à l’état présentUn process de détermination des sorties et de l’état futurUtilisation de type énuméréBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 72 / 298


Outils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>Machines de Moore - 2 process - EntitéLIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;USE ieee.std_logic_arith.ALL;ENTITY mae ISPORT(a : IN std_logic;hor : IN std_logic;raz : IN std_logic;);END mae ;b : OUT std_logicBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 73 / 298


Outils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>Machine de Moore - 2 process - ArchitectureARCHITECTURE diagram OF mae ISTYPE STATE_TYPE IS (Etat0,Etat1,Etat2);SIGNAL EtatPresent : STATE_TYPE ;SIGNAL EtatFutur : STATE_TYPE ;BEGINclocked : PROCESS(hor,raz)BEGIN...END PROCESS clocked;nextstate : PROCESS (EtatPresent,a)BEGIN...END PROCESS nextstate;END diagram;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 74 / 298


Outils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>Machine de Moore - 2 process - Architectureclocked : PROCESS(hor,raz)BEGINIF (raz = ’0’) THENEtatPresent


Outils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>Machine de Moore - 2 process - Architecturenextstate : PROCESS (EtatPresent,a)BEGINCASE EtatPresent ISWHEN Etat0 =>b


Outils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>Machine de Mealy - 2 process - EntitéLIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;USE ieee.std_logic_arith.ALL;ENTITY mae ISPORT(a : IN std_logic;hor : IN std_logic;raz : IN std_logic;);END mae ;b : OUT std_logicBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 77 / 298


Outils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>Machine de Mealy - 2 process - ArchitectureARCHITECTURE diagram OF mae ISTYPE STATE_TYPE IS (Etat0,Etat1,Etat2);BEGINSIGNAL EtatPresent : STATE_TYPE ;SIGNAL EtatFutur : STATE_TYPE ;clocked : PROCESS(hor,raz)BEGIN...END PROCESS clocked;nextstate : PROCESS (EtatPresent,a)BEGIN...END PROCESS nextstate;END diagram;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 78 / 298


Outils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>Machine de Mealy - 2 process - Architectureclocked : PROCESS(hor,raz)BEGINIF (raz = ’0’) THENEtatPresent


Outils et méthodes de conceptionLes Machines à Etats en <strong>VHDL</strong>Machine de Mealy - 2 process - Architecturenextstate : PROCESS (EtatPresent,a)BEGINCASE EtatPresent ISWHEN Etat0 =>b


Outils et méthodes de conceptionClause WaitPlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 81 / 298


Outils et méthodes de conceptionClause WaitLa clause Waitwait on liste de signauxun évènement sur l’un des signaux de la liste de signaux provoquel’exécution <strong>du</strong> processushalf_adder : process isbeginsum


Outils et méthodes de conceptionClause WaitLa clause Waitwait until conditioncondition est une condition booléenneCe qui se passe :Le processus est suspen<strong>du</strong> lorsqu’il arrive à l’instruction waitLe processus est relancé lorsque condition est testée et vraieListe de sensibilité de wait untilcondition est testée lorsqu’un évènement se pro<strong>du</strong>it sur l’un des signauxqui y apparaissentla liste de sensibilité est la liste des signaux qui apparaissent dans conditionwait until conditionéquivaut à : wait on liste des signaux de condition untilconditionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 83 / 298


Outils et méthodes de conceptionClause WaitLa clause Waitwait for <strong>du</strong>reeCe qui se passe :Le processus est suspen<strong>du</strong> lorsqu’il arrive à l’instruction waitLe processus est relancé après une temporisation <strong>du</strong>reeclock_gen : process isbeginclock


Outils et méthodes de conceptionClause WaitLa clause WaitWaitCe qui se passe :Le processus est suspen<strong>du</strong> lorsqu’il arrive à l’instruction waitIl reste suspen<strong>du</strong> jusqu’à la fin de la simulationExemple d’application : test bench<strong>VHDL</strong> permet de décrire dans le même langage :Le circuit à testerLa génération des signaux d’entrée.La vérification des signaux de sortie.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 85 / 298


Outils et méthodes de conceptionTest BenchPlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 86 / 298


Outils et méthodes de conceptionTest BenchTest BenchGénération de StimuliAnalyse des résultatsUtilisation de clause AssertBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 87 / 298


Outils et méthodes de conceptionTest BenchAssertASSERT conditionREPORT string SEVERITY severity level;check_setup: PROCESS (clk, d)BEGINIF (clk’EVENT AND clk=’1’) THEN -- test si front monASSERT d’STABLE(setup_time) -- regarde si d esREPORT "Setup Violation..." -- affiche uSEVERITY WARNING;END IF;END PROCESS check_setup;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 88 / 298


Outils et méthodes de conceptionTest BenchAssertNiveaux de sévérité :Note : utilisé pour information seulement”Note : Chargement de données d’un fichier”Warning : utilisé pour fournir une information sur une erreur en instance”Warning : Détection d’un pic”Error : utilisé pour information seulement”Error : Violation <strong>du</strong> temps d’initialisation”Failure : raporte une grosse erreur”Failure : Ligne RESET instable”Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 89 / 298


Outils et méthodes de conceptionTest BenchTestBenchBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 90 / 298


Outils et méthodes de conceptionTest BenchTestBenchBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 91 / 298


Outils et méthodes de conceptionTest BenchTestBenchBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 92 / 298


Outils et méthodes de conceptionTest BenchTestBenchBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 93 / 298


Outils et méthodes de conceptionTest BenchTestBenchBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 94 / 298


Outils et méthodes de conceptionTest BenchTestBenchBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 95 / 298


Outils et méthodes de conceptionTest BenchTestBenchBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 96 / 298


Outils et méthodes de conceptionTest BenchTestBenchBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 97 / 298


Outils et méthodes de conceptionSimulationPlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 98 / 298


Outils et méthodes de conceptionSimulationSimulation EvénementielleInitialisation1 Assign initial values to signals and variables.2 T c = 0ns, δ = 03 Execute all processes until they suspend.4 Determine next time T n according to 4.Cycle1 Tc = Tn.2 Update signals.3 Execute all processes sensitive to updated signals.4 Determine next time Tn:if pending transactions at current time: δ = δ + 1 then 2if no more pending transactions or Tn = time’high then STOPelse T n = time of next earliest pending transaction, δ = 05 Execute postponed processes.Bertrand6 Granado gotoEnseignant-Chercheur 1.(LIP6 / UPMC) Sysprog Hiver 2014 99 / 298


Outils et méthodes de conceptionPaquetage, Procé<strong>du</strong>re et FonctionPlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 100 / 298


Outils et méthodes de conceptionPaquetage, Procé<strong>du</strong>re et FonctionPaquetagepackage proc_pkg issubtype 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 isport (inar : in darray;outar: out darray);end entity procstmt;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 101 / 298


Outils et méthodes de conceptionPaquetage, Procé<strong>du</strong>re et FonctionProcé<strong>du</strong>rearchitecture a of procstmt isbeginprocess (inar)proce<strong>du</strong>re swap (d: inout darray; l, h: in postitive) isvariable tmp: data;beginif d(l) > d(h) thentmp := d(l);d(l) := d(h);d(h) := tmp;end if;end swap;variable tmpar: darray;begintmpar := inar;swap(tmpar,1,2);swap(tmpar,2,3);swap(tmpar,1,2);outar


Outils et méthodes de conceptionPaquetage, Procé<strong>du</strong>re et FonctionFonctionentity parity_check isgeneric (NBITS: positive := 8);port (data: in bit_vector(NBITS-1 downto 0);prty: out bit);end entity parity_check;architecture func of parity_check isbeginprocess (data)function parity (bv: bit_vector) return bit isvariable result: bit;beginresult := ’0’;for i in bv’range loopresult := result xor bv(i); -- odd parityend loop;return result;end function parity;beginprty


Outils et méthodes de conceptionPaquetage, Procé<strong>du</strong>re et FonctionFonction de conversionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 104 / 298


Outils et méthodes de conceptionMachines à étatsPlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception<strong>VHDL</strong>Différents types de descriptionLes types en <strong>VHDL</strong>Signaux et Variables en <strong>VHDL</strong>Les tableauxGénériqueLes Machines à Etats en <strong>VHDL</strong>Clause WaitTest BenchSimulationPaquetage, Procé<strong>du</strong>re et FonctionMachines à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 105 / 298


Outils et méthodes de conceptionMachines à étatsSystème NumériqueBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 106 / 298


Outils et méthodes de conceptionMachines à étatsSystème NumériqueBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 106 / 298


Outils et méthodes de conceptionMachines à étatsDéfinition des systèmes électroniquesUn système électronique est caractérisé parBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 107 / 298


Outils et méthodes de conceptionMachines à étatsDéfinition des systèmes électroniquesUn système électronique est caractérisé parSes entrées : e 0 ,...,e i ,...,e n−1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 107 / 298


Outils et méthodes de conceptionMachines à étatsDéfinition des systèmes électroniquesUn système électronique est caractérisé parSes entrées : e 0 ,...,e i ,...,e n−1Son état électrique EBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 107 / 298


Outils et méthodes de conceptionMachines à étatsDéfinition des systèmes électroniquesUn système électronique est caractérisé parSes entrées : e 0 ,...,e i ,...,e n−1Son état électrique ESes sorties : s 0 ,...,s i ,...,s n−1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 107 / 298


Outils et méthodes de conceptionMachines à étatsDéfinition des systèmes électroniquesUn système électronique est caractérisé parSes entrées : e 0 ,...,e i ,...,e n−1Son état électrique ESes sorties : s 0 ,...,s i ,...,s n−1Il existe deux type de systèmes électroniquesLes systèmes combinatoires construits à l’aide de logique combinatoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 107 / 298


Outils et méthodes de conceptionMachines à étatsDéfinition des systèmes électroniquesUn système électronique est caractérisé parSes entrées : e 0 ,...,e i ,...,e n−1Son état électrique ESes sorties : s 0 ,...,s i ,...,s n−1Il existe deux type de systèmes électroniquesLes systèmes combinatoires construits à l’aide de logique combinatoireLes systèmes séquentiels construits à l’aide de logique séquentielleBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 107 / 298


Outils et méthodes de conceptionMachines à étatsDéfinition des systèmes électroniquesUn système électronique est caractérisé parSes entrées : e 0 ,...,e i ,...,e n−1Son état électrique ESes sorties : s 0 ,...,s i ,...,s n−1Il existe deux type de systèmes électroniquesLes systèmes combinatoires construits à l’aide de logique combinatoireLes systèmes séquentiels construits à l’aide de logique séquentielleBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 107 / 298


Outils et méthodes de conceptionMachines à étatsLogique CombinatoireDéfinition :Un circuit électronique est dit combinatoire si ses sorties sont déterminées parla combinaison de ses variables d’entrées et ceci après un temps fini. L’étatd’un système est donc défini par la combinaison des variablese 0 ,...,e i ,...,e n−1 .Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 108 / 298


Outils et méthodes de conceptionMachines à étatsLogique Combinatoiree 1eCircuitis 1Combinatoiree ns is nBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 109 / 298


Outils et méthodes de conceptionMachines à étatsLogique Combinatoiree 1eCircuitisCombinatoire1e ns itptps’ 1s’ is ntps’ nBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 109 / 298


Outils et méthodes de conceptionMachines à étatsLogique Combinatoiree 1eCircuitis 1Combinatoiree ns it ps nBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 109 / 298


Outils et méthodes de conceptionMachines à étatsLogique SéquentielleDéfinition :Un circuit électronique est dit séquentiel si ses sorties sont déterminées nonseulement par la combinaison de ses variables d’entrées, mais aussi par laséquence des combinaisons précédentes de ses entrées et par l’état initial <strong>du</strong>système.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 110 / 298


Outils et méthodes de conceptionMachines à étatsLogique SéquentielleIl apparaît dès lors que :Une même combinaison de e 0 ,...,e i ,...,e n−1 peut engendrer différentsétats <strong>du</strong> système.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 111 / 298


Outils et méthodes de conceptionMachines à étatsLogique SéquentielleIl apparaît dès lors que :Une même combinaison de e 0 ,...,e i ,...,e n−1 peut engendrer différentsétats <strong>du</strong> système.Un système séquentiel est un système combinatoire dee 0 ,...,e i ,...,e n−1 et de y 0 ,...,y i ,...,y n−1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 111 / 298


Outils et méthodes de conceptionMachines à étatsLogique SéquentielleIl apparaît dès lors que :Une même combinaison de e 0 ,...,e i ,...,e n−1 peut engendrer différentsétats <strong>du</strong> système.Un système séquentiel est un système combinatoire dee 0 ,...,e i ,...,e n−1 et de y 0 ,...,y i ,...,y n−1y 0 ,...,y i ,...,y n−1 sont des variables internes indiquant l’état présent <strong>du</strong>systèmeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 111 / 298


Outils et méthodes de conceptionMachines à étatsLogique SéquentielleIl apparaît dès lors que :Une même combinaison de e 0 ,...,e i ,...,e n−1 peut engendrer différentsétats <strong>du</strong> système.Un système séquentiel est un système combinatoire dee 0 ,...,e i ,...,e n−1 et de y 0 ,...,y i ,...,y n−1y 0 ,...,y i ,...,y n−1 sont des variables internes indiquant l’état présent <strong>du</strong>systèmeLes entrées e 0 ,...,e i ,...,e n−1 et les variables internesy 0 ,...,y i ,...,y n−1 préparent l’état futur <strong>du</strong> système.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 111 / 298


Outils et méthodes de conceptionMachines à étatsLogique Séquentiellee 1e ie nCircuitCombinatoiret ps 1s is ny 1s’ 1s’ is’ ny’ 1yy’ iiyy’ n nCircuit SéquentielBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 112 / 298


Outils et méthodes de conceptionMachines à étatsLogique Séquentielle - Système Séquentiel Asynchronee 1e ie nCircuitCombinatoiret ps 1s is ny 1s’ 1s’ is’ ny’ 1yy’ iiyy’ n nCircuit SéquentielBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 113 / 298


Outils et méthodes de conceptionMachines à étatsLogique Séquentielle - Système Séquentiel Synchronee 1e ie nCircuitCombinatoires 1s is ny 1s’ 1s’ is’ ny’D Q 1yy’ iiD Qyy’ n n D QCircuit SéquentielBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 114 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsLes combinaisons des entrées con<strong>du</strong>isent à un nombre fini decombinaisons de sortie.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 115 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsLes combinaisons des entrées con<strong>du</strong>isent à un nombre fini decombinaisons de sortie.D’où l’appelation machine à nombre d’états finis ou Machine A Etats.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 115 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsLes combinaisons des entrées con<strong>du</strong>isent à un nombre fini decombinaisons de sortie.D’où l’appelation machine à nombre d’états finis ou Machine A Etats.Vecteur d’entrée : Combinaison des variables d’entréeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 115 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsLes combinaisons des entrées con<strong>du</strong>isent à un nombre fini decombinaisons de sortie.D’où l’appelation machine à nombre d’états finis ou Machine A Etats.Vecteur d’entrée : Combinaison des variables d’entréeVecteur de sortie : Combinaison des variables de sortieBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 115 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsNotations :Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 116 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsNotations :Entrée : EBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 116 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsNotations :Entrée : EEtat Présent : EPBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 116 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsNotations :Entrée : EEtat Présent : EPEtat Futur : EFBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 116 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsNotations :Entrée : EEtat Présent : EPEtat Futur : EFSortie : SBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 116 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsNotations :Entrée : EEtat Présent : EPEtat Futur : EFSortie : SDefinitionsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 116 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsNotations :Entrée : EEtat Présent : EPEtat Futur : EFSortie : SDefinitionsEtat : Indicateur de position dans le tempsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 116 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsNotations :Entrée : EEtat Présent : EPEtat Futur : EFSortie : SDefinitionsEtat : Indicateur de position dans le tempsRegistre d’Etat : Composé de bascules permettant de mémoriser lesvaleurs des étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 116 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsNotations :Entrée : EEtat Présent : EPEtat Futur : EFSortie : SDefinitionsEtat : Indicateur de position dans le tempsRegistre d’Etat : Composé de bascules permettant de mémoriser lesvaleurs des étatsEtat Présent : sortie stable <strong>du</strong> registre d’état à l’instant présentBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 116 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsNotations :Entrée : EEtat Présent : EPEtat Futur : EFSortie : SDefinitionsEtat : Indicateur de position dans le tempsRegistre d’Etat : Composé de bascules permettant de mémoriser lesvaleurs des étatsEtat Présent : sortie stable <strong>du</strong> registre d’état à l’instant présentEtat Futur : état dans lequel se trouvera la machine après une impulsionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 116 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsTable de transition : deux parties indiquant le présent et le futur.E : Entrée à l’instant nBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 117 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsTable de transition : deux parties indiquant le présent et le futur.E : Entrée à l’instant nEP : Etat Présent à l’instant nBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 117 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsTable de transition : deux parties indiquant le présent et le futur.E : Entrée à l’instant nEP : Etat Présent à l’instant nEF : Etat Suivant à l’instant n + 1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 117 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsTable de transition : deux parties indiquant le présent et le futur.E : Entrée à l’instant nEP : Etat Présent à l’instant nEF : Etat Suivant à l’instant n + 1S : Fonction de Sortie à l’instant n + 1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 117 / 298


Outils et méthodes de conceptionMachines à étatsMachines à étatsTable de transition : deux parties indiquant le présent et le futur.E : Entrée à l’instant nEP : Etat Présent à l’instant nEF : Etat Suivant à l’instant n + 1S : Fonction de Sortie à l’instant n + 1Table de transitionE EP EF SEntrée Etat Présent Etat Suivant SortieAvant Impulsion HorlogeAprès Impulsion HorlogeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 117 / 298


Outils et méthodes de conceptionMachines à étatsMachines de Mealy asynchroneEPECircuitCombinatoiret pEFRegistre d’étatSignal d’HorlogeS=F(EP,E)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 118 / 298


Outils et méthodes de conceptionMachines à étatsMachines de Mealy synchroneEPECircuitCombinatoiret pEFRegistre d’étatSignal d’HorlogeS=F(EP,E)Registre de sortieS’Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 119 / 298


Outils et méthodes de conceptionMachines à étatsMachines de MooreEPECircuitCombinatoiret pEFRegistre d’étatSignal d’HorlogeS=F(EP)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 120 / 298


Outils et méthodes de conceptionMachines à étatsMachines à EtatsMachine de Mealy : S = f(E,EP) et EF = g(E,EP)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 121 / 298


Outils et méthodes de conceptionMachines à étatsMachines à EtatsMachine de Mealy : S = f(E,EP) et EF = g(E,EP)Dans un état, le vecteur sortie peut varier en fonction des valeurs <strong>du</strong>vecteur d’entréeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 121 / 298


Outils et méthodes de conceptionMachines à étatsMachines à EtatsMachine de Mealy : S = f(E,EP) et EF = g(E,EP)Dans un état, le vecteur sortie peut varier en fonction des valeurs <strong>du</strong>vecteur d’entréeMachine de Moore : S = f(EP) et EF = g(E,EP)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 121 / 298


Outils et méthodes de conceptionMachines à étatsMachines à EtatsMachine de Mealy : S = f(E,EP) et EF = g(E,EP)Dans un état, le vecteur sortie peut varier en fonction des valeurs <strong>du</strong>vecteur d’entréeMachine de Moore : S = f(EP) et EF = g(E,EP)Dans un état, le vecteur de sortie à une valeur uniqueBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 121 / 298


Outils et méthodes de conceptionMachines à étatsNotations TransitionsTransitionEPhorloge.EP.EntréeEFMEALYS0Entrée/SortieS1MOORES0/SortieEntréeS1/SortieBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 122 / 298


Outils et méthodes de conceptionMachines à étatsRéalisation des machines à étatsDeux phases principales :Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 123 / 298


Outils et méthodes de conceptionMachines à étatsRéalisation des machines à étatsDeux phases principales :Phase de conception : détermine l’architecture de la machine à étatsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 123 / 298


Outils et méthodes de conceptionMachines à étatsRéalisation des machines à étatsDeux phases principales :Phase de conception : détermine l’architecture de la machine à étatsPhase de synthèse : mise en oeuvre de l’architecture de la machine à étatBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 123 / 298


Outils et méthodes de conceptionMachines à étatsRéalisation des machines à étatsDeux phases principales :Phase de conception : détermine l’architecture de la machine à étatsPhase de synthèse : mise en oeuvre de l’architecture de la machine à étatProposition d’une méthode de conception basée sur 7 étapesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 123 / 298


Outils et méthodes de conceptionMachines à étatsMéthode de réalisation1 Spécification <strong>du</strong> cahier des charges (Crucial).Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 124 / 298


Outils et méthodes de conceptionMachines à étatsMéthode de réalisation1 Spécification <strong>du</strong> cahier des charges (Crucial).2 Détermination des états.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 124 / 298


Outils et méthodes de conceptionMachines à étatsMéthode de réalisation1 Spécification <strong>du</strong> cahier des charges (Crucial).2 Détermination des états.3 Identification des entrées et des sorties de la machine à états.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 124 / 298


Outils et méthodes de conceptionMachines à étatsMéthode de réalisation1 Spécification <strong>du</strong> cahier des charges (Crucial).2 Détermination des états.3 Identification des entrées et des sorties de la machine à états.4 Etablissement <strong>du</strong> graphe de transistion.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 124 / 298


Outils et méthodes de conceptionMachines à étatsMéthode de réalisation1 Spécification <strong>du</strong> cahier des charges (Crucial).2 Détermination des états.3 Identification des entrées et des sorties de la machine à états.4 Etablissement <strong>du</strong> graphe de transistion.5 Etablissement de la table de transistion.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 124 / 298


Outils et méthodes de conceptionMachines à étatsMéthode de réalisation1 Spécification <strong>du</strong> cahier des charges (Crucial).2 Détermination des états.3 Identification des entrées et des sorties de la machine à états.4 Etablissement <strong>du</strong> graphe de transistion.5 Etablissement de la table de transistion.6 Détermination <strong>du</strong> nombre de bascules nécessaires.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 124 / 298


Outils et méthodes de conceptionMachines à étatsMéthode de réalisation1 Spécification <strong>du</strong> cahier des charges (Crucial).2 Détermination des états.3 Identification des entrées et des sorties de la machine à états.4 Etablissement <strong>du</strong> graphe de transistion.5 Etablissement de la table de transistion.6 Détermination <strong>du</strong> nombre de bascules nécessaires.7 Détermination des équations de l’état futur et des sorties et réalisation.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 124 / 298


Outils et méthodes de conceptionMachines à étatsLes Etapes 1 à 4 : ApplicationsApplication 1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 125 / 298


Outils et méthodes de conceptionMachines à étatsLes Etapes 1 à 4 : ApplicationsApplication 1Application 2Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 125 / 298


Outils et méthodes de conceptionMachines à étatsLes Etapes 1 à 4 : ApplicationsApplication 1Application 2Application 3Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 125 / 298


Outils et méthodes de conceptionMachines à étatsLes Etapes 5 à 7Etapes quasi automatiquesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 126 / 298


Outils et méthodes de conceptionMachines à étatsLes Etapes 5 à 7Etapes quasi automatiquesBasée sur des méthodes de réalisation de systèmes électroniquesstandardsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 126 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transition : MooreE0Etat 0 E4Etat 1Bertrand Granado S0 Enseignant-Chercheur (LIP6 S2 / UPMC) Sysprog Hiver 2014 127 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transition : MooreE0TransitionsConditionnellesEtat 0 E4Etat 1Bertrand Granado S0 Enseignant-Chercheur (LIP6 S2 / UPMC) Sysprog Hiver 2014 127 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transition : MooreE0TransitionsConditionnellesEtat 0 E4Etat 1Bertrand Granado S0 Enseignant-Chercheur (LIP6 S2 / UPMC) Sysprog Hiver 2014 127 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transition : MooreE0TransitionsConditionnellesEtat 0 E4Etat 1Bertrand Granado S0 Enseignant-Chercheur (LIP6 S2 / UPMC) Sysprog Hiver 2014 127 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transistion : MooreIl existe deux types de transitions :Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 128 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transistion : MooreIl existe deux types de transitions :Les transitions conditionnelles : elles ne s’effectuent qu’en fonction d’unecertaine valeur <strong>du</strong> vecteur d’entrée et sur le front d’horloge. Il y a au moinsdeux transitions conditionnelle qui parte d’un même étatBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 128 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transistion : MooreIl existe deux types de transitions :Les transitions conditionnelles : elles ne s’effectuent qu’en fonction d’unecertaine valeur <strong>du</strong> vecteur d’entrée et sur le front d’horloge. Il y a au moinsdeux transitions conditionnelle qui parte d’un même étatLes transitions inconditionnelles : elles s’effectuent automatiquement sur lefront d’horloge. Il ne peut y avoir qu’une seule transition qui parte d’un étatlorsque celle-ci est inconditionnelleBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 128 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transition : Vecteur Entrée et SortieReprésentation condensée des entrées et des sorties : les vecteursd’entrée et de sortie.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 129 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transition : Vecteur Entrée et SortieReprésentation condensée des entrées et des sorties : les vecteursd’entrée et de sortie.Ici E dénote le vecteur d’entrée des entrées a,b et c. Lorsque a=0,b=0 etc=0 alors E=0 et on note E0, Lorsque a=0,b=0 et c=1 alors E=1 et on noteE1 ainsi de suite jusqu’ à a=1,b=1 et c=1 alors E=7 et on note E7Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 129 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transition : Vecteur Entrée et SortieReprésentation condensée des entrées et des sorties : les vecteursd’entrée et de sortie.Ici E dénote le vecteur d’entrée des entrées a,b et c. Lorsque a=0,b=0 etc=0 alors E=0 et on note E0, Lorsque a=0,b=0 et c=1 alors E=1 et on noteE1 ainsi de suite jusqu’ à a=1,b=1 et c=1 alors E=7 et on note E7Ici S dénote le vecteur de sortie des sorties x et y. Lorsque x=0 et y=0 alorsS=0 et on note S0. Lorsque x=0 et y=1 alors S=1 et on note S1. Lorsquex=1 et y=0 alors S=2 et on note S2 et lorsque x=1 et y=1 S=3 et on note S3.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 129 / 298


Outils et méthodes de conceptionMachines à étatsGraphe de Transition : Vecteur Entrée et SortieReprésentation condensée des entrées et des sorties : les vecteursd’entrée et de sortie.Ici E dénote le vecteur d’entrée des entrées a,b et c. Lorsque a=0,b=0 etc=0 alors E=0 et on note E0, Lorsque a=0,b=0 et c=1 alors E=1 et on noteE1 ainsi de suite jusqu’ à a=1,b=1 et c=1 alors E=7 et on note E7Ici S dénote le vecteur de sortie des sorties x et y. Lorsque x=0 et y=0 alorsS=0 et on note S0. Lorsque x=0 et y=1 alors S=1 et on note S1. Lorsquex=1 et y=0 alors S=2 et on note S2 et lorsque x=1 et y=1 S=3 et on note S3.Toutes les combinaisons des vecteurs ne sont pas forcément utiliséesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 129 / 298


Outils et méthodes de conceptionMachines à étatsl’horloge : entrée implicitel’horloge est une entréeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 130 / 298


Outils et méthodes de conceptionMachines à étatsl’horloge : entrée implicitel’horloge est une entréeMachine à état synchroneBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 130 / 298


Outils et méthodes de conceptionMachines à étatsl’horloge : entrée implicitel’horloge est une entréeMachine à état synchroneHorloge = entrée toujours présenteBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 130 / 298


Outils et méthodes de conceptionMachines à étatsl’horloge : entrée implicitel’horloge est une entréeMachine à état synchroneHorloge = entrée toujours présenteLe changement d’état s’effectue sur un front d’horlogeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 130 / 298


Outils et méthodes de conceptionMachines à étatsExemple MooreE0Etat 0 E4Etat 1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 131 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : table de transition complèteE EP EFE0 Etat 0 Etat 0E1 Etat 0 XE2 Etat 0 XE3 Etat 0 XE4 Etat 0 Etat 1E5 Etat 0 XE6 Etat 0 XE7 Etat 0 X... ... ...Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 132 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : table de transition ré<strong>du</strong>iteE EP EFE0 Etat 0 Etat 0E4 Etat 0 Etat 1X Etat 1 Etat 2E1 Etat 2 Etat 2E2 Etat 2 Etat 0Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 133 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : CodageDétermination <strong>du</strong> nombre de basculesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 134 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : CodageDétermination <strong>du</strong> nombre de bascules⌈log 2 (nombred ′ états)⌉Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 134 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : CodageDétermination <strong>du</strong> nombre de bascules⌈log 2 (nombred ′ états)⌉⌈log 2 (3)⌉ = 2Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 134 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : CodageDétermination <strong>du</strong> nombre de bascules⌈log 2 (nombred ′ états)⌉⌈log 2 (3)⌉ = 2Bascule 0 avec D 0 et Q 0 et Bascule 1 avec D 1 et Q 1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 134 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : CodageDétermination <strong>du</strong> nombre de bascules⌈log 2 (nombred ′ états)⌉⌈log 2 (3)⌉ = 2Bascule 0 avec D 0 et Q 0 et Bascule 1 avec D 1 et Q 1CodageEtat Q 1 Q 0 Vecteur E a b c Vecteur S x yEtat 0 0 0 E0 0 0 0 S0 0 0Etat 1 0 1 E1 0 0 1 S1 0 1Etat 2 1 0 E2 0 1 0 S2 1 0E3 0 1 1 S3 1 1E4 1 0 0E5 1 0 1E6 1 1 0E7 1 1 1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 134 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : table de transition (équations)E EP EFE0 Etat 0 Etat 0E4 Etat 0 Etat 1X Etat 1 Etat 2E1 Etat 2 Etat 2E2 Etat 2 Etat 0E EP EFa b c Q1 n Q0 n Q n+11Q n+100 0 0 0 0 0 01 0 0 0 0 0 1x x x 0 1 1 00 0 1 1 0 1 00 1 0 1 0 0 0Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 135 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : Equations Bascules Registre d’étatQ n+10:a 0 0 0 0 1 1 1 1b 0 0 1 1 1 1 0 0Q1 n Q0 n c 0 1 1 0 0 1 1 00 0 0 x x x x x x 10 1 0 0 0 0 0 0 0 01 1 x 0 x 0 x x x x1 0 x 0 x 0 x x x xQ n+11:a 0 0 0 0 1 1 1 1b 0 0 1 1 1 1 0 0Q1 n Q0 n c 0 1 1 0 0 1 1 00 0 0 x x x x x x 00 1 1 1 1 1 1 1 1 11 1 x x x x x x x x1 0 x 1 x 0 x x x xBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 136 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : Equations sortiesx :Q n 1 Q n 0 0 10 0 11 0 xy :Q n 1 Q n 0 0 10 0 01 1 xBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 137 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : EquationsQ n+10=Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 138 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : EquationsQ n+10=Q n+11=Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 138 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : EquationsQ n+10=Q n+11=x =Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 138 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : EquationsQ n+10=Q n+11=x =y =Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 138 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : EquationsQ n+10=Q n+11=x =y =SchémaBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 138 / 298


Outils et méthodes de conceptionMachines à étatsExemple MealyBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 139 / 298


Outils et méthodes de conceptionMachines à étatsExemple Mealy : CodageDétermination <strong>du</strong> nombre de basculesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 140 / 298


Outils et méthodes de conceptionMachines à étatsExemple Mealy : CodageDétermination <strong>du</strong> nombre de bascules⌈log 2 (nombred ′ états)⌉Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 140 / 298


Outils et méthodes de conceptionMachines à étatsExemple Mealy : CodageDétermination <strong>du</strong> nombre de bascules⌈log 2 (nombred ′ états)⌉⌈log 2 (2)⌉ = 1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 140 / 298


Outils et méthodes de conceptionMachines à étatsExemple Mealy : CodageDétermination <strong>du</strong> nombre de bascules⌈log 2 (nombred ′ états)⌉⌈log 2 (2)⌉ = 1Bascule 0 avec D 0 et Q 0Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 140 / 298


Outils et méthodes de conceptionMachines à étatsExemple Mealy : CodageDétermination <strong>du</strong> nombre de bascules⌈log 2 (nombred ′ états)⌉⌈log 2 (2)⌉ = 1Bascule 0 avec D 0 et Q 0CodageEtat Q 0 Vecteur E a Vecteur S x yEtat 0 0 E0 0 S0 0 0Etat 1 1 E1 1 S1 0 1S2 1 0S3 1 1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 140 / 298


Outils et méthodes de conceptionMachines à étatsExemple Moore : table de transitionE EP EF SE0 Etat 0 Etat 0 S0E1 Etat 0 Etat 1 S1E0 Etat 1 Etat 0 S2E1 Etat 1 Etat 1 S3E EP EF Sa Q0 n Q n+10x y0 0 0 0 01 0 1 0 10 1 0 1 01 1 1 1 1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 141 / 298


Outils et méthodes de conceptionMachines à étatsExemple Mealy : Equations Bascules et sortiesQ n+10:Q n 0 a 0 10 0 11 0 1x :Q n 0 a 0 10 0 01 1 1y :Q n 0 a 0 10 0 11 0 1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 142 / 298


Outils et méthodes de conceptionMachines à étatsExemple Mealy : EquationsQ n+10=Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 143 / 298


Outils et méthodes de conceptionMachines à étatsExemple Mealy : EquationsQ n+10=x =Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 143 / 298


Outils et méthodes de conceptionMachines à étatsExemple Mealy : EquationsQ n+10=x =y =Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 143 / 298


Outils et méthodes de conceptionMachines à étatsExemple Mealy : EquationsQ n+10=x =y =SchémaBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 143 / 298


Outils et méthodes de conceptionMachines à étatsOne hot EncodingCodage par défaut : codage binaire = coder les états avec le moins debits possiblesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 144 / 298


Outils et méthodes de conceptionMachines à étatsOne hot EncodingCodage par défaut : codage binaire = coder les états avec le moins debits possiblesOne hot Encoding : rajouter des bascules afin de simplifier les équationscombinatoiresBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 144 / 298


Outils et méthodes de conceptionMachines à étatsOne hot EncodingCodage par défaut : codage binaire = coder les états avec le moins debits possiblesOne hot Encoding : rajouter des bascules afin de simplifier les équationscombinatoiresPrincipe : Une bascule par étatBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 144 / 298


Outils et méthodes de conceptionMachines à étatsOne hot EncodingCodage par défaut : codage binaire = coder les états avec le moins debits possiblesOne hot Encoding : rajouter des bascules afin de simplifier les équationscombinatoiresPrincipe : Une bascule par étatIl n’y a qu’une bascule ayant sa sortie à 1, toutes les autres ont leur sortieà 0Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 144 / 298


Outils et méthodes de conceptionMachines à étatsOne hot EncodingCodage par défaut : codage binaire = coder les états avec le moins debits possiblesOne hot Encoding : rajouter des bascules afin de simplifier les équationscombinatoiresPrincipe : Une bascule par étatIl n’y a qu’une bascule ayant sa sortie à 1, toutes les autres ont leur sortieà 0Lorsque la sortie de la bascule i est à 1 alors la machine est dans l’état iBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 144 / 298


Outils et méthodes de conceptionMachines à étatsSynchronisation des EntréesCKDSTABLEt st hBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 145 / 298


Outils et méthodes de conceptionMachines à étatsSynchronisation des Entrées : problèmePt p0ND0D1Registre d’étatIAt p1Signal d’HorlogeRegistre de sortieF’=F’(P,I)HorlogeAD0D1t p0t p1Non ViolationViolationt SBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 146 / 298


Outils et méthodes de conceptionMachines à étatsSynchronisation des Entrées : problèmeLe changement d’une seule variable peut entrainer des changementsmultiples sur les entrées <strong>du</strong> registre d’étatBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 147 / 298


Outils et méthodes de conceptionMachines à étatsSynchronisation des Entrées : problèmeLe changement d’une seule variable peut entrainer des changementsmultiples sur les entrées <strong>du</strong> registre d’étatEn cas de violation de t S ou de t H l’état de la machine n’est pas prédictibleBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 147 / 298


Outils et méthodes de conceptionMachines à étatsSynchronisation des Entrées : solution ?Pt p0ND0D1Registre d’étatIRegistre d’entréeI’At p1Signal d’HorlogeRegistre de sortieF’=F’(P,I)HorlogeHorlogeHorlogeAA’D0D1t p0t p1t >> t SBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 148 / 298


Outils et méthodes de conceptionMachines à étatsSynchronisation des Entrées : solution ?En cas de violation de t S ou de t H par l’entrée A’ :Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 149 / 298


Outils et méthodes de conceptionMachines à étatsSynchronisation des Entrées : solution ?En cas de violation de t S ou de t H par l’entrée A’ :Si la sortie A de la bascule reste dans son état, le changement del’information d’entrée sera prise en compte à l’impulsion suivanteBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 149 / 298


Outils et méthodes de conceptionMachines à étatsSynchronisation des Entrées : solution ?En cas de violation de t S ou de t H par l’entrée A’ :Si la sortie A de la bascule reste dans son état, le changement del’information d’entrée sera prise en compte à l’impulsion suivanteLa sortie A de la bascule peut passer dans un état métastableBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 149 / 298


Outils et méthodes de conceptionMachines à étatsMétastabilitéDHorlogeQt St Ht COt METBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 150 / 298


Outils et méthodes de conceptionMachines à étatsMétastabilitéRespect des contraintes t S ou de t H .Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 151 / 298


Outils et méthodes de conceptionMachines à étatsMétastabilitéRespect des contraintes t S ou de t H .La violation des contraintes peut entrainer un état métastable de labascule.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 151 / 298


Outils et méthodes de conceptionMachines à étatsMétastabilitéRespect des contraintes t S ou de t H .La violation des contraintes peut entrainer un état métastable de labascule.L’état métastable n’apparaît pas forcément.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 151 / 298


Outils et méthodes de conceptionMachines à étatsMétastabilitéRespect des contraintes t S ou de t H .La violation des contraintes peut entrainer un état métastable de labascule.L’état métastable n’apparaît pas forcément.La probabilité d’un état métastable est lié au processus de fabrication.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 151 / 298


Outils et méthodes de conceptionMachines à étatsMétastabilitéRespect des contraintes t S ou de t H .La violation des contraintes peut entrainer un état métastable de labascule.L’état métastable n’apparaît pas forcément.La probabilité d’un état métastable est lié au processus de fabrication.La métastabilité ne met pas forcément le système dans un étatindéterminé.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 151 / 298


Outils et méthodes de conceptionMachines à étatsMétastabilitéRespect des contraintes t S ou de t H .La violation des contraintes peut entrainer un état métastable de labascule.L’état métastable n’apparaît pas forcément.La probabilité d’un état métastable est lié au processus de fabrication.La métastabilité ne met pas forcément le système dans un étatindéterminé.La métastabilité est caractérisée par le MTBF (Mean Time BetweenFailure) <strong>du</strong> circuitBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 151 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - typesIl existe deux Acronymes pour définir les Mémoires :Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 152 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - typesIl existe deux Acronymes pour définir les Mémoires :ROM : Read Only Memory (Mémoire Lecture Seule) - Mémoire MorteBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 152 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - typesIl existe deux Acronymes pour définir les Mémoires :ROM : Read Only Memory (Mémoire Lecture Seule) - Mémoire MorteRAM : Random Access Memory (Mémoire à accès Aléatoire) - MémoireViveBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 152 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - typesIl existe deux Acronymes pour définir les Mémoires :ROM : Read Only Memory (Mémoire Lecture Seule) - Mémoire MorteRAM : Random Access Memory (Mémoire à accès Aléatoire) - MémoireViveCes acronymes définissent tous les deux des mémoires à accès AléatoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 152 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - typesIl existe deux Acronymes pour définir les Mémoires :ROM : Read Only Memory (Mémoire Lecture Seule) - Mémoire MorteRAM : Random Access Memory (Mémoire à accès Aléatoire) - MémoireViveCes acronymes définissent tous les deux des mémoires à accès AléatoireMais il existe aussi des mémoires à accès séquentielBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 152 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - typesROM : Read Only Memory = Mémoire Lecture Seule ?Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 153 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - typesROM : Read Only Memory = Mémoire Lecture Seule ?Les noms n’ont de sens que pour les auteurs !Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 153 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - typesROM : Read Only Memory = Mémoire Lecture Seule ?Les noms n’ont de sens que pour les auteurs !Il existes des mémoires avec différentes caractéristiquesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 153 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - Une classificationQuels Critères pour classifier ?Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 154 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - Une classificationQuels Critères pour classifier ?Critères pertinents ou apparaissant comme tels.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 154 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - Une classificationQuels Critères pour classifier ?Critères pertinents ou apparaissant comme tels.Critères pas forcément indéfiniment valides.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 154 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - Une classificationLecture SeuleROMRAMStatiqueElectriqueAccès AléatoireLecture EcritureRAMDynamiqueDisques DurMagnétiqueBandesAccès SéquentielBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 155 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsDéfinition sur les données manipuléesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 156 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsDéfinition sur les données manipuléesbit : Binary digIT - Plus petite quantité binaireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 156 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsDéfinition sur les données manipuléesbit : Binary digIT - Plus petite quantité binaireoctet (byte) : information codée sur 8 bits - Unité de référenceBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 156 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsDéfinition sur les données manipuléesbit : Binary digIT - Plus petite quantité binaireoctet (byte) : information codée sur 8 bits - Unité de référencemot (word) : référence la taille <strong>du</strong> bus de données utilisé - dépendant <strong>du</strong>système - Un processeur 16 bits a une taille de mot de 16 bits, unprocesseur 64 bits a une taille de mot de 64 bits - Taille égale la taille <strong>du</strong>bus.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 156 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsBus : interfaces entre mémoire et monde extérieurBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 157 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsBus : interfaces entre mémoire et monde extérieurBus de données (M bits) : délivre un mot de M bits de la mémoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 157 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsBus : interfaces entre mémoire et monde extérieurBus de données (M bits) : délivre un mot de M bits de la mémoireBus d’adresses (N bits) : sélectionne 1 mot parmi 2 NBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 157 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsBus : interfaces entre mémoire et monde extérieurBus de données (M bits) : délivre un mot de M bits de la mémoireBus d’adresses (N bits) : sélectionne 1 mot parmi 2 NSignaux de contrôle - Il existe au moinsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 157 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsBus : interfaces entre mémoire et monde extérieurBus de données (M bits) : délivre un mot de M bits de la mémoireBus d’adresses (N bits) : sélectionne 1 mot parmi 2 NSignaux de contrôle - Il existe au moinsCS : Chip Select (Sélecteur de boitier) - Commande de l’état hauteimpédance <strong>du</strong> bus de donnéesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 157 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsBus : interfaces entre mémoire et monde extérieurBus de données (M bits) : délivre un mot de M bits de la mémoireBus d’adresses (N bits) : sélectionne 1 mot parmi 2 NSignaux de contrôle - Il existe au moinsCS : Chip Select (Sélecteur de boitier) - Commande de l’état hauteimpédance <strong>du</strong> bus de donnéesR : Read (Lecture) - Indique que l’accès à la mémoire est une lectureBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 157 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - DéfinitionsBus : interfaces entre mémoire et monde extérieurBus de données (M bits) : délivre un mot de M bits de la mémoireBus d’adresses (N bits) : sélectionne 1 mot parmi 2 NSignaux de contrôle - Il existe au moinsCS : Chip Select (Sélecteur de boitier) - Commande de l’état hauteimpédance <strong>du</strong> bus de donnéesR : Read (Lecture) - Indique que l’accès à la mémoire est une lectureW : Write (Ecriture) - Indique que l’accès à la mémoire est une écritureBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 157 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SRAMMot DjVddBitT4T6BitT2T3T5T1Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 158 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SRAM LectureMot DjVddBitT4T6BitT2T3T5T1VddSortieBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 159 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SRAM EcritureMot DjVddBitT4T6BitT2T3T5T1EntréeWBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 160 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Autres Cellules SRAMCellule biport : permet d’accèder simultanément à 2 données enmémoiresBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 161 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Autres Cellules SRAMCellule biport : permet d’accèder simultanément à 2 données enmémoiresCellule CAM : cellule adressée par contenu, utile pour les mémoirescaches associativesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 161 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - les BiportsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 162 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - les CAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 163 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SRAM BilanRapideBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 164 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SRAM BilanRapideCellule Statique : Rétention infinie tant qu’alimentationBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 164 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SRAM BilanRapideCellule Statique : Rétention infinie tant qu’alimentationFaible Consommation (CMOS)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 164 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SRAM BilanRapideCellule Statique : Rétention infinie tant qu’alimentationFaible Consommation (CMOS)Cellule volumineuseBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 164 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SRAM BilanRapideCellule Statique : Rétention infinie tant qu’alimentationFaible Consommation (CMOS)Cellule volumineuseChèreBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 164 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SRAM BilanRapideCellule Statique : Rétention infinie tant qu’alimentationFaible Consommation (CMOS)Cellule volumineuseChèreVolatileBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 164 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DRAMBitT1CMotBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 165 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DRAM BilanCompactBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 166 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DRAM BilanCompactFaible Consommation (CMOS)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 166 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DRAM BilanCompactFaible Consommation (CMOS)Lecture destructrice : nécessité de réécritureBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 166 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DRAM BilanCompactFaible Consommation (CMOS)Lecture destructrice : nécessité de réécritureRafraîchissement régulier pour combler la décharge <strong>du</strong> condensateurBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 166 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DRAM BilanCompactFaible Consommation (CMOS)Lecture destructrice : nécessité de réécritureRafraîchissement régulier pour combler la décharge <strong>du</strong> condensateurVolatileBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 166 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation InterneD M-1D M-2D M-3D 2D 1D 0CSRWTampon d’Entrées/SortiesA N-1A N-2A 1A 0Décodeur de Ligne2 N2 N-1211 bitBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 167 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation InterneAdressage Simple : une adresse ⇒ une donnéeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 168 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation InterneAdressage Simple : une adresse ⇒ une donnéeGrande capacité mémoire ⇒ bus de donnée largeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 168 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation InterneAdressage Simple : une adresse ⇒ une donnéeGrande capacité mémoire ⇒ bus de donnée largeScinder l’adresse en deux parties : ligne et colonneBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 168 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation InterneA N-1A N-2Décodeur de LigneCSRW2 N-KA K+1A K21Tampon d’Entrées/SortiesMultiplexeur 1 KD 02 K 2 K-12 12 K 2 K-12 N-K-1 1 bitDécodeur de Colonne2 1A K-1 A K-2 A 1 A 0Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 169 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation InterneA N-1A N-2Décodeur de LigneCSRW2 N-KA K+1A K21Tampon d’Entrées/SortiesMultiplexeur 4 K2 K 2 K-12 12 K 2 K-12 N-K-1 4 bitsDécodeur de Colonne2 1A K-1 A K-2 A 1 A 0Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 170 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation ExterneAssociation de plusieurs blocs mémoire pourBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 171 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation ExterneAssociation de plusieurs blocs mémoire pourAugmenter la capacité de stockageBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 171 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation ExterneAssociation de plusieurs blocs mémoire pourAugmenter la capacité de stockageAugmenter la taille des donnéesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 171 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation ExterneCSAdressesN bitsDonnéesM bitsR WBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 172 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation ExterneCSAdressesDonnées10 bits 4 bitsR WBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 173 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation ExterneCSCSCSCSD15-D12D11-D8D7-D4D3-D04 bits4 bits4 bits4 bitsR WR WR WR WAdresses10 bitsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 174 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Organisation ExterneA11-A10CSCSCSCSR WR WR WR WA9-A010 bitsD3-D0 4 bitsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 175 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - CyclesPour un bon fonctionnement de la mémoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 176 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - CyclesPour un bon fonctionnement de la mémoireRepect de temps indiqué dans les cycles de lecture et d’écritureBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 176 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Cycle de lectureT<strong>du</strong>rADRESSER/WTadCSTcsdbTcdshDONNEE VALIDET1 T2 T3 T4Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 177 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Cycle d’écritueR/WTawT<strong>du</strong>rADRESSET<strong>du</strong>rwCSTcdshTcswDONNEE VALIDET1 T2 T3 T4Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 178 / 298


Outils et méthodes de conceptionMachines à étatsVhdl : mémoireentity memoire isport (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;Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 179 / 298


Outils et méthodes de conceptionMachines à étatsVhdl : mémoirearchitecture comport of memoire isbeginprocess(cs,adresse,donnee,rw) istype memory is array (0 to 79) of std_logic_vector(7 downto 0);variable mem : memory;beginif cs=’0’ thenif rw=’1’ thensortie


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SDRAMJusque là : technologie asynchroneBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 181 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SDRAMJusque là : technologie asynchroneDifficile de maitriser les temps de propagationBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 181 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SDRAMJusque là : technologie asynchroneDifficile de maitriser les temps de propagationNécessité de synchroniser les accès mémoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 181 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SDRAMJusque là : technologie asynchroneDifficile de maitriser les temps de propagationNécessité de synchroniser les accès mémoireSDRAM: Synchone DRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 181 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SDRAMJusque là : technologie asynchroneDifficile de maitriser les temps de propagationNécessité de synchroniser les accès mémoireSDRAM: Synchone DRAMIntro<strong>du</strong>ction <strong>du</strong> mode Rafale (BURST)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 181 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie SDRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 182 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DDRAMFréquence Processeur = 800 MHz, fréquence SDRAM = 100 MHzBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 183 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DDRAMFréquence Processeur = 800 MHz, fréquence SDRAM = 100 MHzNécessité de ré<strong>du</strong>ire cet écartBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 183 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DDRAMFréquence Processeur = 800 MHz, fréquence SDRAM = 100 MHzNécessité de ré<strong>du</strong>ire cet écartIdée : lire sur le front montant et descendant de l’horlogeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 183 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DDRAMFréquence Processeur = 800 MHz, fréquence SDRAM = 100 MHzNécessité de ré<strong>du</strong>ire cet écartIdée : lire sur le front montant et descendant de l’horlogeDDRAM : Double rate DRAM (DRAM à double débit)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 183 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DDRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 184 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DDRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 185 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie DDRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 186 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie QDRAMIdée1 : lire sur le front montant et descendant de l’horloge comme uneDDRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 187 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie QDRAMIdée1 : lire sur le front montant et descendant de l’horloge comme uneDDRAMIdée2 : dissocier entrée et sortie pour permettre une lecture et uneécriture simultanéeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 187 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie QDRAMIdée1 : lire sur le front montant et descendant de l’horloge comme uneDDRAMIdée2 : dissocier entrée et sortie pour permettre une lecture et uneécriture simultanéeQDRAM : Quad rate DRAM (DRAM à quadruple débit)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 187 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie QDRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 188 / 298


Outils et méthodes de conceptionMachines à étatsBertrand Granado Enseignant-Chercheur R# (LIP6 / UPMC) Sysprog Hiver 2014 189 / 298Les mémoires RAM - Technologie QDRAMKK#W#


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie QDRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 190 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires RAM - Technologie QDRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 191 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROMNécessité de mémoire non-volatileBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 192 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROMNécessité de mémoire non-volatileBios de micro-ordinateurBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 192 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROMNécessité de mémoire non-volatileBios de micro-ordinateurStockage de programmes dans des systèmes embarquésBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 192 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROMNécessité de mémoire non-volatileBios de micro-ordinateurStockage de programmes dans des systèmes embarquésReconfiguration automatique des FPGABertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 192 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - TechnologieMask - ROM : réalisé lors de la fabrication <strong>du</strong> circuitBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 193 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - TechnologieMask - ROM : réalisé lors de la fabrication <strong>du</strong> circuitPROM : Fusible - One Time ProgrammingBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 193 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - TechnologieMask - ROM : réalisé lors de la fabrication <strong>du</strong> circuitPROM : Fusible - One Time ProgrammingEPROM : Transistors à Grille Flottante - ReprogrammabilitéBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 193 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - TechnologieMask - ROM : réalisé lors de la fabrication <strong>du</strong> circuitPROM : Fusible - One Time ProgrammingEPROM : Transistors à Grille Flottante - ReprogrammabilitéNOVRAM : RAM + PileBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 193 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - Mask - ROMAucune SouplesseFaible CoûtBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 194 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - Mask - ROMAucune SouplesseFaible CoûtBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 194 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - PROMFusibleAluminiumAluminiumBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 195 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - PROMFusibleAluminiumAluminiumBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 195 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - PROMFusibleAluminiumAluminiumBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 195 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - CellulesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 196 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - OR ROMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 197 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - NOR ROMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 198 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - NAND ROMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 199 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM : La Grille FlottantePiège des électrons dans la grille flottanteBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 200 / 298


Outils et méthodes de conceptionMachines à étatsLa Grille Flottante - programmationBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 201 / 298


Outils et méthodes de conceptionMachines à étatsLa Grille Flottante - programmationBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 202 / 298


Outils et méthodes de conceptionMachines à étatsLa Grille Flottante - programmationBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 203 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - EPROMUV-EPROM : Effacement aux ultra-violetBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 204 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - EPROMUV-EPROM : Effacement aux ultra-violetEEPROM : Effacement électrique par mot mémoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 204 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - EPROMUV-EPROM : Effacement aux ultra-violetEEPROM : Effacement électrique par mot mémoireFLASH : Effacement électrique par blocBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 204 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - UV-EPROMProgrammation hors systèmeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 205 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - UV-EPROMProgrammation hors systèmeEffacement hors systèmeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 205 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - UV-EPROMProgrammation hors systèmeEffacement hors systèmeTemps d’effacement long (15 minutes pour les UV-EPROM)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 205 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - E-EPROMProgrammation ISP (In Situ Programming ou In Serial Programming)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 206 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - E-EPROMProgrammation ISP (In Situ Programming ou In Serial Programming)Effacement ISPBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 206 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - E-EPROMProgrammation ISP (In Situ Programming ou In Serial Programming)Effacement ISPProgrammation par mot ou blocBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 206 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - E-EPROMProgrammation ISP (In Situ Programming ou In Serial Programming)Effacement ISPProgrammation par mot ou blocTemps d’effacement rapideBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 206 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - E-EPROMProgrammation ISP (In Situ Programming ou In Serial Programming)Effacement ISPProgrammation par mot ou blocTemps d’effacement rapideCoût élevé car effacement par mot mémoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 206 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - FLASHProgrammation ISPBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 207 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - FLASHProgrammation ISPEffacement ISPBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 207 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - FLASHProgrammation ISPEffacement ISPProgrammation par mot ou blocBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 207 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - FLASHProgrammation ISPEffacement ISPProgrammation par mot ou blocTemps d’effacement très rapideBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 207 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires ROM - Technologie - FLASHProgrammation ISPEffacement ISPProgrammation par mot ou blocTemps d’effacement très rapideCoût limité car effacement par blocBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 207 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires FLASH - NAND Versus NORBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 208 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires FLASH - NAND Versus NORBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 209 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires FLASH - Organisation NANDBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 210 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires FLASH - LectureBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 211 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires FLASH - ProgrammationBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 212 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires FLASH - EffacementBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 213 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires FLASH - RoadmapBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 214 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires FLASH - NAND et NORBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 215 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires FLASH - One NANDBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 216 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires FLASH - NAND Versus One NANDBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 217 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - Les MRAMSRAM : RapiditéBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 218 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - Les MRAMSRAM : RapiditéDRAM : DensitéBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 218 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - Les MRAMSRAM : RapiditéDRAM : DensitéFlash : PermanenceBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 218 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - Les MRAMSRAM : RapiditéDRAM : DensitéFlash : PermanenceAllier ces trois caractéristiques : MRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 218 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - MRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 219 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - MRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 220 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - MRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 221 / 298


Outils et méthodes de conceptionMachines à étatsLes mémoires - MRAMBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 222 / 298


FPGAF.P.G.A et SRAMUtilisation de cellule de mémoire statiqueVddSelectDonnéeT2T4T3T6T5T1InterconnexionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 223 / 298


FPGAStructure d’un F.P.G.ABertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 224 / 298


FPGAStructure d’un F.P.G.ABertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 224 / 298


FPGAStructure d’un F.P.G.ABertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 224 / 298


FPGAStructure d’un F.P.G.ABertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 224 / 298


FPGAStructure d’un F.P.G.ABertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 224 / 298


FPGAQu’y a t’il dans un F.P.G.A ?Des Cellules de BaseBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 225 / 298


FPGAQu’y a t’il dans un F.P.G.A ?Des Cellules de BaseLUT (LookUp Table)- Codage des fonctions - CombinatoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 225 / 298


FPGAQu’y a t’il dans un F.P.G.A ?Des Cellules de BaseLUT (LookUp Table)- Codage des fonctions - CombinatoireBascules - Synchronisation - SéquentielBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 225 / 298


FPGAQu’y a t’il dans un F.P.G.A ?Des Cellules de BaseLUT (LookUp Table)- Codage des fonctions - CombinatoireBascules - Synchronisation - SéquentielDes Entrées-SortiesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 225 / 298


FPGAQu’y a t’il dans un F.P.G.A ?Des Cellules de BaseLUT (LookUp Table)- Codage des fonctions - CombinatoireBascules - Synchronisation - SéquentielDes Entrées-SortiesDe la logique de routageBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 225 / 298


FPGAStructure d’une Cellule de BaseBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 226 / 298


FPGAStructure de l’interconnexionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 227 / 298


FPGAStructure de l’interconnexionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 228 / 298


FPGAFPGAPrésentation des FPGA commerciauxDeux principaux fabricantsXilinxAlteraBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 229 / 298


Altera FPGA DevicesTechnology Low-­‐cost Mid-­‐range High-­performance130 nm Cyclone Stra


FPGALes FPGA <strong>du</strong> fabricant AlteraTechnologie Bas coût Intermédiaire hautes performances130 nm Cyclone Stratix90 nm Cyclone II Stratix II65 nm Cyclone III Arria I Stratix III40 nm Cyclone IV Arria II Stratix IV28 nm Cyclone V Arria V Stratix V20 nm Arria X14 nm Stratix XBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 230 / 298


Low-cost Altera FPGAsECE 448 – FPGA and ASIC Design with <strong>VHDL</strong>


FPGACyclone IIBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 231 / 298


FPGACyclone II - Logic Element (Cellule de base)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 232 / 298


FPGACyclone II - Logic Element - Mode NormalBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 233 / 298


FPGACyclone II - Logic Element - Mode ArithmétiqueBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 234 / 298


FPGACyclone II - LABBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 235 / 298


FPGACyclone II - LAB - Chainage ArithmétiqueBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 236 / 298


FPGACyclone II - LAB - DirectlinkBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 237 / 298


FPGACyclone II - LAB - WideBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 238 / 298


FPGACyclone II - LAB - WideBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 239 / 298


FPGACyclone II - LAB - Interconnexion ColonneBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 240 / 298


FPGACyclone II - LAB - Interconnexion LigneBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 241 / 298


FPGACyclone II - LAB - Matrice InterconnexionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 242 / 298


FPGACyclone II - LAB - HorlogeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 243 / 298


FPGACyclone II - LAB - HorlogeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 244 / 298


FPGACyclone II - LAB - HorlogeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 245 / 298


FPGACyclone II - LAB - HorlogeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 246 / 298


FPGACyclone II - LAB - HorlogeBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 247 / 298


FPGACyclone II - LAB - PLLBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 248 / 298


FPGACyclone II - LAB - Mémoire M4KBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 249 / 298


FPGACyclone II - LAB - MultiplierBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 250 / 298


FPGACyclone II - LAB - Multiplier interconnexion LABBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 251 / 298


FPGACyclone II - Entrées/Sorties - StructureBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 252 / 298


FPGACyclone II - Entrées/Sorties - interconnexion ligneBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 253 / 298


FPGACyclone II - Entrées/Sorties - interconnexion colonneBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 254 / 298


FPGACyclone II - Entrées/Sorties - distribution signauxcommandesBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 255 / 298


FPGACyclone II - Entrées/Sorties - signaux contrôleBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 256 / 298


FPGACyclone II - Entrées/Sorties - détailBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 257 / 298


FPGACyclone II - Entrées/Sorties - typesI/O Standard Type V CCIO Level Top andBottom I/OPinsInput Output CLK, UserDQS I/OPinsCLK,DQSSide I/O Pins3,3V LVTTL/LVCMOS Single Ended 3,3V/2,5V 3,3 V x x x x x2,5V LVTTL/LVCMOS Single Ended 3,3V/2,5V 2,5 V x x x x x1,8V LVTTL/LVCMOS Single Ended 1,8V/1,5V 1,8 V x x x x x1,5V LVCMOS Single Ended 1,8V/1,5V 1,5 V x x x x xSSTL-2 Class I Voltage referenced 2,5V 2,5 V x x x x xSSTL-2 Class II Voltage referenced 2,5V 2,5 V x x x x xSSTL-18 Class I Voltage referenced 1,8 V 1,8 V x x x x xSSTL-18 Class II Voltage referenced 1,8 V 1,8 V x xHSTL-18 Class I Voltage referenced 1,8 V 1,8 V x x x x xHSTL-18 Class II Voltage referenced 1,8 V 1,8 V x xHSTL-15 Class I Voltage referenced 1,5 V 1,5 V x x x x xHSTL-15 Class II Voltage referenced 1,5 V 1,5 V x xPCI and PCI-X Single Ended 3,3 V 3,3 V - - x x xDifferential SSTL-2 class I or II Pseudo differential 2,5V xDifferential SSTL-18 class I or II Pseudo differential 2,5V xDifferential HSTL-15 class I or II Pseudo differential 2,5V xDifferential HSTL-18 class I or II Pseudo differential 2,5V xLVDS Differential 2,5V 2,5V x x x x xRSDS and mini-LVDS Differential 2,5V - x - x xLVPECL Differential 3,3V/2,5V1,8V/1,5VxxPLLOUTUserI/OPinsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 258 / 298


FPGALVTTLLow Voltage Transistor Transistor LevelLVCMOSLow Voltage Complementary Metal Oxyde SiliciumBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 259 / 298


FPGASSTLStub Series Terminated Logic est une interface couramment utilisée pourconnecter des mémoires de type DDR. Il existe plusieurs interfaces SSTL :SSTL-3, SSTL-2 et SSTL-18, elles sont normalisée par un document JEDEC.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 260 / 298


FPGACyclone II - Entrées/Sorties - bancs EP2C5 et EP2C8Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 261 / 298


High-Performance Altera FPGAsECE 448 – FPGAand ASIC Design with<strong>VHDL</strong>


Stratix III Logic Array Blocks (LABs)


High-Level Block Diagram of the Stratix III ALM


Altera Stratix IIIAdaptive Logic Mo<strong>du</strong>les (ALM) – Normal Mode


4 × 2 Crossbar Switch Example


Register Packing


Template for Seven-Input FunctionsSupported in Extended LUT Mode


Altera Stratix III, Stratix IVAdaptive Logic Mo<strong>du</strong>les (ALM) – Arithmetic Mode


PerformingOperationR = (X < Y) ? Y : X


Three Operand AdditionUtilizing Shared Arithmetic Mode


LUT-Register Mode


Register Chain


Example of Resource Utilization Report (1)+--------------------------------------------------------------------------+; Fitter Resource Usage Summary ;+-------------------------------------------------+------------------------+; Resource ; Usage ;+-------------------------------------------------+------------------------+; ALUTs Used ; 415 / 38,000 ( 1 % ) ;; -- Combinational ALUTs ; 415 / 38,000 ( 1 % ) ;; -- Memory ALUTs ; 0 / 19,000 ( 0 % ) ;; -- LUT_REGs ; 0 / 38,000 ( 0 % ) ;; Dedicated logic registers ; 136 / 38,000 ( < 1 % ) ;; ; ;; Combinational ALUT usage by number of inputs ; ;; -- 7 input functions ; 0 ;; -- 6 input functions ; 287 ;; -- 5 input functions ; 0 ;; -- 4 input functions ; 24 ;; --


Example of Resource Utilization Report (2); Logic utilization ; 701 / 38,000 ( 2 % ) ;; -- Difficulty Clustering Design ; Low ;; -- Combinational ALUT/register pairs usedin final Placement ; 476 ;; -- Combinational with no register ; 340 ;; -- Register only ; 61 ;; -- Combinational with a register ; 75 ;; -- Estimated pairs recoverable by pairing ALUTs and registersas design grows ; -54 ;; -- Estimated Combinational ALUT/register pairsunavailable ; 279 ;; -- Unavailable <strong>du</strong>e to Memory LAB use ; 0 ;; -- Unavailable <strong>du</strong>e to unpartnered 7 LUTs ; 0 ;; -- Unavailable <strong>du</strong>e to unpartnered 6 LUTs ; 279 ;; -- Unavailable <strong>du</strong>e to unpartnered 5 LUTs ; 0 ;; -- Unavailable <strong>du</strong>e to LAB-wide signalconflicts ; 0 ;; -- Unavailable <strong>du</strong>e to LAB input limits ; 0 ;


Example of Resource Utilization Report (3); Total registers* ; 136 ;; -- Dedicated logic registers ; 136 / 38,000 ( < 1 % ) ;; -- I/O registers ; 0 / 2,752 ( 0 % ) ;; -- LUT_REGs ; 0 ;; ALMs: partially or completely used ; 360 / 19,000 ( 2 % ) ;; Total LABs: partially or completely used ; 42 / 1,900 ( 2 % ) ;; -- Logic LABs ; 42 / 42 ( 100 % ) ;; -- Memory LABs ; 0 / 42 ( 0 % ) ;; ; ;; User inserted logic elements ; 0 ;; Virtual pins ; 0 ;; I/O pins ; 20 / 488 ( 4 % ) ;; -- Clock pins ; 5 / 16 ( 31 % ) ;; -- Dedicated input pins ; 0 / 12 ( 0 % ) ;; Global signals ; 2 ;; M9K blocks ; 0 / 108 ( 0 % ) ;; M144K blocks ; 0 / 6 ( 0 % ) ;; Total MLAB memory bits ; 0 ;; Total block memory bits ; 0 / 1,880,064 ( 0 % ) ;; Total block memory implementation bits ; 0 / 1,880,064 ( 0 % ) ;; DSP block 18-bit elements ; 0 / 216 ( 0 % ) ;; PLLs ; 0 / 4 ( 0 % ) ;; Global clocks ; 2 / 16 ( 13 % ) ;


Overview• All Xilinx FPGAs contain the same basic resources– Slices grouped into Configurable Logic Blocks (CLBs)• Contain combinatorial logic and register resources– IOBs• Interface between the FPGA and the outside world– Programmable interconnect– Other resources• Memory• Multipliers• Global clock buffers• Boundary scan logicFPGA Intro<strong>du</strong>ction 9© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Virtex-II ArchitectureFirst family with Embedded Multipliers to enable high-performance DSPBlock SelectRAMresourceI/O Blocks (IOBs)EmbeddedmultipliersProgrammableinterconnectConfigurableLogic Blocks(CLBs)Clock Management(DCMs, BUFGMUXes)Refer to device data sheet at xilinx.com for detailed technical informationFPGA Intro<strong>du</strong>ction 10© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


CLBs and SlicesCombinatorial and sequential logic implemented here• Each Virtex -II CLBcontains four slices– Local routing providesfeedback between slices inthe same CLB, and itprovides routing toneighboring CLBs– A switch matrix providesaccessto general routing resourcesSwitchMatrixCOUTBUFTBUF TSHIFTSlice S1Slice S0COUTSlice S3Slice S2Local RoutingCINCINFPGA Intro<strong>du</strong>ction 11© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Slice ResourcesLUTFRAM16SRL16LUTGCYMUXFxArithmetic LogicCY RegisterMUXF5Register• Each slice contains two:— Four inputs lookup tables— 16-bit distributed SelectRAM— 16-bit shift register• Each register:— D flip-flop— Latch• Dedicated logic:— Muxes— Arithmetic logic— MULT_AND— Carry ChainFPGA Intro<strong>du</strong>ction 12© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Look-Up Tables• Combinatorial logic is stored in Look-Up Tables(LUTs)– Also called Function Generators (FGs)– Capacity is limited by the number of inputs, not by thecomplexity• Delay through the LUT is constantABCDCombinatorial LogicZA B C D Z0 0 0 0 00 0 0 1 00 0 1 0 00 0 1 1 10 1 0 0 10 1 0 1 1. . .1 1 0 0 01 1 0 1 01 1 1 0 01 1 1 1 1FPGA Intro<strong>du</strong>ction 13© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Distributed RAM• LUTs used as memory inside the fabric• Flexible, can be used as RAM, ROM, orshift register• Distributed memory with fast accesstime• Cascadable with built-in CLB routing• Applications– Linear feedback shift register– Distributed arithmetic– Time-shared registers– Small FIFO– Digital delay lines (Z -1 )FPGA Intro<strong>du</strong>ction 14© 2009 Xilinx, Inc. All Rights ReservedRAM16SRL16LUT16b64b16b128bFor Academic Use OnlyDual PortRAM1 CLBSingle PortRAM1 CLBShift register128b1 CLB


The SRL16E• The 16 SRAM cells have been organized into a shift register– The ‘CE’ is used, in conjunction with the clock, to write data into the first flip-flopand for all other data to move right by one position– Because this is a predictable operation, no address is required for writing• The SRL16E is excellent in implementing efficient DSP Functions– A very efficient way to delay data samples– Shifting samples and scanning at faster rateCEDCED QCED QCED QCED QCED QCED QCED QCED QCED QCED QD Q15CEAQCED QCED QD QCED QCED QSRLC16ECascadableCED QCEQ15D QA[3:0]0000 1111QFPGA Intro<strong>du</strong>ction 15© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Enabling high-performance DSPVirtex-II intro<strong>du</strong>ced the embedded 18x18 multiplierB18REGCED Q36PA18BCIN• Situated between the Block RAMs and CLB array to enable high-performancemultiply-accumulate operations• This dramatically increased multiplier speed and density compared to LUT basedmultipliers and enabled FPGA based DSPFPGA Intro<strong>du</strong>ction 16© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Outline• Power of Parallelism• Basic FPGA Architecture• Virtex -II Pro• Virtex-4• Virtex-5• Spartan-3 Family• Latest Families− Virtex-6 Family− Spartan-6 Family• Why should I use FPGAs for DSP?• The DSP48 Slice AdvantageFPGA Intro<strong>du</strong>ction 17© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Virtex-II Pro FPGAsRefer to device data sheet on web for detailed technical informationHigh performance TrueDual-port RAM – 2.4 Mbin xc2vp30SelectIO- UltraTechnology - 556 I/O inxc2vp30Advanced FPGA Logic –30k logic cells in xc2vp30Embedded XtremeDSPFunctionality - 136 multiplierson xc2vp30DCM Digital ClockManagement – 8 inxc2vp30XCITE Digitally ControlledImpedance - Any I/ORocketIO High-speed SerialTransceivers 622 Mbps to 3.125Gbps- 8 in xc2vp30 (4 brought outto connectors on XUP Board)PowerPC Processors 400+ MHzClock Rate – 2 in xc2vp30FPGA Intro<strong>du</strong>ction 18© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Multiplier Unit• Embedded 18-bit x 18-bit multiplier• The XUP Virtex-II Pro includes aVirtex-II Pro xc2vp30 device with136 Multipliers• 2s complement signed operation• 4- to 18-bit operands• Combinational & pipelined options• Operates with block RAM andfabric to implement MAC function18 Bit36 Bit18 Bit300 MHz Performance in Virtex-II ProPipelined multiplier with registered inputs and outputsFPGA Intro<strong>du</strong>ction 19© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Virtex-4 FamilyAdvanced Silicon Mo<strong>du</strong>lar BLock (ASMBL) ArchitectureOptimized for logic, Embedded, and Signal ProcessingLXFXSXResourceLogic14K–200K LCs12K–140K LCs23K–55K LCsMemory0.9–6 Mb0.6–10 Mb2.3–5.7 MbDCMs4–124–204–8DSP Slices32–9632–192128–512SelectIO240–960240–896320–640RocketION/A0–24 ChannelsN/APowerPCN/A1 or 2 CoresN/AEthernet MACN/A2 or 4 CoresN/AFPGA Basic Architecture Intro<strong>du</strong>ction 21© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Virtex-4 FeaturesRefer to device data sheet on web for detailed technical information200,000Logic Cells6.5 Gbps0.6-6.5 GbpsRocketIOTransceivers500 MHz XesiumDifferential ClockingAES Secure ChipDesign SecurityBRAM with FIFO& ECCVirtex-4PowerPC®Processor with APUVirtex-4Virtex-410/100/1000Ethernet MACXtremeDSPSlice1 Gbps SelectIOwith ChipSyncFPGA Intro<strong>du</strong>ction 22© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Virtex-4 ArchitectureRocketIOMulti-GigabitTransceivers622 Mbps–10.3 GbpsAdvanced CLBs200K Logic CellsSmart RAMNew block RAM/FIFOXesium ClockingTechnology500 MHzXtremeDSPTechnology Slices256 18x18 GMACsPowerPC 405with APU Interface450 MHz, 680 DMIPSTri-ModeEthernet MAC10/100/1000 Mbps1 Gbps SelectIOChipSync Source synch,XCITE Active TerminationFPGA Intro<strong>du</strong>ction 23© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


The Virtex-4 SX platform• Virtex-4 intro<strong>du</strong>ced a new DSP block that had both multiply andaccumulate functionality• For the first time a true “MAC” unit was offered in a Xilinx FPGA.This block was called the DSP48 <strong>du</strong>e to it’s 48-bit output precision• Additional modes of the adder allowed subtract and shift functionsto support scaling of results• Integral registers guarantee high-speed pipelined data-paths formaximum clock frequencyFPGA Intro<strong>du</strong>ction 24© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


BCOUTDSP48 BlockIncludes a high performance arithmetic unit and a multiplierPCOUTBA01CEB18CEABREGCED Q2-DeepRSTBAREGCED Q2-DeepRSTA1818A:B 36CEMMREGCED QRSTM72 36 0360017-bit shift17-bit shiftXYZSubtract48CEPPREGCED QRSTP480148PCarryInC487OpMode4848BCINPCINFPGA Intro<strong>du</strong>ction 25© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


DSP48 BlockDynamically Programmable DSP Op ModesZ Y XOpMode 6 5 4 3 2 1 0 OutputZero0 0 0 0 0 0 0 +/- CinHold P0 0 0 0 0 1 0 +/- (P + Cin)A:B Select0 0 0 0 0 1 1 +/- (A:B + Cin)Multiply0 0 0 0 1 0 1 +/- (A * B + Cin)C Select0 0 0 1 1 0 0 +/- (C + Cin)Feedback Add0 0 0 1 1 1 0 +/- (C + P + Cin)36-Bit Adder0 0 0 1 1 1 1 +/- (A:B + C + Cin)P Cascade Select0 0 1 0 0 0 0 PCIN +/- CinP Cascade Feedback Add 0 0 1 0 0 1 0 PCIN +/- (P + Cin)P Cascade Add0 0 1 0 0 1 1 PCIN +/- (A:B + Cin)P Cascade Multiply Add 0 0 1 0 1 0 1 PCIN +/- (A * B + Cin)P Cascade Add0 0 1 1 1 0 0 PCIN +/- (C + Cin)P Cascade Feedback Add Add0 0 1 1 1 1 0 PCIN +/- (C + P + Cin)P Cascade Add Add 0 0 1 1 1 1 1 PCIN +/- (A:B + C + Cin)Hold P0 1 0 0 0 0 0 P +/- CinDouble Feedback Add 0 1 0 0 0 1 0 P +/- (P + Cin)Feedback Add0 1 0 0 0 1 1 P +/- (A:B + Cin)Multiply-Accumulate 0 1 0 0 1 0 1 P +/- (A * B + Cin)Feedback Add0 1 0 1 1 0 0 P +/- (C + Cin)Double Feedback Add 0 1 0 1 1 1 0 P +/- (C + P + Cin)Feedback Add Add0 1 0 1 1 1 1 P +/- (A:B + C + Cin)C Select0 1 1 0 0 0 0 C +/- CinFeedback Add0 1 1 0 0 1 0 C +/- (P + Cin)36-Bit Adder0 1 1 0 0 1 1 C +/- (A:B + Cin)Multiply-Add0 1 1 0 1 0 1 C +/- (A * B + Cin)Double0 1 1 1 1 0 0 C +/- (C + Cin)Double Add Feedback Add 0 1 1 1 1 1 0 C +/- (C + P + Cin)Double Add0 1 1 1 1 1 1 C +/- (A:B + C + Cin)• Enables time-divisionmultiplexing for DSP• Over 40 different modes• Each XtremeDSP Sliceindivi<strong>du</strong>ally controllable• Change operation in a singleclock cycle• Control functionality fromlogic, memory or processorFPGA Intro<strong>du</strong>ction 26© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


DSP48 BlockUseful For More Than DSP• 6:1 high-speed, 36-bit Multiplexer– Use four XtremeDSP Slice and op-modes– 500 MHz performance using no programmable logic• Save 1584 LCs to build equivalent function in logic• Dynamic 18-bit Barrel Shifter– Use two XtremeDSP slices– Use dedicated cascade routing and integrated 17-bit shift• Save 1449 LCs to build equivalent function in logic• 36-bit Loadable Counter– Use a single XtremeDSP slice, achieve 500 MHz performance• Save 540 LCs to build equivalent function in logicFPGA Intro<strong>du</strong>ction 27© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Virtex-5 FamilyOptimized for logic, Embedded, Signal Processing, and High-Speed ConnectivityVirtex -5 PlatformsLX LXT SXT FXTLogic Logic/Serial DSP/Serial Emb./SerialLogicOn-chip RAMDSP CapabilitiesParallel I/OsSerial I/OsPowerPC ® ProcessorsFPGA Intro<strong>du</strong>ction 29© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Multiple Platforms• Easy to create sub-families– LX : High-performance logicand parallel IO– LXT: High-performance logicwith serial connectivity– SXT: Extensive signal processingwith serial connectivity– FXT: Extensive processor oriented• Embedded-oriented with HighestPerformance Serial Capabilities• Users can choose the best mixof resources to optimize costand performanceLXPlatformSXTPlatformLXTPlatformFXTPlatformFPGA Intro<strong>du</strong>ction 30© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Virtex-5 ArchitectureEnhanced36Kbit Dual-Port Block RAM /FIFO with Integrated ECC550 MHz Clock Management Tilewith DCM and PLLSelectIO with ChipSyncTechnology and XCITE DCINewMost Advanced High-PerformanceReal 6LUT Logic FabricPCI Express ® Endpoint BlockSystem Monitor Function withBuilt-in ADCAdvanced Configuration OptionsNext Generation PowerPC ®Embedded Processor25x18 DSP Slice with IntegratedALURocketIO Transceiver OptionsLow-Power GTP: Up to 3.75 GbpsTri-Mode 10/100/1000 MbpsHigh-Performance GTX: Up to 6.5 GbpsEthernet MACsFPGA Basic Architecture Intro<strong>du</strong>ction 31© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Advanced Logic Structure• True 6-input LUTs• Exclusive 64-bit distributedRAM option per LUT• Exclusive 32-bit or16-bit x 2 shift registerRAM64SRL32LUT6RAM64SRL32LUT6RAM64SRL32LUT6RAM64SRL32LUT6Register/LatchRegister/LatchRegister/LatchRegister/LatchFPGA Intro<strong>du</strong>ction 32© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


DSP48E• Virtex-5SX intro<strong>du</strong>ced a few new improvements in the DSP48E“enhanced” DSP block• The adder block was modified to become a mulifunctional ALU. Apattern compare was added to support the detection of saturation,overflow and underflow conditions• A 48-bit carry chain supports the propagation of partial sum andpro<strong>du</strong>ct carry’s so multiple DSP48E blocks can be chained to givehigher bit precision• ALU opcodes are dynamically controlled allowing functionalchanges on a clock cycle basisFPGA Intro<strong>du</strong>ction 33© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


BCOUTACOUTDSP48E BlockIncludes a high performance ALU, pattern compare, and a multiplierPCOUTBAC1825480101B REGCED Q2-DeepA REGCED Q2-DeepC REGCED Q182548A:BM REGCED Q72 36 036 01017-bit shift17-bit shiftXYZ7OpModeALUMode4CarryIn48P REGCED Q=C or MC4848PPATTERNDETECT48BCINACIN450 MHz operation in the slowest speed gradePCINFPGA Intro<strong>du</strong>ction 34© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Spartan-3Designed for low-cost, high-volume applications18x18 bit EmbeddedPipelined Multipliersfor efficient DSPSpartan-3B a n k3Bank 0 B a n k1Bank 24 I/O Banks,Support forUp to eight on-chipall I/O StandardsDigital Clock Managersincludingto support multiplePCI, DDR333,system clocksGuaranteed Density MigrationRSDS, mini-LVDSNumerous parts in the same packagePCI, PCIe, PCI-X and PCI EXPRESS are registered trademarks and/or service marks of PCI-SIG.FPGA Intro<strong>du</strong>ction 36© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Modified SlicesSLICEM and SLICEL• Each Spartan-3 CLBcontains four slices– Similar to Virtex-II device• Slices are grouped in pairs– Left-hand SLICEM (Memory)• LUTs can be configured asmemory or SRL16– Right-hand SLICEL (Logic)• LUT can be used as logiconlySwitchMatrixLeft-Hand SLICEMCOUTSHIFTINSlice X0Y1Slice X0Y0Right-Hand SLICELCOUTSlice X1Y1Slice X1Y0Fast ConnectsSHIFTOUTCINCINFPGA Intro<strong>du</strong>ction 37© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Multiple Domain-optimized PlatformsFPGA Intro<strong>du</strong>ction 38© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Spartan-3ASpartan-3A DSP is a superset of Spartan-3ATrue 3.3vPPDS_25PPDS_33TMDS_33DDR 2Hot SwappingMinimized Power Rails• Power Management– Hibernate and Suspendmodes• Minimized power rails• New I/O Standards• BRAM with Byte writeenable• SPI/BPI Flash Interface• Hot swapping18K Block RAMsByte Write EnableImproved Bus AccessPowerManagementBank 2Bank 0Hibernate ModeSuspend ModeFPGA Intro<strong>du</strong>ction 39© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Spartan-3A DSP• Incorporates the primary features from earlier Virtexfamily DSP48 blocks• The DSP48A block supports full MAC support with a preadderstage, multiplier, and add/accumulate state• Dedicated DSP block offer the lowest cost/MAC in aFPGAFPGA Intro<strong>du</strong>ction 40© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


DSP48A BlockIncorporates primary features from V4 DSP48 and includes a pre-adder stage• IntegratedXtremeDSP Slice– Application optimizedcapacity• 3400A – 126 DSP48As• 1800A – 84 DSP48As– Integrated pre-adderoptimized for filters– 250 MHz operation, standardspeed grade– Compatible with Virtex-DSP• Increased memory capacity and performance– Also important for embedded processing, complex IP, etcFPGA Intro<strong>du</strong>ction 41© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Architecture AlignmentVirtex-6 FPGAsSpartan-6 FPGAsFIFO Logic760KLogic CellDeviceTri-mode EMACSystem MonitorCommon ResourcesLUT-6 CLBBlockRAMDSP SlicesHigh-performance ClockingParallel I/OHSS Transceivers*PCIe ® Interface150KLogic CellDeviceHardened Memory Controllers3.3 Volt compatible I/O*Optimized for target application in each familyEnables IP Portability, Protects Design InvestmentsFPGA Intro<strong>du</strong>ction 43© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Addressing the Broad Range of TechnicalRequirementsSpartan-6 LXSpartan-6 LXTVirtex-6 LXTMarket SizeLowest costlogic + DSPLowest logic +high-speed serialVirtex-6 HXTVirtex-6 SXTHigh logic density +serial connectivityUltra high-speed serialconnectivity + logicDSP + logic +serial connectivityApplication Market Segments+ 100s MoreFPGA Intro<strong>du</strong>ction 44© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Higher DSP Performance• Most advanced DSP architecture– New optional pre-adder for symmetric filters– 25x18 multiplier• High resolution filters• Efficient floating point support– ALU-like second stage enables mapping of advancedoperations• Programmable op-code• SIMD support• Addition / Subtraction / Logic functions– Pattern detector• Lowest power consumption• Highest DSP slice capacity– Up to 2K DSP SlicesFPGA Intro<strong>du</strong>ction 45© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


RegRegRegRegReason 1: FPGAs handle high computational workloadsSpeed up FIR Filters by implementing with parallel architectureProgrammable DSP - SequentialCoefficients256 clockcyclesneededData InX+RegData Out1 GHz256 clock cyclesMAC Unit= 4 MSPSData InC0FPGA - Fully Parallel ImplementationXC1C0 X256 operationsin 1 clock cycleC2500 MHzX+1 clock cycleC3Data OutX… C255= 500 MSPSXExample 256 TAP Filter ImplementationFPGA Intro<strong>du</strong>ction 47© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Reason 2: FPGAs are ideal for multi-channel DSP DesignsCan implement multiple channels running in parallel or time multiplex channels into one filter20MHzSamplesLPFLPFLPFLPFch1ch2ch3ch480MHzSamplesLPFMulti ChannelFilter• Many low sample rate channels can be multiplexed (e.g.TDM) and processed in the FPGA, at a high rate• Interpolation (using zeros) can also drive sample rates higherFPGA Intro<strong>du</strong>ction 48© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Reason 3: Customize Architectures to Suit your GoalsFPGAs allow Cost/Performance tradeoffsParallel Semi-Parallel Serial× +××++++××++++D Q×++D Q×+SpeedOptimized for?CostFPGA Intro<strong>du</strong>ction 49© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Reason 4: Lower System Cost through IntegrationImplement Interface Logic within FPGA to connect DSP functions to I/O and Memory DevicesAFEA/DA/DDDCDDCD/AD/ADDCDDCDUCDUCSDRAMMACsControlDUCDUCDSPProcs.FPGAMACsControlDSPCardHundreds ofTermination ResistorsQuadTRxSDRAMPowerPCFPGASSTL3TranslatorsQuadTRxASSPNetworkCardA/DA/DSDRAMControlPL4PowerPC PowerPC3.125 GbpsASSPD/AD/AMACs, DUCs,DDCs, LogicPowerPC PowerPCControl CORBASDRAMFPGA Intro<strong>du</strong>ction 50© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


RegRegRegRegRegRegRegRegRegThe XtremeDSP Slice AdvantageWithout XtremeDSP Slice, Parallel Adder Tree Consumes Logic ResourcesData InParallel Adder Tree ImplementationC0XC1+C0XC2+XC3Consumes Logic toImplement Adders• 32 TAP filter implementation willconsume 1,461 logic cells toimplement adders in fabric+XC4+XC5XC0C6XC7XC30Fabric and Routing MayRe<strong>du</strong>ce PerformanceXC31+ + +++Data OutVariableLatencyXFPGA Intro<strong>du</strong>ction 52© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


The XtremeDSP Slice AdvantageRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegRegWith XtremeDSP Slice, Parallel Adder Tree Consumes Zero Logic ResourcesParallel Adder Cascade ImplementationData InC0XC1XC2XC3XC4XC5XC6XC7XC30XC31X++++++++++Data Out32 TAP filter implementation implemented entirely with XtremeDSP SlicesFPGA Intro<strong>du</strong>ction 53© 2009 Xilinx, Inc. All Rights ReservedFor Academic Use Only


Conception d’un système programmablePort JtagPlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOIntégration d’un périphérique - Mapping mémoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 262 / 298


Conception d’un système programmablePort JtagIEEE 1149.1 JTAG Boundary ScanMotivationsTesteur Bed-of-nailsVue matérielle <strong>du</strong> boundary scanCellule scan de baseContrôleur Test Access Port (TAP)Instructions Boundary scanConclusionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 263 / 298


Conception d’un système programmablePort JtagBed of NailsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 264 / 298


Conception d’un système programmablePort JtagBed of NailsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 265 / 298


Conception d’un système programmablePort JtagMotivations pour un StandardBed-of-nails printed circuit board tester goneWe put components on both sides of PCB an replaced DIPs with flatpacks to re<strong>du</strong>ce in<strong>du</strong>ctanceNails would hit componentsRe<strong>du</strong>ced spacing between PCB wiresNails would short the wiresPCB Tester must be replaced with built-in test delivery system – JTAGdoes thatNeed standard System Test Port and BusIntegrate components from different vendorsTest bus identical for various componentsOne chip has test hardware for other chipsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 266 / 298


Conception d’un système programmablePort JtagConcept des testeurs Bed of NailsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 267 / 298


Conception d’un système programmablePort JtagTesteurs Bed of NailsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 268 / 298


Conception d’un système programmablePort JtagPurpose of StandardLets test instructions and test data be serially fed into acomponent-under-test (CUT)Allows reading out of test resultsAllows RUNBIST command as an instructionToo many shifts to shift in external testsJTAG can operate at chip, PCB, and system levelsAllows control of tri-state signals <strong>du</strong>ring testingLets other chips collect responses from CUTLets system interconnect be tested separately from componentsLets components be tested separately from wiresBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 269 / 298


Conception d’un système programmablePort JtagSystem Test LogicBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 270 / 298


Conception d’un système programmablePort JtagInstruction Register Loading with JTAGBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 271 / 298


Conception d’un système programmablePort JtagSystem View of InterconnectBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 272 / 298


Conception d’un système programmablePort JtagBoundary Scan Chain ViewBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 273 / 298


Conception d’un système programmablePort JtagElementary Boundary Scan CellBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 274 / 298


Conception d’un système programmablePort JtagSerial Board / MCM ScanBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 275 / 298


Conception d’un système programmablePort JtagParallel Board / MCM ScanBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 276 / 298


Conception d’un système programmablePort JtagIndependent Path Board / MCM ScanBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 277 / 298


Conception d’un système programmablePort JtagTap Controller SignalsTest Access Port (TAP) includes these signals:Test Clock Input (TCK) – Clock for test logic Can run at different rate fromsystem clockTest Mode Select (TMS) – Switches system from functional to test modeTest Data Input (TDI) – Accepts serial test data and instructions – used toshift in vectors or one of many test instructionsTest Data Output (TDO) – Serially shifts out test results captured inboundary scan chain (or device ID or other internal registers)Test Reset (TRST) – Optional asynchronous TAP controller resetBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 278 / 298


Conception d’un système programmablePort JtagTap Controller State DiagramBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 279 / 298


Conception d’un système programmablePort JtagTap Controller TimingBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 280 / 298


Conception d’un système programmablePort JtagTAP Controller Power-Up Reset LogicBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 281 / 298


Conception d’un système programmablePort JtagBoundary Scan InstructionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 282 / 298


Conception d’un système programmablePort JtagSAMPLE / PRELOAD Instruction – SAMPLEPurpose:Get snapshot of normal chip output signals Put data on bound. scan chainbefore next instr.Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 283 / 298


Conception d’un système programmablePort JtagSAMPLE / PRELOAD Instruction – PRELOADBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 284 / 298


Conception d’un système programmablePort JtagEXTEST InstructionPurpose:Test off-chip circuits and board-level interconnectionsBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 285 / 298


Conception d’un système programmablePort JtagINTEST InstructionPurpose:Shifts external test patterns onto component External tester shifts componentresponses outBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 286 / 298


Conception d’un système programmablePort JtagINTEST Instruction ClocksBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 287 / 298


Conception d’un système programmablePort JtagRUNBIST InstructionPurpose:Allows you to issue BIST command to component through JTAG hardwareOptional instructionLets test logic control state of output pinsCan be determined by pin boundary scan cellCan be forced into high impedance stateBIST result (success or failure) can be left in boundary scan cell orinternal cellShift out through boundary scan chainMay leave chip pins in an indeterminate state (reset required beforenormal operation resumes)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 288 / 298


Conception d’un système programmablePort JtagCLAMP InstructionPurpose:Forces component output signals to be driven by boundary-scan registerBypasses the boundary scan chain by using the one-bit Bypass RegisterOptional instruction May have to add RESET hardware to control on-chip logicso that it does not get damaged (by shorting 0’s and 1’s onto an internal bus,etc.)Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 289 / 298


Conception d’un système programmablePort JtagIDCODE InstructionPurpose:Connects the component device identification register serially between TDI andTDO In the Shift-DR TAP controller state Allows board-level test controller orexternal tester to read out component ID Required whenever a JEDECidentification register is included in the designBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 290 / 298


Conception d’un système programmablePort JtagDevice ID Register -JEDEC CodeMSB 27 .. 12 11 .. 1 0 LSBPart Number (16 bits) Manufacturer (11 bits) ’1’Bertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 291 / 298


Conception d’un système programmablePort JtagUSERCODE InstructionPurpose:Intended for user-programmable components (FPGA’s, EEPROMs, etc.)Allows external tester to determine user programming of component Selectsthe device identification register as serially connected between TDI and TDOUser-programmable ID code loaded into device identification register On risingTCK edge Switches component test hardware to its system function Requiredwhen Device ID register included on user-programmable componentBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 292 / 298


Conception d’un système programmablePort JtagHIGHZ InstructionPurpose:Puts all component output pin signals into high-impedance state Control chiplogic to avoid damage in this mode May have to reset component after HIGHZruns Optional instructionBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 293 / 298


Conception d’un système programmablePort JtagBYPASS InstructionPurpose:Bypasses scan chain with 1-bit registerBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 294 / 298


Conception d’un système programmablePort JtagOptional / Required InstructionsInstructionBYPASSCLAMPEXTESTHIGHZIDCODEINTESTRUNBISTSAMPLE / PRELOADUSERCODEStatusMandatoryOptionalMandatoryOptionalOptionalOptionalOptionalMandatoryOptionalBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 295 / 298


Conception d’un système programmableSoftCore : NiosIIPlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOIntégration d’un périphérique - Mapping mémoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 296 / 298


Conception d’un système programmableNoC Embarqués : Bus hiérarchique, FIFOPlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOIntégration d’un périphérique - Mapping mémoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 297 / 298


Conception d’un système programmableIntégration d’un périphérique - Mapping mémoirePlan1 Intro<strong>du</strong>ction2 Outils et méthodes de conception3 FPGA4 Conception d’un système programmablePort JtagSoftCore : NiosIINoC Embarqués : Bus hiérarchique, FIFOIntégration d’un périphérique - Mapping mémoireBertrand Granado Enseignant-Chercheur (LIP6 / UPMC) Sysprog Hiver 2014 298 / 298

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!