Le système Avalon

publicité
Chapitre II-2 :
Conception SoPC (Altera)
Plan
1.
2.
Processeurs embarqués : conception conjointe
System on Programmable Chip =
1.
2.
3.
Systèmes à base de Nios-II
Le bus système Avalon
Les périphériques on-chip
1. Processeurs
embarqués, vers le
codesign
Processeurs embarqués

Bloc IP : Soft core

Propriétaire : format netlist, FPGA dependant


Libre



Microblaze (Xilinx), Nios (Altera)
: format VHDL, FPGA independant
Leon, OpenRISC, F-CPU
Architectures 32 bits, Harvard, RISC
Circuit implanté sur support : hardcore

classique
Architectures de traitement utilisées
dans l’embarqué
FPGAs avec processeurs
Carte Altera NiosII Kit
Carte Nios-II Kit
Première caractéristiques du circuit
Stratix 1S10




10 570 Logic Elements (LE)
920 448 bits de mémoire on-chip
Pré-programmée avec un design Nios-II présent
dans la flash,
Lorsque la configuration est terminée, le niosII
commence l’exécution du boot code présent en
flash
Fonctionnalité mixte

Une application peut être composée
d’une partie matérielle accélératrice sur le FPGA
 Couplée à une partie logicielle en softcore
 De plusieurs technos différentes



On a alors besoin d’une conception conjointe
logicielle/matérielle (ou codesign)
Rupture dans la méthodologie classique !
Digital Set-Top Box System Diagram
Broadcast Signal
Satellite, Terrestrial, Cable
Phone
Non Altera
Altera Devices
Altera
Altera IP Solutions
Other Services
•
Network
Control
Digital
Digital
Digital
Tuner
Tuner
Tuner
ADC
ADC
ADC
Interface
Bridge
External
Interfaces
Demodulation
Demodulation
Demodulation
&FEC
FEC
&&FEC
DRAM
CPU
&
MPEG
Decoder
Personal Video
Recorder
•
Conditional
Access
Manager
•
•
•
Residential
LAN
•
A/V Decode
Video Encode
M82092IDE IDE Controller ATA1
M82371IDE IDE Controller ATA4
•
LAN
Link
Demultiplex &
Descramble
IDE
Interface
•
•
ROM
RAM
•
Post A/V
Processing
Timing
Control
DAC
Audio
DAC
Video
FIR Compiler
Color Space Converter
Plasma Display Panel Module System Diagram
Non Altera
Altera Devices
Altera
Altera IP Solutions
•
Timing
Control
•
Digital
Image
Source
Decode
Display
Processing
Plasma
Display
Driver
Driver IC(N)
COF Strips
•
•
•
Color Space Converter
SDRAM Controller
•
SDRAM
•
MPEG-2 Video Decoder
(CS6651)
Color Laser Printer System Diagram
Non Altera
Altera Devices
Bus
Altera IP Solutions
Altera
Other Services
•
Flash Card
Interface
DDR
SDRAM
DDR
SDRAM
Controller
I/O &
System
Control
LAN
Link
Peripheral
Interface
CPU
LAN
•
•
•
•
Color Space Converter
DDR SDRAM Controller
PCI Compiler
•
Peripheral
•
•
10/100 Ethernet MAC
USB 1.1 and 2.0
Device Controller
PCI Bus
•
•
•
LCD
Control
LCD
Panel
Image
CODEC
Image
Processing &
Enhancement
Print Engine
Interface
Print
Engine
FIR Compiler
Color Space Converter
DSL Router System Diagram
Non Altera
Altera Devices
Bus
Altera IP Solutions
Altera
Memory
Other Services
•
Memory
Controller
Security
Processor
•
•
•
CPU
PCI Bus
PCI-Utopia
Bridge
•
SDRAM Controller
DES Encryption
Rijndael Encryption/
Description
AES Cyptoprocessor
•
PCI-MII
Bridge
Traffic Management
(VoIP & Video Processing)
DSL Modem
Chips
LAN
•
•
Ethernet
Ethernet
Ethernet
MAC
MAC
MAC
Ethernet
Ethernet
Ethernet
Transceiver
Transceiver
Transceiver
•
•
DSL
Line
Utopia Master
Transmitter/Receiver
PCI Compiler,
32-bit Target
10/100 Ethernet MAC
Factory Automation Image Sensor System Diagram
Non Altera
Altera Devices
Functional Block
Altera IP Solutions
Altera
Other Services
Video Input
Video Input
Buffer
Memory
Video Input
Buffer
Memory
•
•
•
Buffer
Memory
•
•
FIR Filter
•
Image-to-Data
Conversion
SRAM
32-bit
Processor
Flash
Recognition
Module
Configuration
Manager
UART
UART
Profibus
Controller
Host
System
Nios Peripheral
Library
UART
FIR Compiler
Auto Telematics/Entertainment System Diagram
Non Altera
Altera
Other Services
Altera Devices
Bus
Functional Block
Sub System
Altera IP Solutions
•
Telematics/Entertainment Controller
Memory
GPS
Navigation
System
Display
OSD
RISC CPU &
Subsystems
Image
Processing
•
•
•
•
Nios Peripheral Library
CAN Bus
MCAN2D1 CAN 2.0
Network Controller
•
•
•
Car Multimedia Bus
Memory
Card
Interface
DVD
Interface
Camera
Interface
Memory
Card
DVD
Player
Digital
Camera
Phone/PDA
Interface
Mobile
Phone /
PDA
Regional
Defined
Road
Tolling
Smart
card
Interface
•
•
10/100 Ethernet MAC
M82092IDE IDE Controller ATA1
M82371IDE IDE Controller ATA4
USB 2.0 Device
Controller
2. Les composants d’un
System on Programmable Chip
Standard Reference Design Block Diagram
1MB
SRAM
8MB
FLASH
16MB Compact
FLASH
Nios II Processor
Tri-State
Bridge
Address (32)
Read
Write
Data In (32)
Data Out (32)
IRQ
IRQ #(6)
On-Chip
Off-Chip
Avalon Switch Fabric
32-Bit
Nios II
Processor
Tri-State
Bridge
Compact
Flash
PIOs
32MB
SDRAM
SDRAM
Controller
UART
ROM
(with Monitor)
General
Purpose
Timer
Periodic
Timer
JTAG_UART
Reconfig
PIO
LED PIO
LCD PIO
7-Segment
LED PIO
8 LEDs
Expansion
Header
J12
2 Digit
Display
Button PIO
4
Momentary
buttons
Level Shifter
Ethernet
MAC/PHY
a. Nios-II based
system
Principe du SOPC
1
Available
Programmable
Logic
3
2
Memory
PLLs
Logic
Nios II Processor Block Diagram
Nios II Processor Core
Tightly-Coupled
Instruction Mem
reset
clock
JTAG
interface
to Software
Debugger
HardwareAssisted
Debug Module
Program
Controller
&
Address
Generation
Exception
Controller
Interrupt
Controller
irq[31..0]
Custom
I/O Signals
Custom
Instruction
Logic
General
Purpose
Registers
r0 to r31
Instruction
Cache
Tightly-Coupled
Instruction Mem
Instruction Bus
Control
Registers
ctl0 to ctl4
Arithmetic
Logic Unit
Data Bus
Data
Cache
Tightly-Coupled
Data Mem
Tightly-Coupled
Data Mem
Caractéristiques du NiosII

