Vous êtes sur la page 1sur 83

Chapitre II-2 :

Conception SoPC (Altera)


Plan
1. Processeurs embarqus : conception conjointe
2. System on Programmable Chip =
1. Systmes base de Nios-II
2. Le bus systme Avalon
3. Les priphriques on-chip
1. Processeurs
embarqus, vers le
codesign
Processeurs embarqus
Bloc IP : Soft core
Propritaire : format netlist, FPGA dependant
Microblaze (Xilinx), Nios (Altera)
Libre : format VHDL, FPGA independant
Leon, OpenRISC, F-CPU
Architectures 32 bits, Harvard, RISC

Circuit implant sur support : hardcore


classique
Architectures de traitement utilises
dans lembarqu
FPGAs avec processeurs
Carte Altera NiosII Kit
Carte Nios-II Kit
Premire caractristiques du circuit
Stratix 1S10
10 570 Logic Elements (LE)
920 448 bits de mmoire on-chip
Pr-programme avec un design Nios-II prsent
dans la flash,
Lorsque la configuration est termine, le niosII
commence lexcution du boot code prsent en
flash
Fonctionnalit mixte
Une application peut tre compose
dune partie matrielle acclratrice sur le FPGA
Couple une partie logicielle en softcore

De plusieurs technos diffrentes

On a alors besoin dune conception conjointe


logicielle/matrielle (ou codesign)
Rupture dans la mthodologie classique !
Digital Set-Top Box System Diagram
Non Altera Altera Devices
Broadcast Signal Phone Altera Altera IP Solutions

Satellite, Terrestrial, Cable Other Services

Network Interface External


Control Bridge Interfaces
Digital
Digital
Digital
Tuner
Tuner
Tuner
ROM
ADC
ADC M82092IDE -
ADC
RAM CPU IDE Controller ATA1
Conditional M82371IDE -
Demodulation DRAM & Access IDE Controller ATA4
Demodulation
Demodulation
&FEC
FEC Manager
&&FEC MPEG

Decoder
FIR Compiler
Demultiplex & LAN Residential Color Space Converter
Descramble Link LAN

IDE A/V Decode Post A/V DAC Audio

Interface Video Encode Processing DAC Video

Timing
Personal Video Control
Recorder
Plasma Display Panel Module System Diagram
Non Altera Altera Devices
Altera Altera IP Solutions

Timing
Control


Color Space Converter
Digital Plasma Driver IC(N) SDRAM Controller
Display
Image Decode Display COF Strips
Processing
Source Driver


MPEG-2 Video Decoder
SDRAM (CS6651)
Color Laser Printer System Diagram
Non Altera Bus Altera Devices
Altera Altera IP Solutions
Other Services

Flash Card
Color Space Converter
Interface
DDR SDRAM Controller
I/O & PCI Compiler
System LAN
LAN
DDR Control Link
DDR SDRAM
SDRAM Controller Peripheral
Interface Peripheral 10/100 Ethernet MAC
USB 1.1 and 2.0
Device Controller
CPU PCI Bus

FIR Compiler
Color Space Converter
LCD Image Image Print Engine
Control CODEC Processing & Interface
Enhancement

LCD Print
Panel Engine
DSL Router System Diagram
Non Altera Bus Altera Devices
Altera Altera IP Solutions
Memory Other Services


Memory Security SDRAM Controller
CPU DES Encryption
Controller Processor
Rijndael Encryption/
Description
PCI-Utopia
AES Cyptoprocessor
PCI Bus Bridge

PCI-MII Traffic Management DSL Modem Utopia Master


Bridge (VoIP & Video Processing) Transmitter/Receiver
Chips PCI Compiler,
32-bit Target
10/100 Ethernet MAC
Ethernet
Ethernet
Ethernet
MAC
MAC
MAC

DSL
Ethernet
Ethernet Line
Ethernet
Transceiver
Transceiver
Transceiver

