Vous êtes sur la page 1sur 11

Rapport sur L’application

NIOS 2

Prépare par :
En cadré par : Mr KHAMLICH
Amenzouy Rachid
Gougni Youssef
Bakhkhakh Youssef
Laraig Youssef
ELhajli Anass

1
Introduction

Au cours de la dernière décennie, la popularité des appareils programmables sur


le terrain pour mettre en œuvre des circuits numériques a connu une augmentation
significative.
Le FPGA est le dispositif programmable le plus spectaculaire et il présente
plusieurs avantages, tels que leur délai de fabrication rapide, leurs faibles coûts de
démarrage et leur facilité de conception. Avec l'augmentation de la densité des
appareils, des défis audacieux deviennent possibles et l'intégration des architectures
intégrées est considérablement améliorée. Dans l'application vidéo, et en particulier
dans le traitement vidéo, l'évolution impressionnante des algorithmes et l'émergence
de nouvelles techniques augmentent considérablement la complexité des
algorithmes.
Dans cette étude, on va créer un projet sur Nios II qu’est une architecture
processeur embarqué 32 bits conçu spécifiquement pour la Altera famille de FPGA .
Nios II intègre de nombreuses améliorations par rapport à l'architecture originale
Nios, le rendant plus adapté à une large gamme d'applications d'informatique
embarquée, de DSP à un système de contrôle.

2
Nios II :
Instructions personnalisées
Semblables aux instructions Nios II natives, les instructions définies par l'utilisateur acceptent des
valeurs de jusqu'à deux registres source 32 bits et éventuellement réécrivent un résultat dans un
registre de destination 32 bits. En utilisant des instructions personnalisées, les concepteurs du
système peuvent affiner le matériel du système pour atteindre les objectifs de performances et le
concepteur peut également gérer facilement l'instruction comme une macro en C.

Périphériques personnalisés
Pour les systèmes à performances critiques qui passent la plupart des cycles de CPU à exécuter une
section spécifique de code, un périphérique défini par l'utilisateur peut potentiellement décharger
une partie ou la totalité de l'exécution d'un algorithme logiciel vers une logique matérielle définie par
l'utilisateur, améliorant ainsi l'efficacité énergétique ou le débit d'application .

Unité de gestion de la mémoire


Introduite avec Quartus 8.0, la MMU en option permet à Nios II d'exécuter des systèmes
d'exploitation qui nécessitent une pagination et une protection matérielles, comme le noyau Linux.
Sans MMU, Nios est limité aux systèmes d'exploitation qui utilisent une protection simplifiée et un
modèle de mémoire virtuelle: par exemple, µClinux et FreeRTOS.

Unité de protection de la mémoire


Introduit avec Quartus 8.0, le MPU en option offre une protection de la mémoire similaire à celle
fournie par une MMU mais avec un modèle de programmation plus simple et sans la surcharge de
performances associée à une MMU.

Famille de processeurs Nios II


Nios II classique est proposé en 3 configurations différentes: Nios II / f (rapide), Nios II / s (standard)
et Nios II / e (économique). Nios II gen2 est proposé en 2 configurations différentes: Nios II / f
(rapide) et Nios II / e (économique).

Nios II / f

3
Le cœur Nios II / f est conçu pour des performances maximales au détriment de la taille du cœur. Les
caractéristiques de Nios II / f incluent:

Caches d'instructions et de données séparés (512 B à 64 Ko)

MMU ou MPU en option

Accès à jusqu'à 2 Go d'espace d'adressage externe

Mémoire étroitement couplée en option pour les instructions et les données

Pipeline en six étapes pour atteindre un DMIPS / MHz maximum

Multiplicateur de matériel à cycle unique et levier de vitesses

Option de division matérielle en option

Prédiction de branche dynamique

Jusqu'à 256 instructions personnalisées et accélérateurs matériels illimités

Module de débogage JTAG

Améliorations facultatives du module de débogage JTAG, y compris les points d'arrêt matériel, les
déclencheurs de données et la trace en temps réel

Processus de développement
Le développement de Nios II comprend deux étapes distinctes: la génération de matériel et la
création de logiciels.