Architecture de Harvard




Data Master port
Instruction Master port
Banc de 32 registres 32 bits,
Chacune des unités précédente définit l’architecture
NiosII, mais rien n’oblige que ces unités soient réalisées
en hard,


Exemple : l’unité flottante est émulée en Sw
Lorsqu’une instruction n’est pas implémentée en Hw, le
processeur génère une exception, et l’exception handler
appelle la routine d’émulation Sw (instruction, div…).
Diagramme du processeur Nios
Registres généraux du Nios-II
Registres de contrôle
Contrôleur d’interruptions




Le processeur Nios-II supporte 32 niveaux
d’interruption (IRQ)
La priorité des interruptions est fixée par logiciel
Les interruptions sont autorisées individuellement par le
registre ienable et globalement par le registre d’état
Une interruption est générée si et seulement si les 3
conditions suivantes sont réunies :



L’entrée IRQi est active
Le bit i du registre ienable est à 1
Le champs PIE du registre d’état 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
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
TCM (Instr / Data)
Up to: 4 / 4
Up to: 4 / 0
0/0
Logic Usage (Logic
Elements)
1400 - 1800
1200 – 1400
600 – 700
Custom
Instructions
Up to 256
Nios II: Faster & Smaller
250
Fast
4X Faster
Performance
(DMIPS)
200
150
Standard
10% Smaller
Over 2X Faster
100
50
Economy
50% Smaller
0
0
Results Based on Stratix II FPGA
500
1000
CPU Core Size
(Logic Elements)
1500
2000
Variation with FPGA Device
250
Fast
DMIPS
200
150
Standard
100
Economy
50
0
0
500
1000
1500
2000
Logic Elements
Stratix II
Stratix
Cyclone
HC-Stratix
Cyclone II
Nios II: Hard Numbers
Nios II/f
Stratix II
Stratix
Cyclone II
Cyclone
Nios II/s
Nios II/e
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
157 DMIPS @143MHz
99 DMIPS @134MHz
23 DMIPS @160MHz
1808 LEs
1170 LEs
529 LEs
Stratix 1S80-C5
Stratix 1S80-C5
Stratix 1S80-C5
105 DMIPS @126MHz
57 DMIPS @110MHz
22 DMIPS @159MHz
1595 LEs
1033 LEs
542 LEs
EP2C20-C6
EP2C20-C6
EP2C20-C6
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)
Accès mémoire

