Vous êtes sur la page 1sur 72

Introduction à la conception SoPC

Introduction à la conception SoPC MASTER SEC Hervé BOEGLEN
Introduction à la conception SoPC MASTER SEC Hervé BOEGLEN

MASTER SEC Hervé BOEGLEN

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

1. Introduction

Evolution de l’électronique depuis 1948

Introduction  Evolution de l’électronique depuis 1948 2011 : Intel Core I7 2600K, 32nm : Die
Introduction  Evolution de l’électronique depuis 1948 2011 : Intel Core I7 2600K, 32nm : Die

2011 : Intel Core I7 2600K, 32nm :

Die : 216mm 2 1,16 x 10 9 transistors !

1. Introduction

La loi de Moore

1. Introduction  La loi de Moore 4/72

4/72

1. Introduction

La densité de puissance

1. Introduction  La densité de puissance 5/72

5/72

1. Introduction

Les systèmes numériques aujourd’hui :

1. Introduction  Les systèmes numériques aujourd’hui : 6/72
1. Introduction  Les systèmes numériques aujourd’hui : 6/72

1. Introduction

La conception des systèmes numériques :

1. Introduction  La conception des systèmes numériques : 7/72

7/72

1. Introduction

Les cibles logicielles et matérielles :

Les cibles logicielles (=µP, µC, DSP)

1. Introduction  Les cibles logicielles et matérielles :  Les cibles logicielles (=µP, µC, DSP)

8/72

1. Introduction

Les µP :

1. Introduction  Les µP : 9/72
1. Introduction  Les µP : 9/72

9/72

1. Introduction

Les µC :

1. Introduction  Les µC : 10/72
1. Introduction  Les µC : 10/72

1. Introduction

Les µC :

1. Introduction  Les µC : 11/72

11/72

1. Introduction

Les Digital Signal Processors (DSP) :

1. Introduction  Les Digital Signal Processors (DSP) : 12/72

1. Introduction

Les Digital Signal Processors (DSP) :

1. Introduction  Les Digital Signal Processors (DSP) : 13/72

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)

1. Introduction

Les cibles matérielles spécialisées (ASIC) :

1. Introduction  Les cibles matérielles spécialisées (ASIC) : 15/72

15/72

1. Introduction

Les différentes cibles matérielles :

1. Introduction  Les différentes cibles matérielles : 16/72

16/72

1. Introduction

ASIC full custom :

1. Introduction  ASIC full custom : 17/72

1. Introduction

ASIC standard cell :

1. Introduction  ASIC standard cell : 18/72

1. Introduction

ASIC gate array:

1. Introduction  ASIC gate array: 19/72

1. Introduction

ASIC gate array:

1. Introduction  ASIC gate array: 20/72

1. Introduction

Circuit configurable (ici FPGA) :

1. Introduction  Circuit configurable (ici FPGA) : 21/72

21/72

1. Introduction

Le marché des FPGA :

Xilinx 58% 31% 11% Altera All Others
Xilinx
58%
31%
11%
Altera
All Others

1. Introduction

ASIC vs FPGA:

1. Introduction  ASIC vs FPGA: 23/72

23/72

1. Introduction

De 1997 à 2005 : évolution des coûts

1. Introduction  De 1997 à 2005 : évolution des coûts 24/72

1. Introduction

Temps de conception comparés :

1. Introduction  Temps de conception comparés : 25/72

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

de masse – Personnalisation – Sécurité industrielle • Inconvénients : – Prix du 1 e r

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),

1. Introduction

Conclusion FPGA :

1. Introduction  Conclusion FPGA : • Avantages : – Possibilité de prototypage, – Low time

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

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…

FPGA sont de plus en plus performants et de moins en moins chers, • Les FPGA

28/72

2. Technologie des FPGA

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 custom- manufactured 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 Logic Logic Element Element Element Logic Logic Logic Element Element Element Logic Logic Logic
Logic
Logic
Logic
Element
Element
Element
Logic
Logic
Logic
Element
Element
Element
Logic
Logic
Logic
Element
Element
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 …

A

B

Element  Look-Up Table (LUT) + register + extra … A B Out SRAM 0 LUT

Out

SRAM 0 LUT Cell 0 0 Out 0 1 0 1 A B
SRAM
0
LUT
Cell
0
0
Out
0
1
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

Virtex 5: 6 inputs

32/72

2. Technologie des FPGA Connecting the Logic

I/O Pads

y LE z f I/O Pad x
y
LE
z
f
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

SRAM

cell

In2 Logic Block In1 Out
In2
Logic Block
In1
Out
metal wires  Choose pattern so any logic element can connect to any other SRAM cell

34/72