Le développement est hébergé dans une application Altera appelée Embedded Design Suite (EDS).
L'EDS contient un environnement de développement intégré complet pour gérer le matériel et les
logiciels en deux étapes distinctes:

Processus de génération de matériel


Les concepteurs de matériel Nios II utilisent l'outil d'intégration de système Qsys, un composant du
package Quartus-II, pour configurer et générer un système Nios. L'interface utilisateur graphique de
configuration (GUI) permet aux utilisateurs de choisir l'ensemble de fonctionnalités du Nios-II et
d'ajouter des périphériques et des blocs d'E / S (minuteries, contrôleurs de mémoire, interface série,
etc.) au système embarqué. Une fois la spécification matérielle terminée, Quartus-II effectue la

4
synthèse, le placement et l'itinéraire pour implémenter l'ensemble du système sur la cible FPGA
sélectionnée.

Qsys remplace l'ancien constructeur SOPC (System-on-a-Programmable-Chip), qui pourrait


également être utilisé pour construire un système Nios II, et est recommandé pour de nouveaux
projets. [1]

Processus de création de logiciels


Un package distinct, appelé Embedded Design Suite (EDS), gère le développement du logiciel. Basé
sur l'IDE Eclipse, l'EDS comprend un compilateur C / C ++ (basé sur la chaîne d'outils GNU), un
débogueur et un simulateur de jeu d'instructions. EDS permet aux programmeurs de tester leur
application en simulation, ou de télécharger et d'exécuter leur application compilée sur l'hôte FPGA
réel.

Parce que la chaîne de développement C / C ++ est basée sur GCC, la grande majorité des logiciels
open source pour Linux se compile et s'exécute avec un minimum ou aucune modification. Des
systèmes d'exploitation tiers ont également été portés sur Nios II. Il s'agit notamment de Micrium
MicroC / OS-II, eCos, Segger Microcontroller embOS, ChibiOS / RT, μCLinux et FreeRTOS.

5
Partie HARDWARE :
1. Tout d’abord nous allons commencer par la création d’un nouveau projet sur le logicielle
Qartus 2 en choisissant la carte FPGA cyclone2 EP2C35F672C8

2. Ensuite nous abordons la création de notre propre système, pour but d’un simple
multiplexage 4 vers 1 en vas utiliser un processor Nios2 de gamme économie pour la
démonstration, de suite en ajoute une horloge de 50Mhz, les émulateurs JTAG UART pour le
débogage des Link, une mémoire intégrée SDRAM de 4Kbytes.

6
3. Pour finaliser le désigne en ajoute deux entrées de type switch et une sortie « une led »
pour simuler le fonctionnement du multiplexeur.

4. En procède a la génération du système :

7
5. Apres compilation les fichiers systèmes sont bien générer dans Quartus apres lajout du
fichier « hello_qsys/synthesis/hello_qsys.qip »

6. Puis on a créé un nouveau fichier de l’extension block diagramme schématique pour simuler
le système créer en liant les entrées et sorties

8
Partie SOFTWARE :
7. Après la compilation du système présent en procède a la création de l’application software
sur éclipse

8. En trouve ici la configuration du processeur générer

9
9. On implémente aussi le code pour la création de l’application multiplexeur 4/1

10
10. Apres compilation le système se génère correctement il reste juste l’implémentation du
système sur la carte FPGA

Conclusion

Durant la réalisation du projet multiplexeur, nous avons traité plusieurs options dans
Quartus comme Acquérir le savoir-faire essentiel pour la Conception et la Programmation de
Systèmes On Chip avec Processeur(s) embarqué(s) sur FPGAs Intel, et aussi Apprendre à
concevoir la plate-forme hardware avec l'outil Qsys, et découvrir la Méthodologie logicielle et la
couche d'abstraction matérielle (HAL Nios II). Maîtriser l'environnement de développement
logiciel Nios II EDS / Eclipse.

Et aussi nous avons bien maîtriser les concepts avancés dont Qsys, le nouvel outil de
génération « Network On Chip ». ➢ Les modes avancés des différents bus, la compréhension des
protocoles hardware et timings, l'optimisation de la bande passante, la création de composants
custom complexes et leur intégration automatique dans la librairie de composants, l'accélération
matérielle

11

Vous aimerez peut-être aussi