Protocole de rangement mémoire Little Endian
Le mapping des adresses des mémoires et des
périphériques est ‘design-dependent’.

Seules trois adresses font partie du processeur :

Adresse de Reset
 Adresse d’exception
 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
TightlyCoupled
Instruction
and Data
Masters
Regular Instruction
and Data Masters
Nios II CPU
Instruction Master
TCMs
Data Master
Tightly Coupled
Data Master
Tightly Coupled
Instruction Master
Slave
32
Slave
Tightly Coupled Memory Interface
Avalon
Switch
Fabric
Avalon Slave
Avalon Slave
Mémoire
off-chip

SDRAM





Correspond
au standard pc100
Synchrone et dynamique
Il faut ajouter un contrôleur sur le SoC qui traduit le protocole Avalon
dans l’interface de la mémoire choisie,
+ un PLL : l’horloge de la RAM est de même période que le contrôleur,
mais la distance implique un décalage qu’il faut compenser : Phase
Locked Loop
Idéalement il serait possible d’atteindre un mot par cycle, mais à
cause des temps de pause gérés par le contrôleur pour le
rafraichissement il est impossible d’atteindre cette performance.
Mémoire off-chip utilisé en TP

Mémoire SRAM
(statique)


Utilisé comme mémoire
principale
Mémoire flash



Contient la configuration
utilisateur du FPGA
Plus la ‘safe configuration’
du FPGA
Pour la stratix-I, la flash
de 8Mo est découpée en
128 sections
réinscriptibles
individuellement de 64Ko
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

HDL Source Files

Testbench
Synthesis &
Fitter

User Design

Other IP Blocks
Quartus II
Generate
Hardware
Configuration
File
Nios II EDS

C Header files

Custom Library

Peripheral Drivers
Executable
Code
Verification
& Debug
JTAG,
Serial, or
Ethernet
Altera
FPGA
On-Chip
Debug
Software Trace
Hard Breakpoints
SignalTap® II
Compiler,
Linker, Debugger

User Code

Libraries

RTOS
GNU Tools
®
Nios II C2H Compiler
Plan
1.
2.
Processeurs embarqués : conception conjointe
System on Programmable Chip =
1.
2.
3.
Systèmes à base de Nios-II
Le bus système Avalon
Les périphériques on-chip
b. Bus Avalon
Plan de la section Avalon
i.
ii.
iii.
iv.
v.
vi.
Introduction à l’interconnect système
Les signaux du système Avalon
Comportement en mode Escalve
Comportement en mode Maître
Mode Pipeline
Le mode tristate
Qu’est ce qu’Avalon ?
Avalon (en gaulois « la pommeraie ») est, dans la légende arthurienne,
une île mythologique.
 Avalon est une spécification d’interfaces pour des
composants sur puce.
 Les composants sont mappés dans l’espace mémoire, ce
qui est référencé comme Avalon-MM pour Memory
Mapped.
 La spécification définit les transferts entre un (ou plusieurs)
périphériques et une structure d’interconnect.
 Avalon est un système de communication maître-esclave.
Master/Slave


Un composant Maître sur le bus initie les
transaction soit en envoyant directement des
données, soit en emmettant des requêtes aux
composants esclaves.
Un composant Esclave ne prend jamais
l’initiative d’utiliser le bus (en lecture ou en
écriture). Il ne fait que répondre aux requêtes
des maîtres.
Les autres protocoles d’interconnect




