Le support du cours SoPC 2011

Transcription

Le support du cours SoPC 2011
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 développement ALTERA
(Quartus II + DE2)
6. NIOS II et SoPC Builder
2/72
1. Introduction
Evolution de l’électronique 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 systèmes numériques aujourd’hui :
6/72
1. Introduction
La conception des systèmes numériques :
7/72
1. Introduction
Les cibles logicielles et matérielles :
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 résumé sur les cibles logicielles :
• Avantages :
– Flexibilité: il suffit de modifier le programme pour
modifier l’application
– Simple à mettre en œuvre grâce à la programmation de
haut niveau (langage C) (possibilité de grande abstraction
par rapport au matériel)
– Temps de conception courts et coûts de conception faibles
– Prix de revient faible
• Inconvénients :
– Faibles performances (consommation de puissance, vitesse
de fonctionnement, puissance de calcul, etc,) à cause
d’une architecture séquentielle (une opération à la fois, ou
quelques unes dans le cas superscalaire) et de trop
nombreux accès à la mémoire (instructions + données)
14/72
1. Introduction
 Les cibles matérielles spécialisées (ASIC) :
15/72
1. Introduction
 Les différentes cibles matérielles :
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%
Altera
11%
All Others
22/72
1. Introduction
 ASIC vs FPGA:
23/72
1. Introduction
 De 1997 à 2005 : évolution des coûts
24/72
1. Introduction
 Temps de conception comparés :
25/72
1. Introduction
 Conclusion ASIC :
• Avantages :
–
–
–
–
–
Haute intégration,
Hautes performances (vitesse, consommation),
Coûts unitaires faibles en production de masse
Personnalisation
Sécurité industrielle
• Inconvénients :
–
–
–
–
–
Prix du 1 er exemplaire,
Pas d’erreur possible
Non-flexible
High time to market
Fabrication réservée aux spécialistes (fondeurs),
26/72
1. Introduction
 Conclusion FPGA :
• Avantages :
–
–
–
–
Possibilité de prototypage,
Low time to market
Adaptabilité aux évolutions futures (reconfiguration)
Flexibilité
• Inconvénients :
– Intégration limitée,
– Moins performant qu’un ASIC
– Prix unitaire élevé en production de masse
27/72
1. Introduction
 Mais les méthodes de conception évoluent car :