LAN
Factory Automation Image Sensor System Diagram
Non Altera Functional Block Altera Devices
Altera Altera IP Solutions
Other Services

Video Input Video Input Video Input



Nios Peripheral
Buffer Buffer Buffer Library
Memory Memory Memory UART
FIR Compiler

FIR Filter

Image-to-Data SRAM
Conversion
32-bit Flash
Processor
Recognition
Module

UART Configuration
UART
Manager

Profibus Host
Controller System
Auto Telematics/Entertainment System Diagram Non Altera Bus Altera Devices
Altera Functional Block Altera IP Solutions
Other Services Sub System


Telematics/Entertainment Controller
Memory OSD Display
RISC CPU & Nios Peripheral Library
GPS Subsystems CAN Bus
Image
Navigation MCAN2D1 CAN 2.0
Processing
System Network Controller

Car Multimedia Bus 10/100 Ethernet MAC


M82092IDE -
IDE Controller ATA1
Memory M82371IDE -
Card DVD Camera Phone/PDA Regional IDE Controller ATA4
Interface Interface Interface Interface Defined USB 2.0 Device
Road Controller
Tolling
Memory DVD Digital
Player Camera Mobile
Card
Phone / Smart
PDA card
Interface
2. Les composants dun
System on Programmable Chip
Standard Reference Design Block Diagram
Ethernet 1MB 8MB 16MB Compact 32MB
MAC/PHY SRAM FLASH FLASH SDRAM

Nios II Processor
Compact
Tri-State Tri-State SDRAM

Level Shifter
Address (32) Flash
Bridge Bridge Controller
Read PIOs
32-Bit
Avalon Switch Fabric

Write
Nios II UART
Processor Data In (32)
General
Data Out (32) ROM Periodic
Purpose JTAG_UART
(with Monitor) Timer
Timer
Reconfig
PIO
IRQ

IRQ #(6) 7-Segment


LED PIO LCD PIO Button PIO
LED PIO

Expansion 4
2 Digit
On-Chip Off-Chip 8 LEDs Header Momentary
Display
J12 buttons
a. Nios-II based
system
Principe du SOPC
1

Available
Programmable
Logic

3
2
Logic
Memory

PLLs
Nios II Processor Block Diagram
Nios II Processor Core
Tightly-Coupled
reset Instruction Mem
clock Program
Controller General
JTAG Hardware- & Purpose
Address Instruction Tightly-Coupled
interface Assisted Registers Cache
to Software Debug Module Generation r0 to r31 Instruction Mem
Debugger
Instruction Bus
Exception
Controller
Control
Interrupt Registers
irq[31..0] Controller ctl0 to ctl4 Data Bus

Data Tightly-Coupled
Cache Data Mem
Custom Arithmetic
Custom Instruction Logic Unit
I/O Signals Logic
Tightly-Coupled
Data Mem
Caractristiques du NiosII
Architecture de Harvard
Data Master port
Instruction Master port
Banc de 32 registres 32 bits,
Chacune des units prcdente dfinit larchitecture
NiosII, mais rien noblige que ces units soient ralises
en hard,
Exemple : lunit flottante est mule en Sw
Lorsquune instruction nest pas implmente en Hw, le
processeur gnre une exception, et lexception handler
appelle la routine dmulation Sw (instruction, div).
Diagramme du processeur Nios
Registres gnraux du Nios-II
Registres de contrle
Contrleur dinterruptions
Le processeur Nios-II supporte 32 niveaux
dinterruption (IRQ)
La priorit des interruptions est fixe par logiciel
Les interruptions sont autorises individuellement par le
registre ienable et globalement par le registre dtat
Une interruption est gnre si et seulement si les 3
conditions suivantes sont runies :
Lentre IRQi est active
Le bit i du registre ienable est 1
Le champs PIE du registre dtat est 1
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
Binary Compatibility / Flexible Performance
Nios II /f Nios II /s Nios II /e
Fast Standard Economy
Pipeline 6 Stage 5 Stage None
H/W Multiplier & Emulated
Barrel Shifter 1 Cycle 3 Cycle In Software
Branch Prediction Dynamic Static None

