You are on page 1of 21

1

l'intérêt de FPGA

 Un dispositif FPGA contient des cellules logiques et des interconnexions qui


peuvent être configurées (c'est-à-dire "programmées") pour exécuter une fonction
spécifique.

 Les fonctionnalités matérielles souhaitées sont généralement décrites dans le


code HDL (Hardware Description Language), qui est ensuite synthétisé et
implémenté dans les cellules logiques.

 En raison de la programmabilité des dispositifs FPGA, un matériel personnalisé


peut également être intégré au système intégré. Nous pouvons personnaliser le
processeur, sélectionner uniquement les périphériques d'E / S nécessaires, créer
une interface d'E / S personnalisée et développer des composants matériels
spécialisés pour les tâches de calcul intensif.

 Le système embarqué basé sur SoPC offre une nouvelle dimension de


flexibilité car le matériel et le logiciel peuvent être personnalisés pour répondre à
des besoins spécifiques.

2
Le Processeur NIOS II

Nios II est un processeur soft-core destiné aux circuit FPGA d'Altera.


Contrairement à un processeur préfabriqué fixe, un processeur soft-core est
décrit par des codes HDL et puis mappés sur les cellules logiques génériques
du FPGA. Cette approche offre plus de flexibilité.
Un processeur soft core peut être configuré et réglé en ajoutant ou en
supprimant des fonctionnalités pour atteindre les objectifs de performance ou
de coût.

Le processeur Nios II suit les principes de conception de base d'une


architecture RISC (reduced instruction set computer : ordinateur à jeu
d'instructions réduit) et utilise un petit jeu d'instructions optimisé. Ses
principales caractéristiques sont:

 Une architecture de chargement / stockage (Load/store architecture)


 Format d'instruction 32 bits fixe
 Chemin de données interne 32 bits
 Espace d'adressage 32 bits
 Espace d’E / S mappé en mémoire
 Demande d'interruption sur 32 niveaux

3
L’architecture de chargement / stockage (Load/store architecture)

Seules les instructions de chargement et de stockage accèdent à la mémoire,


toutes d'autres instructions utilisent des registres comme opérandes. Quel est le
motivation? La motivation principale est accélérée - les registres sont
plus rapide

4
Architecture mappée en mémoire

Le processeur Nios II utilise une méthode d'E / S mappée en mémoire pour


effectuer des entrées et des sorties entre le processeur et les périphériques.

Un périphérique d'E / S contient généralement une collection de registres pour la


commande, l'état et les données. Dans le schéma d'E / S mappé en mémoire, le
processeur utilise le même espace d'adressage pour accéder à la mémoire et
aux registres des périphériques d'E / S. Ainsi, les instructions de chargement et
de stockage utilisées pour accéder à la mémoire peuvent également être
utilisées pour accéder à des périphériques d'E / S.

5
Flux de conception de base
 La branche de droite représente le flux
de conception du logiciel
 La branche de gauche représente le flux
de conception du matériel
1) Partition matérielle / logicielle

L'étape 1 (identifiée par 1 dans le


diagramme) consiste à déterminer la
partition logiciel-matériel.

Une application embarquée effectue


généralement un ensemble de tâches.
Dans une conception basée sur SoPC, une
tâche peut être implémentée de manière
matérielle, logicielle ou les deux.

En fonction des exigences de


performances, de la complexité et de la
disponibilité du cœur du matériel, nous
pouvons choisir le type d’implémentation
en conséquence. 6
Flux de conception de base

2) Développement du matériel

L'étape 2 dérive de l'architecture matérielle


de base. Le matériel personnalisé peut être
divisé en trois catégories:

1) Processeur Nios II et périphériques d’E / S


standard (intitulés "Configuration Nios"
dans le diagramme). Altera fournit les cœurs
logiciels du processeur et un ensemble de
périphériques d’E / S fréquemment utilisés.

Nous pouvons sélectionner les périphériques


d'E / S nécessaires et configurer le système
à base de Nios-II.

7
Flux de conception de base
2) Développement du matériel

L'étape 2 dérive de l'architecture matérielle


de base. Le matériel personnalisé peut être
divisé en trois catégories:

2) Périphériques d'E / S utilisateur et


accélérateurs matériels (intitulés "User I / O L
· HA" dans le diagramme). Pour certaines
fonctions d'E / S spécialisées ou certaines
tâches gourmandes en ressources de calcul
dans le but d’alléger la charge du
processeur.

Un cœur prédéfini peut ne pas exister ou ne


peut pas satisfaire à l'exigence de
performance. Nous devons concevoir le
matériel à partir de rien et l'intégrer au
système Nios II en tant que périphérique d'E
/ S personnalisé.
8
Flux de conception de base
2) Développement du matériel

L'étape 2 dérive de l'architecture matérielle


de base. Le matériel personnalisé peut être
divisé en trois catégories:

3) la logique utilisateur. Une partie du


