Вы находитесь на странице: 1из 72

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

Вам также может понравиться