Instruction Cache Configurable Configurable None

Data Cache Configurable None None

TCM (Instr / Data) Up to: 4 / 4 Up to: 4 / 0 0/0

Logic Usage (Logic


1400 - 1800 1200 1400 600 700
Elements)
Custom
Instructions Up to 256
Nios II: Faster & Smaller
250
Fast
200 4X Faster
Performance

150
(DMIPS)

Standard
10% Smaller
100 Over 2X Faster

50
Economy
50% Smaller
0
0 500 1000 1500 2000
CPU Core Size
Results Based on Stratix II FPGA (Logic Elements)
Variation with FPGA Device
250
Fast
200

150
DMIPS

Standard
100

50 Economy

0
0 500 1000 1500 2000
Logic Elements

Stratix II Stratix Cyclone HC-Stratix Cyclone II


Nios II: Hard Numbers
Nios II/f Nios II/s Nios II/e
Stratix II 225 DMIPS @205MHz 133 DMIPS @180MHz 31 DMIPS @209MHz
1319 ALUTs 1029 ALUTs 483 ALUTs
Stratix II 2S60-C3 Stratix II 2S60-C3 Stratix II 2S60-C3
Stratix 157 DMIPS @143MHz 99 DMIPS @134MHz 23 DMIPS @160MHz
1808 LEs 1170 LEs 529 LEs
Stratix 1S80-C5 Stratix 1S80-C5 Stratix 1S80-C5
Cyclone II 105 DMIPS @126MHz 57 DMIPS @110MHz 22 DMIPS @159MHz
1595 LEs 1033 LEs 542 LEs
EP2C20-C6 EP2C20-C6 EP2C20-C6
Cyclone 101 DMIPS @128MHz 57 DMIPS @124MHz 16 DMIPS @126MHz
1679 LEs 1145 LEs 522 LEs
EP1C20-C6 EP1C20-C6 EP1C20-C6

* FMax Numbers Based on Reference Design Running From On-Chip Memory (Nios II/f 1.15 DMIPS / MHz)
Accs mmoire
Protocole de rangement mmoire Little Endian
Le mapping des adresses des mmoires et des
priphriques est design-dependent.

Seules trois adresses font partie du processeur :


Adresse de Reset
Adresse dexception

Adresse du Break Handler


Tightly Coupled Masters
Connected to tightly-coupled slaves through
Tightly Coupled Memory Interfaces
Slaves are on-chip true dual port memories
They allow Normal data master to connect to second port, allowing
reading and writing of data

Tightly- Regular Instruction


Coupled Nios II CPU and Data Masters
Instruction Instruction Master
and Data TCMs Avalon Avalon Slave
Masters Data Master Switch
Fabric Avalon Slave
Tightly Coupled Tightly Coupled
Data Master Instruction Master

Slave
32
Slave
Tightly Coupled Memory Interface
Mmoire
off-chip

SDRAM
Correspond
au standard pc100
Synchrone et dynamique
Il faut ajouter un contrleur sur le SoC qui traduit le protocole Avalon
dans linterface de la mmoire choisie,
+ un PLL : lhorloge de la RAM est de mme priode que le contrleur,
mais la distance implique un dcalage quil faut compenser : Phase
Locked Loop
Idalement il serait possible datteindre un mot par cycle, mais
cause des temps de pause grs par le contrleur pour le
rafraichissement il est impossible datteindre cette performance.
Mmoire off-chip utilis en TP
Mmoire SRAM
(statique)
Utilis comme mmoire
principale
Mmoire flash
Contient la configuration
utilisateur du FPGA
Plus la safe configuration
du FPGA
Pour la stratix-I, la flash
de 8Mo est dcoupe en
128 sections
rinscriptibles
individuellement de 64Ko
Nios II System Design Flow
SOPC Builder GUI
Processor Library Configure Processor Custom Instructions