matériel peut être séparée du système Nios
II. Il n'est pas attaché à la structure
d'interconnexion Nios et n'interagit pas
directement avec le processeur.

9
Flux de conception de base

L'étape 3 génère le code HDL à partir du


système Nios II personnalisé. C'est fait par
en utilisant le progiciel SOPC Builder ( Qsys)
d’Altera. Dans ce logiciel, nous pouvons
configurer le processeur, sélectionner les
cœurs d’E / S standard souhaités et
incorporer les paramètres utilisateur.

Qsys génère ensuite les codes HDL pour le


système Nios II et génère également le
fichier .sopcinfo contenant les informations
de configuration du système.

Le code HDL de niveau supérieur contient la


description du matériel complet.

10
Flux de conception de base

L’étape 4 effectue la synthèse, le placement


et le routage et finit par générer le fichier de
configuration FPGA (c'est-à-dire le fichier .sof
SRAM Object File)

SOF est pour la configuration volatile directe.

POF est pour la programmation non volatile.


Programmer Object File

11
Flux de conception de base

L'étape 6 dérive la structure logicielle de


base. Altera fournit une bibliothèque de
logiciels, intégrée à sa plateforme HAL
(Hardware Abstraction Layer) pour le
système Nios II. Il se compose de pilotes de
périphériques d'E / S, qui sont des routines
de bas niveau pour accéder aux
périphériques d'E / S, et d'un ensemble de
fonctions de haut niveau dans une interface
de programmation d'application {API). Du
point de vue de l'interface matériel-logiciel,
nous pouvons diviser le code du logiciel en
trois catégories:

12
Flux de conception de base
L'étape 6

Du point de vue de l'interface matériel-


logiciel, nous pouvons diviser le code du
logiciel en trois catégories:

1) fonctions de l'API : les fonctions de la


plate-forme Altera HAL.

2) Pilotes d'E / S utilisateur. Lors de la


conception d'un périphérique d'E / S
personnalisé, nous devons également
développer des routines d'E / S logicielles
pour contrôler son fonctionnement et
échanger ses données avec le processeur.

3) Fonctions utilisateur. Ceux-ci


implémentent les fonctionnalités nécessaires
pour le application.

13
Flux de conception de base

14
Flux de conception de base
L'étape 6

Nous pouvons utiliser ces pilotes et fonctions


pour construire le programme d'application.
Lorsqu'un système Nios II est créé, la
configuration du processeur et des E / S est
enregistrée dans le fichier .sopcinfo.

15
Flux de conception de base

À l'étape 7, le logiciel éditeur Eclipse


examine ce fichier, extrait les pilotes de
périphérique nécessaires à partir de la
bibliothèque HAL et crée une bibliothèque
BSP (board support package : module de
support de carte) pour prendre en charge le
système.

16
Flux de conception de base

L’étape 8 compile et relie les routines


logicielles et la bibliothèque BSP et construit
le fichier d’image final du logiciel (c’est-à-dire
le fichier .elf).

Executable and Linkable Format, format


exécutable et liable

C’est un format de fichier binaire utilisé pour


l'enregistrement de code compilé

17
Flux de conception de base

implémentation physique et test

L’implémentation physique du système


comporte deux étapes.

Nous commençons par télécharger le


fichier de configuration SOF sur FPGA (c.-
à-d., "Programmez" le périphérique),
comme à l'étape 5,

puis chargez l'image du logiciel dans la


mémoire de Nios II, comme à l'étape 9.

Le système physique peut ensuite être


testé, comme à l'étape 10.

18
Modes de programmation de la carte FPGA

La dernière étape consiste à télécharger le fichier de configuration sur FPGA. Pour


notre carte, cette tâche peut être effectuée à l'aide de deux méthodes, appelées
mode JTAG (joint test action group : groupe d'action de test conjoint) et mode AS
(série active). Le mode est sélectionné manuellement sur la carte et sur Quartus II.

Active Serial port Jtag port


19
Modes de programmation de la carte FPGA

En mode JTAG, les données de configuration sont chargées directement de


l'ordinateur hôte dans le périphérique FPGA. La carte contient un circuit spécial,
appelé USB Blaster, qui accepte un flux de données de configuration depuis un port
USB et implémente les données dans le périphérique FPGA via le port JTAG de la
carte. FPGA Cyclone II est un périphérique basé sur une mémoire SRAM, les
données de configuration sont perdues lorsque l'alimentation est coupée.

20
Modes de programmation de la carte FPGA

En mode AS, Pour résoudre ce problème, la carte DEI fournit un dispositif


EEPROM (mémoire à lecture seule programmable effaçable électriquement), non
volatile et qui peut donc conserver les données après la mise hors tension. Sur la
carte, les données de configuration de l'EEPROM sont automatiquement chargées
dans la puce FPGA lors de la mise sous tension. Si une configuration est
nécessaire à plusieurs reprises, nous pouvons charger le fichier dans le circuit
EEPROM.

21

You might also like