Академический Документы
Профессиональный Документы
Культура Документы
Plan
1. Introduction 2. Technologie des FPGA 3. Les HDL 4. Le langage VHDL 5. Outils de dveloppement ALTERA (Quartus II + DE2) 6. NIOS II et SoPC Builder
2/72
1. Introduction
Evolution de llectronique depuis 1948
2011 : Intel Core I7 2600K, 32nm : Die : 216mm2 1,16 x 109 transistors !
3/72
1. Introduction
La loi de Moore
4/72
1. Introduction
La densit de puissance
5/72
1. Introduction
Les systmes numriques aujourdhui :
6/72
1. Introduction
La conception des systmes numriques :
7/72
1. Introduction
Les cibles logicielles et matrielles :
Les cibles logicielles (=P, C, DSP)
8/72
1. Introduction
Les P :
9/72
1. Introduction
Les C :
10/72
1. Introduction
Les C :
11/72
1. Introduction
Les Digital Signal Processors (DSP) :
12/72
1. Introduction
Les Digital Signal Processors (DSP) :
13/72
1. Introduction
En rsum sur les cibles logicielles :
Avantages :
Flexibilit: il suffit de modifier le programme pour modifier lapplication Simple mettre en uvre grce la programmation de haut niveau (langage C) (possibilit de grande abstraction par rapport au matriel) Temps de conception courts et cots de conception faibles Prix de revient faible
Inconvnients :
Faibles performances (consommation de puissance, vitesse de fonctionnement, puissance de calcul, etc,) cause dune architecture squentielle (une opration la fois, ou quelques unes dans le cas superscalaire) et de trop nombreux accs la mmoire (instructions + donnes)
14/72
1. Introduction
Les cibles matrielles spcialises (ASIC) :
15/72
1. Introduction
Les diffrentes cibles matrielles :
16/72
1. Introduction
ASIC full custom :
17/72
1. Introduction
ASIC standard cell :
18/72
1. Introduction
ASIC gate array:
19/72
1. Introduction
ASIC gate array:
20/72
1. Introduction
Circuit configurable (ici FPGA) :
21/72
1. Introduction
Le march des FPGA :
Xilinx
58% 31%
11%
Altera
All Others
22/72
1. Introduction
ASIC vs FPGA:
23/72
1. Introduction
De 1997 2005 : volution des cots
24/72
1. Introduction
Temps de conception compars :
25/72
1. Introduction
Conclusion ASIC :
Avantages :
Haute intgration, Hautes performances (vitesse, consommation), Cots unitaires faibles en production de masse Personnalisation Scurit industrielle Prix du 1 er exemplaire, Pas derreur possible Non-flexible High time to market Fabrication rserve aux spcialistes (fondeurs),
26/72
Inconvnients :
1. Introduction
Conclusion FPGA :
Avantages :
Possibilit de prototypage, Low time to market Adaptabilit aux volutions futures (reconfiguration) Flexibilit
Inconvnients :
Intgration limite, Moins performant quun ASIC Prix unitaire lev en production de masse
27/72
1. Introduction
Mais les mthodes de conception voluent car :
Toujours plus dintgration (SoC) Les FPGA sont de plus en plus performants et de moins en moins chers, Les FPGA remplacent peu peu les ASIC
28/72
29/72
Field Programmable
Customized by programming after manufacture One FPGA can serve every customer
30/72
Logic Element
Logic Element
Logic Element
Logic Element
Logic Element
Logic Element
Each logic element is programmed to to implement the desired function Programmable Connections 31/72
FPGAs typically use 4-input or larger LUTs Cyclone family (low cost): 4-inputs Stratix II: Adaptive Logic Module implements 4 6 input LUTs efficiently 32/72 Virtex 5: 6 inputs
FPGA
Logic elements implement the pieces of the circuit Now hook them up with the programmable routing
33/72
34/72
M512 Block
M4K Block High-Speed I/O Channels with Dynamic Phase Alignment (DPA) I/O Channels with External Memory Interface Circuitry
Phase-Locked Loops (PLL) 60,440 Equivalent Logic Elements 2,544,192 Memory Bits
35/72
36/72
37/72
38/72
3. Les HDL
Dfinition :
Un langage de description de matriel (Hardware Description Language, HDL) est une instance d'une classe de langage informatique ayant pour but la description formelle d'un systme lectronique. Il peut gnralement : dcrire le fonctionnement du circuit, dcrire sa structure, et servir vrifier sa fonctionnalit par simulation ou preuve formelle. Un HDL est une reprsentation textuelle d'un comportement temporel ou d'une structure d'un circuit. En comparaison avec un langage de programmation classique, la syntaxe et la smantique des HDL inclut des notations pour exprimer la concurrence et le temps, qui sont les principaux attributs du matriel. Les classes de langages dont la seule caractristique est de dcrire un circuit par une hirarchie de blocs interconnects est appele une netlist.
39/72
3. Les HDL
But :
la simulation :
L'un des objectifs des HDL est d'aboutir une reprsentation excutable d'un circuit, soit sous forme autonome, soit l'aide d'un programme externe appel simulateur. Cette forme excutable comporte une description du circuit simuler, un gnrateur de stimuli (vecteurs de test), ainsi que le dispositif implmentant la smantique du langage et l'coulement du temps. Il existe deux types de simulateurs, temps discret, gnralement pour le numrique, et temps continu pour l'analogique. Des HDL existent pour ces deux types de simulations. La synthse : En n'utilisant qu'un sous-ensemble d'un HDL, un programme spcial appel synthtiseur peut transformer une description de circuit en une netlist de portes logiques ayant le mme comportement que le circuit de dpart. Le sous-ensemble du langage utilis ce propos est alors dit synthtisable. La smantique synthtisable ignore typiquement toutes les constructions ayant un rapport avec le temps. 40/72
3. Les HDL
Il existe un grand nombre de HDL :
VHDL (Europe) Verilog (USA) SystemC SystemVerilog
41/72
4. Le langage VHDL
VHDL (VHSIC Hardware Description Langage) est un langage de description de matriel, c'est--dire un langage utilis pour dcrire un systme numrique matriel, comme, par exemple, un flip-flop (bascule D) ou un microprocesseur Il peut modliser un systme par n'importe quelle vue, structurelle ou comportementale, tous les niveaux de description. De plus il peut servir non seulement simuler un systme mais aussi le synthtiser, c'est--dire tre transform par des logiciels adapts (synthtiseurs) en une srie de portes logiques prtes tre graves sur du silicium. VHDL est l'un des trois grands langages de description de matriel utiliss majoritairement dans l'industrie, avec VHDL et SystemC. Le langage standard IEEE VHDL a t dvelopp par le Groupe dAnalyse et de Standardisation VHDL (VASG, pour VHDL Analysis and Standardization Group).
42/72
4. Le langage VHDL
Structure dune description VHDL : Une description VHDL est compose de 2 parties indissociables savoir : Lentit (ENTITY), elle dfinit les entres et sorties. Larchitecture (ARCHITECTURE), elle contient les instructions VHDL permettant de raliser le fonctionnement attendu.
43/72
4. Le langage VHDL
Exemple : Dmultiplexeur 2 vers 4 :
44/72
4. Le langage VHDL
Exemple : Dmultiplexeur 2 vers 4 :
45/72
4. Le langage VHDL
Instructions concurrentes et squentielles :
Comme tout langage de description de matriel, le VHDL dcrit des structures par assemblage d'instructions concurrentes dont l'ordre d'criture n'a aucune importance, contrairement aux instructions squentielles qui sont excutes les unes aprs les autres, comme c'est la cas du C. VHDL offre cependant la possibilit d'utiliser des instructions squentielles, plus naturelles pour l'homme, par le biais de processus process. Les processus peuvent avoir leurs propres variables locales variable .
46/72
4. Le langage VHDL
Le fonctionnement du processus est rgi par les rgles suivantes :
Un processus est une boucle infinie , lorsqu'il arrive la fin du code, il reprend automatiquement au dbut, Un processus doit tre sensible des points d'arrt de faon le synchroniser. La synchronisation est donc indique par un point d'arrt qui est vnement particulier. Il existe 2 types de points d'arrts : Le processus est associ une "liste de sensibilit" qui contient une liste de signaux qui rveillent le processus lors d'un changement d'un des signaux. Sa syntaxe est process(liste de signaux) Le processus a des instructions d'arrt wait dans sa description interne. Le wait est sensible soit un signal soit un temps physique, Les variables sont internes au processus et sont affectes immdiatement, contrairement aux signaux qui eux ne sont pas affects directement mais par le biais de leur chancier qui est mis jour en fin de processus avec la nouvelle valeur et le temps d'affectation qui correspond un delta-cycle 47/72 aprs le signal ayant rveill le processus.
4. Le langage VHDL
Exemples :
48/72
4. Le langage VHDL
Rgle dor : pas de synthse sans simulation testbench.
49/72
4. Le langage VHDL
Testbench :
50/72
IP Cores
Synthesis
3-rd Party or Altera
Physical Synthesis
Assembler
Report
52/72
52
53/72 53
54/72 54
55
Nios II CPU
Debug
FPGA
56/72
Flash
SDRAM
I/O
FPGA
CPU DSP
DSP
57/72
Flash
FPGA
SDRAM
CPU is a Critical Function Solution: ReplaceControl External Devices Required for System-Level Logic Integration with Programmable
58/72
Create FPGA project in Quartus II Build embedded sub-system in SOPC Builder Integrate sub-system in Quartus II Compile and generate a programming file
.sof / .pof file 59/72
SPI 0
SPI n
GPIO n
DMA 0
Memory Interface User-Defined Interface
DMA n
Memory Interface
60/72
irq[31..0]
Interrupt Controller
Data Cache
61/72
32 General Purpose Registers 3 Instruction Formats 32-Bit Instructions 32-Bit Data Path Flat Register File Separate Instruction and Data Cache (configurable sizes) Branch Prediction 32 Prioritized Interrupts Custom Instructions JTAG-Based Hardware Debug Unit
62/72
STANDARD: Balanced for Speed and Size ECONOMY: Optimized for Size
Software
Nios II /s Standard
5 Stage 3 Cycle Static Configurable None 1200 1400 Up to 256
Nios II /e Economy
None Emulated In Software None None None 600 700
64/72
Nios II/s
90 DMIPS @ 175MHz 800 LEs 4K Icache, No Dcache Stratix 2S10-C5 67 DMIPS @ 135MHz 1200 LEs 4K Icache, No Dcache Stratix 1S10-C5 62 DMIPS @ 125MHz 1200 LEs 2K Icache, No Dcache Cyclone 1C4-C6
Nios II/e
28 DMIPS @ 190MHz 400 LEs No Icache, No Dcache Stratix 2S10-C5 22 DMIPS @ 150MHz 550 LEs No Icache, No Dcache Stratix 1S10-C5 20 DMIPS @ 140MHz 550 LEs No Icache, No Dcache Cyclone 1C4-C6 65/72
Stratix
Cyclone
* FMax Numbers Based Reference Design Running From On-Chip Memory (Nios II/f 1.15 DMIPS / MHz)
Web-Based IP Deployment
66/72
67/72
68/72
Hardware Development
HDL Source Files Testbench
Software Development
Nios II IDE
Generate
Hardware Configuration File Executable Code
Quartus II
Altera FPGA
On-Chip Debug
Software Trace Hard Breakpoints SignalTap II
GNU Tools
69/72
Terminal window
71/72
72/72