• Toujours plus d’intégration (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
0
1
SRAM
Cell
Out
0
1
A B
 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
I/O Pad
x
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
I/O Channels with
External Memory
Interface Circuitry
Adaptive Logic
Modules
High-Speed I/O
Channels with
DPA
M512 Block
Digital Signal
Processing
(DSP) Blocks
M4K Block
M-RAM Blocks
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 parallèle !
Exemple soit à réaliser :
• Réalisation logicielle à 400MHz : 7 cycles machine
= 17,5 ns
• Réalisation matérielle : temps de traversée des
portes = 2 ns
38/72
3. Les HDL
Définition :
 Un langage de description de matériel (Hardware Description
Language, HDL) est une instance d'une classe de langage
informatique ayant pour but la description formelle d'un système
électronique. Il peut généralement :
• décrire le fonctionnement du circuit,
• décrire sa structure,
• et servir à vérifier sa fonctionnalité par simulation ou preuve
formelle.
 Un HDL est une représentation textuelle d'un comportement
temporel ou d'une structure d'un circuit. En comparaison avec un
langage de programmation classique, la syntaxe et la sémantique
des HDL inclut des notations pour exprimer la concurrence et le
temps, qui sont les principaux attributs du matériel. Les classes de
langages dont la seule caractéristique est de décrire un circuit par
une hiérarchie de blocs interconnectés est appelée une netlist.
39/72
3. Les HDL
But :
 la simulation :
• L'un des objectifs des HDL est d'aboutir à une représentation
exécutable d'un circuit, soit sous forme autonome, soit à l'aide d'un
programme externe appelé simulateur. Cette forme exécutable
comporte une description du circuit à simuler, un générateur de
stimuli (vecteurs de test), ainsi que le dispositif implémentant la
sémantique du langage et l'écoulement du temps.
Il existe deux types de simulateurs, à temps discret, généralement
pour le numérique, et à temps continu pour l'analogique. Des HDL
existent pour ces deux types de simulations.
 La synthèse :
• En n'utilisant qu'un sous-ensemble d'un HDL, un programme spécial
appelé synthétiseur peut transformer une description de circuit en une
netlist de portes logiques ayant le même comportement que le circuit
de départ. Le sous-ensemble du langage utilisé à ce propos est alors
dit synthétisable. La sémantique synthétisable 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 matériel, c'est-à-dire un langage utilisé pour décrire
un système numérique matériel, comme, par exemple, un flip-flop
(bascule D) ou un microprocesseur
 Il peut modéliser un système par n'importe quelle vue, structurelle
ou comportementale, à tous les niveaux de description.
 De plus il peut servir non seulement à simuler un système mais
aussi à le synthétiser, c'est-à-dire être transformé par des logiciels
adaptés (synthétiseurs) en une série de portes logiques prêtes à être
gravées sur du silicium.
 VHDL est l'un des trois grands langages de description de matériel
utilisés majoritairement dans l'industrie, avec VHDL et SystemC.
 Le langage standard IEEE VHDL a été développé par le Groupe
d’Analyse et de Standardisation VHDL (VASG, pour “VHDL
Analysis and Standardization Group”).
42/72
4. Le langage VHDL
Structure d’une description VHDL :
Une description VHDL est composée de
2 parties indissociables à savoir :
• L’entité (ENTITY), elle définit les
entrées et sorties.
• L’architecture (ARCHITECTURE),
elle contient les instructions VHDL
permettant de réaliser le
fonctionnement attendu.
43/72
4. Le langage VHDL
 Exemple : Démultiplexeur 2 vers 4 :
44/72
4. Le langage VHDL
 Exemple : Démultiplexeur 2 vers 4 :
45/72
4. Le langage VHDL
 Instructions concurrentes et séquentielles :
Comme tout langage de description de matériel, le
VHDL décrit des structures par assemblage
d'instructions concurrentes dont l'ordre d'écriture n'a
aucune importance, contrairement aux instructions
séquentielles qui sont exécutées les unes après les
autres, comme c'est la cas du C.
VHDL offre cependant la possibilité d'utiliser des
instructions séquentielles, 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 régi par les
règles suivantes :
 Un processus est une boucle infinie , lorsqu'il arrive à la fin du code, il
reprend automatiquement au début,
 Un processus doit être sensible des points d'arrêt de façon à le
synchroniser. La synchronisation est donc indiquée par un point d'arrêt
qui est évènement particulier. Il existe 2 types de points d'arrêts :
• Le processus est associé à une "liste de sensibilité" qui contient une
liste de signaux qui réveillent le processus lors d'un changement d'un
des signaux. Sa syntaxe est process(liste de signaux)
• Le processus a des instructions d'arrêt wait dans sa description
interne. Le wait est sensible soit à un signal soit à un temps
physique,
 Les variables sont internes au processus et sont affectées immédiatement,
contrairement aux signaux qui eux ne sont pas affectés directement mais
par le biais de leur échéancier qui est mis à jour en fin de processus avec
la nouvelle valeur et le temps d'affectation qui correspond à un delta-cycle
47/72
après le signal ayant réveillé le processus.
4. Le langage VHDL
 Exemples :
48/72
4. Le langage VHDL
 Règle d’or : pas de synthèse sans simulation 
testbench.
49/72
4. Le langage VHDL
 Testbench :
50/72
5. Outils de développement 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 développement 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
IP Cores
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;
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 développement 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 développement ALTERA
SignalTap II Logic Analyzer
54/72
54
5. Outils de développement 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?
 Altera’s Second Generation Soft-Core 32 Bit RISC Microprocessor
Debug
On-Chip
ROM
On-Chip
RAM
Avalon Switch Fabric
Nios II
CPU
Cache
 Developed Internally By Altera
 Harvard Architecture
 Royalty-Free
UART
GPIO
Timer
SPI
SDRAM
Controller
FPGA
56/72
6. NIOS II et SoPC Builder
Problem: Reduce Cost, Complexity & Power
Flash
I/O
CPU
SDRAM
I/O
I/O
I/O
I/O
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
forProgrammable
System-Level Logic
Integration
with
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
Address
Decoder
Data
Interrupt
Controller
Avalon
Master/
Slave
Port
Interfaces
UART 0
Timer 0
SPI 0
Wait State
Generation
GPIO 0
Off-Chip
Software Trace
Memory
Data in
Multiplexer
Master
Arbitration
Dynamic
Bus Sizing
Avalon Switch Fabric
DMA 0
Memory
Interface
User-Defined
Interface
UART n
Timer n
SPI n
GPIO n
DMA n
Memory
Interface
60/72
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
General
Purpose
Registers
r0 to r31
Instruction
Master
Port
Instruction
Cache
Exception
Controller
Interrupt
Controller
irq[31..0]
Custom
I/O Signals
Custom
Instruction
Logic
Arithmetic
Logic Unit
Control
Registers
ctl0 to ctl4
Data
Cache
Data
Master
Port
61/72
6. NIOS II et SoPC Builder
Nios II Processor Architecture
 Classic
Pipelined RISC Machine
− 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
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
Software
− ECONOMY: Optimized for Size
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
Nios II /s
Standard
Nios II /e
Economy
Pipeline
6 Stage
5 Stage
None
H/W Multiplier &
Barrel Shifter
1 Cycle
3 Cycle
Emulated
In Software
Branch Prediction
Dynamic
Static
None
Instruction Cache
Configurable
Configurable
None
Data Cache
Configurable
None
None
1400 - 1800
1200 – 1400
600 – 700
Logic Usage
(Logic Elements)
Custom
Instructions
Up to 256
64/72
6. NIOS II et SoPC Builder
Nios II: Hard Numbers
Nios II/f
Stratix II
Stratix
Cyclone
Nios II/s
Nios II/e
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
90 DMIPS @ 175MHz
800 LEs
28 DMIPS @ 190MHz
400 LEs
4K Icache, No Dcache
Stratix 2S10-C5
67 DMIPS @ 135MHz
1200 LEs
No Icache, No Dcache
Stratix 2S10-C5
22 DMIPS @ 150MHz
550 LEs
4K Icache, No Dcache
Stratix 1S10-C5
62 DMIPS @ 125MHz
1200 LEs
No Icache, No Dcache
Stratix 1S10-C5
20 DMIPS @ 140MHz
550 LEs
4K Icache, 1K Dcache
Cyclone 1C4-C6
2K Icache, No Dcache
Cyclone 1C4-C6
No Icache, No Dcache
Cyclone 1C4-C6
65/72
* 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

Over 60
Cores Available
Today
Altera, Partner & User Cores
−
−
−
−
−
−

Processors
Memory Interfaces
Peripherals
Bridges
Hardware Accelerators
Import User Logic
(ie. custom peripherals)
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
Configure Processor
Custom Instructions
Peripheral Library
Select & Configure
Peripherals, IP
IP Modules
Hardware Development
Software Development
Nios II IDE
Connect Blocks

HDL Source Files

Testbench
Synthesis &
Fitter

User Design

Other IP Blocks
Quartus II
Generate
Hardware
Configuration
File

C Header files

Custom Library

Peripheral Drivers
Executable
Code
Compiler,
Linker, Debugger
Verification
& Debug
JTAG,
Serial, or
Ethernet
Altera
FPGA
On-Chip
Debug
Software Trace
Hard Breakpoints
SignalTap® II

User Code

Libraries

RTOS
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
 Démonstration :
 Emulateur de DSP SNES des consoles Super
Nintendo
72/72