Altera Avalon
Xilinx CoreConnect
ARM Amba
Wishbone
Spécification Avalon
La spécification définit
 Un ensemble de signaux
 Le comportement des périphériques
 Les types de transferts supportés par ces signaux

Chaque périphérique est connecté par un(ou +) port (M/S)
Tous les ports sont reliés au ‘system interconnect fabric’

C’est un standard ouvert

Exemple de système basé Avalon
On-Chip
Exemple (suite)
ii. Les signaux
Caractéristiques générales

Lignes séparées pour
Les adresses,
 Les données (entrantes et sortantes si pas tristate),
 Le contrôle.





Lignes de données de largeur jusqu’à 1024,
Opérations synchrones,
Performances jusqu’à un transfert par cycle,
Actifs à l’état 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
Address
1-32
In
When desarted, Slave ignores all other
signals
Word offset in the slave adress space
Read
1
In
Read request (not required for WOM)
Readdata
1-1024
Out
Write
1
In
Writedata
1-1024
In
Byteenable
2,4-128
In
Write request (not required for ROM)
Enable 1 byte lane on ports > 8bits
Writebyteenable 2,4,-128 In
= BE and write
begintransfer
=1 at the first cycle of every transfer
1
In
Liste de signaux pour un port Esclave
Wait-states signals
waitrequest
1
Out Slave can’t 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
reset
1
In
resetrequest
1
Out
If slave need to be serviced by master
Peripheral resets the entire avalon
system



Liste des signaux pour un port Maître
(17)
Les même signaux
Souvent de direction opposée
En plus (2) :

Flush;
Data;
Irq;

Irqnumber; 6;



1;
8, 16 - 1024,
1,32;
En moins (7) :







Outputenable,
Chipselect,
Writebyteenable,
Begintranserf,
Beginbursttransfer,
Readyfordata,
Dataavailable,
Out;
Pipeline signal
InOut;
In;
Each line corresponds directly to
the irq signal on the slave port
In;
Interrupt priority of each
slave port
Interfaces configurables

Par exemple une ROM ne nécessite
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 propriétés
suivantes :
Wait-states pour les esclaves (fixe ou variable),
 Pipeline,
 Burst,
 Tristate,
 Flow-control


Le mode fondamental n’utilise aucune des
propriétés ci-dessus.
Protocole synchrone


Un cycle est défini d’un front montant à l’autre de
l’horloge système.
Le protocole est synchrone sur cette horloge :




Tous les transferts commencent au front montant,
Tous les signaux sont donc générés par / à Clk,
Les signaux doivent être stables pendant l’état haut (holdtime),
Il est possible de connecter des périphériques
asynchrones (comme des mémoires off-chip : clk
différent),

Dans ce cas, le concepteur doit faire en sorte que les signaux
sont stables pendant l’état haut de clk
Adressage
Esclave
 L’adresse en entrée des ports esclaves est une adresse de mots,
désignant donc un offset dans l’espace d’adressage du port esclave.
 Chaque adresse accède donc à un mot complet par rapport à la
largeur des signaux readdata ou writedata.
Maître
 Les adresses envoyés par le maître sont des adresses d’octets, sans
prise en compte de la largeur des bus de données,
 Par exemple, un port maître de données de 32 bits devra aligner ses
adresses sur des frontières de 4 octes : 0x00, 0x04, 0x08, 0x0C…
 Pour accéder à un octet spécifique dans un mot, le maître dit utiliser
le signal byteenable.
Transferts en mode Esclave

Le port est soit désigné par le chipselect
Lorsque le signal est désactivé, l’esclave ignore les
autres signaux
 Lorsqu’il est actif, les signaux read/write indique le
type d’accès


Ou le port est désigné uniquement par les
signaux Read/write

L’esclave est en mode Idle lorsque les 2 sont à Zéro
Temps d’accès

Périphériques asynchrones (mémoires off-chip) :


Accès dans le cycle courant
Périphériques synchrones (mémoire on-chip) :
1 cycle d’attente (wait-states)
 Plusieurs cycles d’attentes fixes
 Cycles d’attentes variables => waitrequest

Lecture en mode Esclave en un cycle
Temps de traitement de la requête par le maître
Temps de traitement de la requête par l’esclave
Lecture en mode Esclave
avec 1 cycle d’attente
Lecture en mode Esclave
avec plusieurs cycles d’attente
Lecture en mode Esclave
avec cycles d’attente variables
Le système avalon n’a pas de timeout!!
Écriture en mode esclave en 1 cycle
iv. Transferts en mode
Maître
Transfert en mode Maître
Comme l’adresse d’octet est comprise comme une
adresse de mot par l’esclave, le maître envoie le signal
Byteenable,
 C’est un vecteur dont la taille est égale au nombre