Peripheral Library Select & Configure IP Modules


Peripherals, IP
Hardware Development Software Development
Connect Blocks Nios II EDS
HDL Source Files C Header files
Testbench Generate Custom Library
Peripheral Drivers
Hardware Executable
Configuration Code
File
Synthesis & Verification Compiler,
Fitter & Debug Linker, Debugger
JTAG,
Serial, or
Ethernet
User Design On-Chip User Code
Other IP Blocks Altera Debug Libraries
FPGA Software Trace
RTOS
Quartus II Hard Breakpoints
SignalTap II
GNU Tools

Nios II C2H Compiler
Plan
1. Processeurs embarqus : conception conjointe
2. System on Programmable Chip =
1. Systmes base de Nios-II
2. Le bus systme Avalon
3. Les priphriques on-chip
b. Bus Avalon
Plan de la section Avalon
i. Introduction linterconnect systme
ii. Les signaux du systme Avalon
iii. Comportement en mode Escalve
iv. Comportement en mode Matre
v. Mode Pipeline
vi. Le mode tristate
Quest ce quAvalon ?
Avalon (en gaulois la pommeraie) est, dans la lgende arthurienne,
une le mythologique.
Avalon est une spcification dinterfaces pour des
composants sur puce.
Les composants sont mapps dans lespace mmoire, ce
qui est rfrenc comme Avalon-MM pour Memory
Mapped.
La spcification dfinit les transferts entre un (ou plusieurs)
priphriques et une structure dinterconnect.
Avalon est un systme de communication matre-esclave.
Master/Slave
Un composant Matre sur le bus initie les
transaction soit en envoyant directement des
donnes, soit en emmettant des requtes aux
composants esclaves.
Un composant Esclave ne prend jamais
linitiative dutiliser le bus (en lecture ou en
criture). Il ne fait que rpondre aux requtes
des matres.
Les autres protocoles dinterconnect
Altera Avalon
Xilinx CoreConnect
ARM Amba
Wishbone
Spcification Avalon
La spcification dfinit
Un ensemble de signaux
Le comportement des priphriques
Les types de transferts supports par ces signaux

Chaque priphrique est connect par un(ou +) port (M/S)


Tous les ports sont relis au system interconnect fabric

Cest un standard ouvert


Exemple de systme bas Avalon

On-Chip
Exemple (suite)
ii. Les signaux
Caractristiques gnrales
Lignes spares pour
Les adresses,
Les donnes (entrantes et sortantes si pas tristate),

Le contrle.

Lignes de donnes de largeur jusqu 1024,