2. Technologie des FPGA Modern, mid-size FPGA – 2S60

Adaptive Logic Modules

M512 Block

M4K Block

High-Speed I/O Channels with Dynamic Phase Alignment (DPA)

I/O Channels with External Memory Interface Circuitry

(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O
(DPA) I/O Channels with External Memory Interface Circuitry 60,440 Equivalent Logic Elements 2,544,192 Memory Bits I/O

60,440 Equivalent Logic Elements 2,544,192 Memory Bits

I/O Channels with External Memory Interface Circuitry

High-Speed I/O Channels with DPA

Digital Signal Processing (DSP) Blocks

M-RAM Blocks

Phase-Locked Loops (PLL)

35/72

90nm Stratix II 2S60

2. Technologie des FPGA Low-cost Cyclone II range

2. Technologie des FPGA Low-cost Cyclone II range 36/72

36/72

2. Technologie des FPGA Low-cost Cyclone II IO

2. Technologie des FPGA Low-cost Cyclone II IO 37/72
2. Technologie des FPGA Low-cost Cyclone II IO 37/72

37/72

2. Technologie des FPGA

400MHZ max mais traitement parallèle !

Exemple soit à réaliser :

mais traitement parallèle !  Exemple soit à réaliser : • Réalisation logicielle à 400MHz :

Réalisation logicielle à 400MHz : 7 cycles machine = 17,5 ns

logicielle à 400MHz : 7 cycles machine = 17,5 ns • Réalisation matérielle : temps de

Réalisation matérielle : temps de traversée des portes = 2 ns

à 400MHz : 7 cycles machine = 17,5 ns • Réalisation matérielle : temps de traversée

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

 Il existe un grand nombre de HDL :  VHDL (Europe)  Verilog (USA) 

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”).

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.

4. Le langage VHDL

Exemple : Démultiplexeur 2 vers 4 :

4. Le langage VHDL  Exemple : Démultiplexeur 2 vers 4 : 44/72

4. Le langage VHDL

Exemple : Démultiplexeur 2 vers 4 :

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 .

par le biais de processus process . Les processus peuvent avoir leurs propres variables locales variable

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 après le signal ayant réveillé le processus.

47/72

4. Le langage VHDL

Exemples :

4. Le langage VHDL  Exemples : 48/72
4. Le langage VHDL  Exemples : 48/72

4. Le langage VHDL

Règle d’or : pas de synthèse sans simulation testbench.

4. Le langage VHDL  Règle d’or : pas de synthèse sans simulation  testbench. 49/72
4. Le langage VHDL  Règle d’or : pas de synthèse sans simulation  testbench. 49/72

4. Le langage VHDL

Testbench :

4. Le langage VHDL  Testbench : 50/72
4. Le langage VHDL  Testbench : 50/72

50/72

5. Outils de développement ALTERA Software & Development Tools

de développement ALTERA Software & Development Tools  Quartus II  All Stratix, Cyclone & Hardcopy

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

5. Outils de développement ALTERA