d’octets dans la largeur du bus de données.
 Sans sa présence, l’esclave renverrait tout le mot
 Les combinaisons valides
En 32 bits sont :
0001, 0010, 0100, 1000,
0011, 1100, 1111

Lecture en mode Maître en 1 cycle
Lecture en mode Maître avec cycles
d’attente
Ecriture en mode Maître avec cycles
d’attente
v. Mode tristate
Mode pipeline






Utilisé pour communiquer avec des périphériques
externes : mémoires, processeurs…
Ce mode permet de s’adapter à de nombreux
protocoles d’IPs externes
Par exemple pour communiquer avec des devices qui
partagent les bus d’adresse et de données sur le circuit
imprimé (PCB).
Le bus de données devient donc bidirectionnel
Les esclaves sont contrôlés par le signal outputenable
Ce signal est émis par l’interconnect en fonction de
l’adresse envoyé par le mâitre
Adressage
Dans le mode tristate, l’adresse sur le port
esclave devient une adresse d’octet
contrairement à l’adresse de mots en mode
fondamental.
 Si le bus est plus large qu’un octet, il faut alors
corriger le mapping des adresses venant du
maître vers le bus d’adresse
du port esclave !!

A0 du port esclave
Adresse provenant
de l’interconnect fabric
Différences avec le mode non-tristate
Master
No-tristate
Byte @
Master
Tristate
Byte @ = x4
@
Wdata
Rdata
write
read
byteenable
@
data
write
read
32
32
4
32
CS
@
Wdata
Rdata
write
read
byteenable
Avalon
Interconnect CS + OE
Fabric
@
Wdata
Wdata
Rdata
write
read
waitrequest
Slave
No-tristate
Word @
waitrequest
Slave
No-tristate
Byte @
Ecriture/Lecture en mode Maître
Read data into master
Write data into slave
vi. Mode Pipeline
Mode pipeline


Il n’y a que des transferts pipeline sur les transferts
lecture pas en écriture.
La durée d’un transfert pipeliné se divise en 2 phases :




Un port maître initie un transfert (remplit le pipeline) en
positionnant l’adresse durant la phase d’adresse
Un port esclave continue le transfert en délivrant la donnée
durant la phase de données
La phase d’adresse d’un nouveau transfert peut commencé
avant la fin de la phase de données précédente
La latence du pipeline est égale à la différence entre la fin de
la phase d’adresse et la fin de la phase de données.
Transfert lecture pipeliné en mode
esclave
Transfert lecture pipeliné en mode maître
Lecture pipelinée esclave avec
latence variable
Plan
1.
2.
Processeurs embarqués : conception conjointe
System on Programmable Chip =
1.
2.
3.
Systèmes à base de Nios-II
Le bus système Avalon
Les périphériques on-chip
c. Les périphériques
on-chip
i.

Hiérarchie Mémoire







Blocs RAM
Caches
TCM
On-Chip RAM
SDRAM
Flash
Pios




Recensement
Leds
Afficheurs 7 segments
Boutons
Autres


Timers
PLL
Standard Reference Design Block Diagram
1MB
SRAM
8MB
FLASH
16MB Compact
FLASH
Nios II Processor
Tri-State
Bridge
Address (32)
Read
Write
Data In (32)
Data Out (32)
IRQ
IRQ #(6)
On-Chip
Off-Chip
Avalon Switch Fabric
32-Bit
Nios II
Processor
Tri-State
Bridge
Compact
Flash
PIOs
32MB
SDRAM
SDRAM
Controller
UART
ROM
(with Monitor)
General
Purpose
Timer
Periodic
Timer
JTAG_UART
Reconfig
PIO
LED PIO
LCD PIO
7-Segment
LED PIO
8 LEDs
Expansion
Header
J12
2 Digit
Display
Button PIO
4
Momentary
buttons
Level Shifter
Ethernet
MAC/PHY
En TP


Chaque composant est un cas d’étude à lui seul.
Pour comprendre en détail


Le fonctionnement,
Les paramètres de configuration de chacun
Nous utiliserons la documentation sur
http://www.altera.com/literature/lit-nio2.jsp

Téléchargement