Oprations synchrones,
Performances jusqu un transfert par cycle,
Actifs ltat haut sauf si suivis de _n (read_n).
Liste de signaux pour un port Esclave
Signal type (22) width dir Description
Clk 1 In synchronisation
Chipselect 1 In When desarted, Slave ignores all other
signals
Address 1-32 In Word offset in the slave adress space
Read 1 In Read request (not required for WOM)
Readdata 1-1024 Out
Write 1 In Write request (not required for ROM)
Writedata 1-1024 In
Byteenable 2,4-128 In Enable 1 byte lane on ports > 8bits
Writebyteenable 2,4,-128 In = BE and write
begintransfer 1 In =1 at the first cycle of every transfer
Liste de signaux pour un port Esclave
Wait-states signals
waitrequest 1 Out Slave cant respond => stall
Pipeline signals
readdatavalid 1 Out Asserted at end of wait
Burst signals
burstcount 2-32 In Number of transfer in a burst
beginbursttranf 1 In Indicate start of a burst
Flow-control signals
Readyfordata 1 Out Ready for a write transfer
dataavailable 1 Out Ready for a read transfer
endofpacket 1 Out Periperal-specific
Liste de signaux pour un port Esclave
Tristate signals
data 1-1024 InOut Bidirectional data
outputenable 1 In When =0 slave must not drive data
Other signals
irq 1 Out If slave need to be serviced by master
reset 1 In
resetrequest 1 Out Peripheral resets the entire avalon
system
Liste des signaux pour un port Matre
(17)
Les mme signaux
Souvent de direction oppose
En plus (2) :
Flush; 1; Out; Pipeline signal
Data; 8, 16 - 1024, InOut;
Irq; 1,32; In; Each line corresponds directly to
the irq signal on the slave port
Irqnumber; 6; In; Interrupt priority of each
slave port
En moins (7) :
Outputenable,
Chipselect,
Writebyteenable,
Begintranserf,
Beginbursttransfer,
Readyfordata,
Dataavailable,
Interfaces configurables
Par exemple une ROM ne ncessite
que les signaux :
Address,
read-data,
Chipselect
Un registre RO :
Writedata,
Write,
Chipselect,
clk
iii. Le comportement
en mode esclave
Plusieurs modes
Les interfaces Avalon supportent les proprits
suivantes :
Wait-states pour les esclaves (fixe ou variable),
Pipeline,
Burst,
Tristate,
Flow-control

Le mode fondamental nutilise aucune des


proprits ci-dessus.
Protocole synchrone
Un cycle est dfini dun front montant lautre de
lhorloge systme.
Le protocole est synchrone sur cette horloge :
Tous les transferts commencent au front montant,
Tous les signaux sont donc gnrs par / Clk,
Les signaux doivent tre stables pendant ltat haut (hold-
time),
Il est possible de connecter des priphriques
asynchrones (comme des mmoires off-chip : clk
diffrent),
Dans ce cas, le concepteur doit faire en sorte que les signaux
sont stables pendant ltat haut de clk
Adressage
Esclave
Ladresse en entre des ports esclaves est une adresse de mots,
dsignant donc un offset dans lespace dadressage du port esclave.
Chaque adresse accde donc un mot complet par rapport la
largeur des signaux readdata ou writedata.
Matre
Les adresses envoys par le matre sont des adresses doctets, sans
prise en compte de la largeur des bus de donnes,
Par exemple, un port matre de donnes de 32 bits devra aligner ses
adresses sur des frontires de 4 octes : 0x00, 0x04, 0x08, 0x0C
Pour accder un octet spcifique dans un mot, le matre dit utiliser
le signal byteenable.
Transferts en mode Esclave
Le port est soit dsign par le chipselect
Lorsque le signal est dsactiv, lesclave ignore les
autres signaux
Lorsquil est actif, les signaux read/write indique le
type daccs
Ou le port est dsign uniquement par les
signaux Read/write
Lesclave est en mode Idle lorsque les 2 sont Zro
Temps daccs
Priphriques asynchrones (mmoires off-chip) :
Accs dans le cycle courant
Priphriques synchrones (mmoire on-chip) :
1 cycle dattente (wait-states)
Plusieurs cycles dattentes fixes

Cycles dattentes variables => waitrequest


Lecture en mode Esclave en un cycle
Temps de traitement de la requte par le matre

Temps de traitement de la requte par lesclave


Lecture en mode Esclave
avec 1 cycle dattente
Lecture en mode Esclave
avec plusieurs cycles dattente
Lecture en mode Esclave
avec cycles dattente variables

Le systme avalon na pas de timeout!!


criture en mode esclave en 1 cycle
iv. Transferts en mode
Matre
Transfert en mode Matre
Comme ladresse doctet est comprise comme une
adresse de mot par lesclave, le matre envoie le signal
Byteenable,
Cest un vecteur dont la taille est gale au nombre
doctets dans la largeur du bus de donnes.
Sans sa prsence, lesclave renverrait tout le mot
Les combinaisons valides

