Introduction la conception SoPC
MASTER SEC Herv BOEGLEN
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
2. Technologie des FPGA
29/72
2. Technologie des FPGA What is an FPGA ?
Field Programmable Gate Array Gate Array
Two-dimensional array of logic gates Traditionally connected with customized metal Every logic circuit (customer) needs a custommanufactured chip
Field Programmable
Customized by programming after manufacture One FPGA can serve every customer
FPGA: re-programmable hardware
30/72
2. Technologie des FPGA Basic Internals of an FPGA
Logic Element Logic Element Logic Element
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
2. Technologie des FPGA FPGA Logic Element
Look-Up Table (LUT) + register + extra
LUT A B 0 Out 0 0 1 A B 0 0 1 SRAM Cell Out
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
2. Technologie des FPGA Connecting the Logic
y LE z f I/O Pads x I/O Pad
FPGA
Logic elements implement the pieces of the circuit Now hook them up with the programmable routing
33/72
2. Technologie des FPGA Programmable Routing
Programmable switches connect fixed metal wires Choose pattern so any logic element can connect to any other
In2 Logic Block SRAM cell In1 Out
34/72
2. Technologie des FPGA Modern, mid-size FPGA 2S60
Adaptive Logic Modules I/O Channels with External Memory Interface Circuitry High-Speed I/O Channels with DPA Digital Signal Processing (DSP) Blocks M-RAM Blocks
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
90nm Stratix II 2S60
35/72
2. Technologie des FPGA Low-cost Cyclone II range
36/72
2. Technologie des FPGA Low-cost Cyclone II IO
37/72
2. Technologie des FPGA
400MHZ max mais traitement parallle !
Exemple soit raliser :
Ralisation logicielle 400MHz : 7 cycles machine = 17,5 ns
Ralisation matrielle : temps de traverse des portes = 2 ns
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
5. Outils de dveloppement ALTERA Software & Development Tools
Quartus II
All Stratix, Cyclone & Hardcopy Devices APEX II, APEX 20K/E/C, Excalibur, & Mercury Devices FLEX 10K/A/E, ACEX 1K, FLEX 6000 Devices MAX II, MAX 7000S/AE/B, MAX 3000A Devices
Quartus II Web Edition
Free Version Not All Features & Devices Included
See www.altera.com for Feature Comparison
51/72
5. Outils de dveloppement ALTERA
// Begin: Write Control always @ (posedge wrbusy_int) begin // Begin: Write Control write0 <= 1'b1; always @ (posedge wrbusy_int) write1 <= 1'b0; begin writex <= 1'b0; Control // Begin: write0 Write <= 1'b1; end always @ (posedge wrbusy_int) write1 <= 1'b0; begin <= 1'b0; writex always @ (negedge wrbusy_int) write0 <= 1'b1; end begin write1 <= 1'b0; write0 <= writex 1'b0; <= 1'b0; always @ (negedge wrbusy_int) end beginend write0 <= 1'b0; always @ (posedge write0_done) end always @ (negedge wrbusy_int) begin begin write1 <= write0 1'b1; <= 1'b0; always @ (posedge write0_done) beginend write1 <= 1'b1; always @ (posedge write0_done) begin write1 <= 1'b1;
IP Cores
Synthesis
3-rd Party or Altera
Placement & Routing
Physical Synthesis
Timing & Power Analysis
Assembler
Over 10 Million Lines of Code!
Report
52/72
52
5. Outils de dveloppement ALTERA SignalTap II Logic Analyzer
Embedded Logic Analyzer
Downloads into Device with Design Captures State of Internal Nodes Uses JTAG for Communication
53/72 53
5. Outils de dveloppement ALTERA SignalTap II Logic Analyzer
54/72 54
5. Outils de dveloppement ALTERA DE2 board
Specifications FPGA Cyclone II EP2C35F672C6 FPGA and EPCS16 serial configuration device I/O Devices Built-in USB Blaster for FPGA configuration 10/100 Ethernet, RS-232, Infrared port Video Out (VGA 10-bit DAC) Video In (NTSC/PAL/Multi-format) USB 2.0 (type A and type B) PS/2 mouse or keyboard port Line-in, Line-out, microphone-in (24-bit audio CODEC) Expansion headers (76 signal pins) Memory 8-MB SDRAM, 512-KB SRAM, 4-MB Flash SD memory card slot Switches, LEDs, Displays, and Clocks 18 toggle switches 4 debounced pushbutton switches 18 red LEDs, 9 green LEDs Eight 7-segment displays 16 x 2 LCD display 55/72 27-MHz and 50-MHz oscillators, external SMA clock input
55
6. NIOS II et SoPC Builder What is Nios II?
Alteras Second Generation Soft-Core 32 Bit RISC Microprocessor
Developed Internally By Altera Harvard Architecture Royalty-Free
Cache
Avalon Switch Fabric
Nios II CPU
Debug
UART GPIO Timer SPI SDRAM Controller
On-Chip ROM On-Chip RAM
FPGA
56/72
6. NIOS II et SoPC Builder
Problem: Reduce Cost, Complexity & Power
I/O CPU I/O
I/O I/O I/O
Flash
SDRAM
I/O
FPGA
CPU DSP
DSP
Solution: Replace External Devices with Programmable Logic
57/72
6. NIOS II et SoPC Builder
System On A Programmable Chip (SOPC)
Flash
FPGA
SDRAM
CPU is a Critical Function Solution: ReplaceControl External Devices Required for System-Level Logic Integration with Programmable
58/72
6. NIOS II et SoPC Builder
FPGA Hardware Design Flow with Quartus II and SOPC Builder
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
6. NIOS II et SoPC Builder
Nios II System Architecture
Instr. Nios II CPU On-Chip Debug Core Data Interrupt Controller Wait State Generation GPIO 0 Off-Chip Software Trace Memory Data in Multiplexer Master Arbitration Dynamic Bus Sizing Address Decoder Avalon Master/ Slave Port Interfaces UART 0 UART n Timer 0 Timer n
SPI 0
SPI n
GPIO n
DMA 0
Memory Interface User-Defined Interface
DMA n
Memory Interface
60/72
Avalon Switch Fabric
6. NIOS II et SoPC Builder
Nios II Block Diagram
Nios II Processor Core
reset clock
JTAG interface to Software Debugger HardwareAssisted Debug Module Program Controller & Address Generation Exception Controller General Purpose Registers r0 to r31 Instruction Master Port Instruction Cache
irq[31..0]
Interrupt Controller
Control Registers ctl0 to ctl4 Data Master Port
Custom I/O Signals
Custom Instruction Logic
Arithmetic Logic Unit
Data Cache
61/72
6. NIOS II et SoPC Builder
Nios II Processor Architecture
Classic
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
Pipelined RISC Machine
6. NIOS II et SoPC Builder Nios II Versions
Nios II Processor Comes In Three ISA Compatible Versions
FAST: Optimized for Speed
STANDARD: Balanced for Speed and Size ECONOMY: Optimized for Size
Software
Code is Binary Compatible
No Changes Required When CPU is Changed
63/72
6. NIOS II et SoPC Builder
Binary Compatibility / Flexible Performance
Nios II /f Fast
Pipeline H/W Multiplier & Barrel Shifter Branch Prediction Instruction Cache Data Cache Logic Usage (Logic Elements) Custom Instructions 6 Stage 1 Cycle Dynamic Configurable Configurable 1400 - 1800
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
6. NIOS II et SoPC Builder Nios II: Hard Numbers
Nios II/f Stratix II
200 DMIPS @ 175MHz 1180 LEs 1 of 8 DSP 4K Icache, 2K Dcache Stratix 2S10-C5 150 DMIPS @ 135MHz 1800 LEs 1 of 8 DSP 4K Icache, 2K Dcache Stratix 1S10-C5 100 DMIPS @ 125MHz 1800 LEs 4K Icache, 1K Dcache Cyclone 1C4-C6
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)
6. NIOS II et SoPC Builder
SOPC Builder System Contents Page
Altera, Partner & User Cores
Processors Memory Interfaces Peripherals Bridges Hardware Accelerators Import User Logic (ie. custom peripherals)
Over 60 Cores Available Today
Web-Based IP Deployment
66/72
6. NIOS II et SoPC Builder
Notion de bloc IP :
67/72
6. NIOS II et SoPC Builder
Notion de bloc IP :
68/72
6. NIOS II et SoPC Builder
Nios II System Design Flow
SOPC Builder GUI
Processor Library Peripheral Library Configure Processor Select & Configure Peripherals, IP Connect Blocks
Custom Instructions IP Modules
Hardware Development
HDL Source Files Testbench
Software Development
Nios II IDE
C Header files Custom Library Peripheral Drivers
Generate
Hardware Configuration File Executable Code
Synthesis & Fitter
Verification & Debug
JTAG, Serial, or Ethernet
Compiler, Linker, Debugger
User Design Other IP Blocks
User Code Libraries RTOS
Quartus II
Altera FPGA
On-Chip Debug
Software Trace Hard Breakpoints SignalTap II
GNU Tools
69/72
6. NIOS II et SoPC Builder
Nios II IDE (Integrated Development Environment)*
Leading Edge Software Development Tool Target Connections
Hardware (JTAG) Instruction Set Simulator ModelSim-Altera Software
Advanced Hardware Debug Features
Software and Hardware Break Points, Data Triggers, Trace
Flash Memory Programming Support
70/72
* Based on Eclipse Project
6. NIOS II et SoPC Builder
Nios II IDE
List of Open Projects
File Viewer Window (for C code, C++, and assembly*)
Terminal window
71/72
6. NIOS II et SoPC Builder
Dmonstration : Emulateur de DSP SNES des consoles Super Nintendo
72/72