// Begin: Write Control always @ (posedge wrbusy_int) begin // Begin: write0 Write <= 1'b1;
// Begin: Write Control
always @ (posedge wrbusy_int)
begin
// Begin: write0 Write <= 1'b1; Control
always @ (posedge wrbusy_int)
write1 <= 1'b0;
begin
end
writex // Begin: write0 <= 1'b0; Write <= 1'b1; Control
write1 always <= @ (posedge 1'b0; wrbusy_int)
writex begin <= 1'b0;
always @ (negedge write0 wrbusy_int) <= 1'b1;
end
begin
write1 <= 1'b0;
end
write0 always <= @ writex (negedge 1'b0; <= wrbusy_int) 1'b0;
begin end
always end @ write0 (posedge always <= @ write0_done) (negedge 1'b0; wrbusy_int)
begin
begin
write1 <= 1'b1;
always @ write0 (posedge <= write0_done) 1'b0;
begin end
write1 <= 1'b1;
always @ (posedge write0_done)
begin
write1 <=
1'b1;

IP Cores

52

Synthesis

3-rd Party

or Altera

Placement & Routing

Placement & Routing
Placement & Routing
Placement & Routing
Synthesis 3-rd Party or Altera Placement & Routing Physical Synthesis Timing & Power Analysis Report

Physical

Synthesis

Physical Synthesis
Physical Synthesis
Physical Synthesis
Physical Synthesis
Physical Synthesis
Physical Synthesis
Physical Synthesis
or Altera Placement & Routing Physical Synthesis Timing & Power Analysis Report Assembler Over 10 Million
or Altera Placement & Routing Physical Synthesis Timing & Power Analysis Report Assembler Over 10 Million
or Altera Placement & Routing Physical Synthesis Timing & Power Analysis Report Assembler Over 10 Million

Timing & Power Analysis

Timing & Power Analysis
Timing & Power Analysis
& Routing Physical Synthesis Timing & Power Analysis Report Assembler Over 10 Million Lines of Code!
& Routing Physical Synthesis Timing & Power Analysis Report Assembler Over 10 Million Lines of Code!

Report

Assembler

Assembler

Assembler
Assembler

Over 10 Million Lines of Code!

& Routing Physical Synthesis Timing & Power Analysis Report Assembler Over 10 Million Lines of Code!

52/72

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

 Downloads into Device with Design  Captures State of Internal Nodes  Uses JTAG for

53/72

5. Outils de développement ALTERA SignalTap II Logic Analyzer

5. Outils de développement ALTERA SignalTap II Logic Analyzer 54 54/72
5. Outils de développement ALTERA SignalTap II Logic Analyzer 54 54/72

54

54/72

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

• 27-MHz and 50-MHz oscillators, external SMA clock input

• Eight 7-segment displays • 16 x 2 LCD display • 27-MHz and 50-MHz oscillators, external
• Eight 7-segment displays • 16 x 2 LCD display • 27-MHz and 50-MHz oscillators, external

55/72

6. NIOS II et SoPC Builder What is Nios II?

Altera’s Second Generation Soft-Core 32 Bit RISC Microprocessor

Developed Internally By Altera

Harvard Architecture

Royalty-Free

UART GPIO
UART
GPIO

Timer

SPI

SDRAM

Controller

Nios II CPU Debug On-Chip ROM On-Chip RAM Cache Avalon Switch Fabric
Nios II
CPU
Debug
On-Chip
ROM
On-Chip
RAM
Cache
Avalon Switch Fabric
FPGA
FPGA

56/72

6. NIOS II et SoPC Builder

Problem: Reduce Cost, Complexity & Power
Problem: Reduce Cost, Complexity & Power

I/O

I/O

I/O

CPU

I/O I/O I/O FPGA FPGA CPU DSP
I/O
I/O
I/O
FPGA FPGA
CPU
DSP
Flash
Flash
SDRAM
SDRAM

DSP

Solution: Replace External Devices

with Programmable Logic

57/72

6. NIOS II et SoPC Builder

System On A Programmable Chip (SOPC)
System On A Programmable Chip (SOPC)
FPGA
FPGA
Flash
Flash
SDRAM
SDRAM

Solution: CPU is a Critical Replace Control External Function Devices

Required with for Programmable System-Level Logic Integration

58/72

6. NIOS II et SoPC Builder

FPGA Hardware Design Flow with Quartus II and 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 •
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
• Compile and generate a programming file
.sof / .pof file
.sof / .pof file

59/72

6. NIOS II et SoPC Builder

Nios II System Architecture
Nios II System Architecture

Nios II

CPU

On-Chip

Debug Core

Off-Chip Software Trace Memory

Instr.

On-Chip Debug Core Off-Chip Software Trace Memory Instr. Data Address Decoder Interrupt Controller Wait

Data

Debug Core Off-Chip Software Trace Memory Instr. Data Address Decoder Interrupt Controller Wait State

Address

Decoder

Interrupt

Controller

Wait State

Generation

Data in

Multiplexer

Master

Arbitration

Dynamic

Bus Sizing

Avalon

Master/

Slave

Port

Interfaces

Bus Sizing Avalon Master/ Slave Port Interfaces UART 0 UART n Timer 0 Timer n SPI
Bus Sizing Avalon Master/ Slave Port Interfaces UART 0 UART n Timer 0 Timer n SPI
Bus Sizing Avalon Master/ Slave Port Interfaces UART 0 UART n Timer 0 Timer n SPI
Bus Sizing Avalon Master/ Slave Port Interfaces UART 0 UART n Timer 0 Timer n SPI
Bus Sizing Avalon Master/ Slave Port Interfaces UART 0 UART n Timer 0 Timer n SPI
Bus Sizing Avalon Master/ Slave Port Interfaces UART 0 UART n Timer 0 Timer n SPI
UART 0 UART n
UART 0
UART n
Timer 0 Timer n SPI 0 SPI n GPIO 0 GPIO n DMA 0 DMA
Timer 0
Timer n
SPI 0
SPI n
GPIO 0
GPIO n
DMA 0
DMA n
Memory
Memory
Interface
Interface
User-Defined
Interface
60/72

Avalon Switch Fabric

n GPIO 0 GPIO n DMA 0 DMA n Memory Memory Interface Interface User-Defined Interface 60/72

6. NIOS II et SoPC Builder

Nios II Block Diagram
Nios II Block Diagram
Nios II Processor Core Program Controller & Hardware- Instruction Address Assisted Debug Module General
Nios II Processor Core
Program
Controller
&
Hardware-
Instruction
Address
Assisted
Debug Module
General
Purpose
Registers
r0 to r31
Cache
Generation
Exception
Controller
Interrupt
0]
Controller
Control
Registers
ctl0 to ctl4
Data
Cache
Custom
Arithmetic
Instruction
Logic Unit
Logic

reset

Instruction

Master

Port

clock

JTAG interface to Software Debugger

Instruction Master Port clock JTAG interface to Software Debugger irq[31 Data Master Port Custom I/O Signals

irq[31

Data

Master

Port

Instruction Master Port clock JTAG interface to Software Debugger irq[31 Data Master Port Custom I/O Signals
Instruction Master Port clock JTAG interface to Software Debugger irq[31 Data Master Port Custom I/O Signals

Custom

I/O Signals

61/72

6. NIOS II et SoPC Builder

Nios II Processor Architecture
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

− Branch Prediction − 32 Prioritized Interrupts − Custom Instructions − JTAG-Based Hardware Debug Unit 62/72

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 − ECONOMY: Optimized
− 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

6. NIOS II et SoPC Builder

Binary Compatibility / Flexible Performance Nios II /f Fast Nios II /s Standard Nios II
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
Logic Usage
(Logic Elements)
1400 - 1800
1200 – 1400
600 – 700
Custom
Up to 256
Instructions

64/72

6. NIOS II et SoPC Builder Nios II: Hard Numbers

   

Nios II/f

 

Nios II/s

 

Nios II/e

Stratix II

200

DMIPS @ 175MHz

90

DMIPS @ 175MHz

28

DMIPS @ 190MHz

1180

LEs

800 LEs

400

LEs

 

1

of 8 DSP

 

4K Icache, 2K Dcache Stratix 2S10-C5

4K Icache, No Dcache Stratix 2S10-C5

No Icache, No Dcache Stratix 2S10-C5

Stratix

150

DMIPS @ 135MHz

67

DMIPS @ 135MHz

22

DMIPS @ 150MHz

1800

LEs

1200

LEs

550

LEs

1

of 8 DSP

 

4K Icache, 2K Dcache Stratix 1S10-C5

4K Icache, No Dcache Stratix 1S10-C5

No Icache, No Dcache Stratix 1S10-C5

Cyclone

100

DMIPS @ 125MHz

62

DMIPS @ 125MHz

20

DMIPS @ 140MHz

1800

LEs

1200

LEs

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

6. NIOS II et SoPC Builder SOPC Builder System Contents Page Over 60 Cores Available Today

SOPC Builder System Contents Page

Over 60 Cores Available Today
Over 60
Cores Available
Today
 Altera, Partner & User Cores − − − − − − Processors Memory Interfaces
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 :

6. NIOS II et SoPC Builder  Notion de bloc IP : 67/72

6. NIOS II et SoPC Builder

Notion de bloc IP :

6. NIOS II et SoPC Builder  Notion de bloc IP : 68/72

68/72

6. NIOS II et SoPC Builder

Nios II System Design Flow SOPC Builder GUI Processor Library Configure Processor Custom Instructions Peripheral
Nios II System Design Flow
SOPC Builder GUI
Processor Library
Configure Processor
Custom Instructions
Peripheral Library
Select & Configure
Peripherals, IP
IP Modules
Software Development
Hardware Development
Connect Blocks
Nios II IDE
 HDL Source Files
 C Header files
 Testbench
 Custom Library
Generate
 Peripheral Drivers
Hardware
Executable
Configuration
Code
Synthesis &
File
Fitter
Verification
Compiler,
Linker, Debugger
& Debug
JTAG,
Serial, or
 User Design
 User Code
Ethernet
 Other IP Blocks
 Libraries
On-Chip
Altera
Debug
 RTOS
Quartus II
FPGA
Software Trace
Hard Breakpoints
SignalTap ® II
GNU Tools

69/72

6. NIOS II et SoPC Builder

Nios II IDE (Integrated Development Environment)*
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

* Based on Eclipse Project

and Hardware Break Points, Data Triggers, Trace  Flash Memory Programming Support * Based on Eclipse

70/72

6. NIOS II et SoPC Builder

Nios II IDE
Nios II IDE
6. NIOS II et SoPC Builder Nios II IDE List of Open Projects File Viewer Window
6. NIOS II et SoPC Builder Nios II IDE List of Open Projects File Viewer Window
6. NIOS II et SoPC Builder Nios II IDE List of Open Projects File Viewer Window
6. NIOS II et SoPC Builder Nios II IDE List of Open Projects File Viewer Window

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