En 32 bits sont :
0001, 0010, 0100, 1000,
0011, 1100, 1111
Lecture en mode Matre en 1 cycle
Lecture en mode Matre avec cycles
dattente
Ecriture en mode Matre avec cycles
dattente
v. Mode tristate
Mode pipeline
Utilis pour communiquer avec des priphriques
externes : mmoires, processeurs
Ce mode permet de sadapter de nombreux
protocoles dIPs externes
Par exemple pour communiquer avec des devices qui
partagent les bus dadresse et de donnes sur le circuit
imprim (PCB).
Le bus de donnes devient donc bidirectionnel
Les esclaves sont contrls par le signal outputenable
Ce signal est mis par linterconnect en fonction de
ladresse envoy par le mitre
Adressage
Dans le mode tristate, ladresse sur le port
esclave devient une adresse doctet
contrairement ladresse de mots en mode
fondamental.
Si le bus est plus large quun octet, il faut alors
corriger le mapping des adresses venant du
matre vers le bus dadresse
du port esclave !!
A0 du port esclave
Adresse provenant
de linterconnect fabric
Diffrences avec le mode non-tristate
CS
@ @
waitrequest
Wdata 32 Wdata
Master Rdata 32 Rdata Slave
No-tristate write write No-tristate
Byte @ read read Word @
byteenable 4 byteenable
Avalon
Interconnect CS + OE
@
Fabric @
data 32
Wdata waitrequest
write
Master read
Wdata Slave
Tristate Rdata No-tristate
Byte @ = x4 write Byte @
read
Ecriture/Lecture en mode Matre
Read data into master

Write data into slave


vi. Mode Pipeline
Mode pipeline
Il ny a que des transferts pipeline sur les transferts
lecture pas en criture.
La dure dun transfert pipelin se divise en 2 phases :
Un port matre initie un transfert (remplit le pipeline) en
positionnant ladresse durant la phase dadresse
Un port esclave continue le transfert en dlivrant la donne
durant la phase de donnes
La phase dadresse dun nouveau transfert peut commenc
avant la fin de la phase de donnes prcdente
La latence du pipeline est gale la diffrence entre la fin de
la phase dadresse et la fin de la phase de donnes.
Transfert lecture pipelin en mode
esclave
Transfert lecture pipelin en mode matre
Lecture pipeline esclave avec
latence variable
Plan
1. Processeurs embarqus : conception conjointe
2. System on Programmable Chip =
1. Systmes base de Nios-II
2. Le bus systme Avalon
3. Les priphriques on-chip
c. Les priphriques
on-chip
i. Recensement
Hirarchie Mmoire
Blocs RAM
Caches
TCM
On-Chip RAM
SDRAM
Flash
Pios
Leds
Afficheurs 7 segments
Boutons
Autres
Timers
PLL
Standard Reference Design Block Diagram
Ethernet 1MB 8MB 16MB Compact 32MB
MAC/PHY SRAM FLASH FLASH SDRAM

Nios II Processor
Compact
Tri-State Tri-State SDRAM

Level Shifter
Address (32) Flash
Bridge Bridge Controller
Read PIOs
32-Bit
Avalon Switch Fabric

Write
Nios II UART
Processor Data In (32)
General
Data Out (32) ROM Periodic
Purpose JTAG_UART
(with Monitor) Timer
Timer
Reconfig
PIO
IRQ

IRQ #(6) 7-Segment


LED PIO LCD PIO Button PIO
LED PIO

Expansion 4
2 Digit
On-Chip Off-Chip 8 LEDs Header Momentary
Display
J12 buttons
En TP
Chaque composant est un cas dtude lui seul.
Pour comprendre en dtail
Le fonctionnement,
Les paramtres de configuration de chacun
Nous utiliserons la documentation sur
http://www.altera.com/literature/lit-nio2.jsp