You are on page 1of 42

ALTERA NIOS II EMBEDDED

EVALUATION KIT
Smati wassim
Plan
 Spécification
 Carte Fille LCD
 Kit FPGA Cyclone III
 Softcore Nios II
 Caractéristiques du NiosII
 Diagramme du processeur Nios
 Registres du Nios-II
 Contrôleur d’interruptions
 Jeu d’instructions NIOS II
 Les différents types d’instructions
 RTOS
 µC/OS II
 µClinux
Plan
 Outils De Développement Des SOCs
 IDE Quartus II
 Sopc Builder
 Nios II EDS Pour IDE Eclipse

 Exemple D'implémentation: Machine Détatctique IF4


 Présenation De projet
 Processeur Cisc 8 bit
 Controleur VGA

 Conclusion
Spécification
 Carte Fille LCD De Terasic
 Afficheur Tactique LCD en Couleurs :Résolution 800X460
 CODEC audio de qualité CD 24 bits avec ligne d'entrée
 (10/100) Couches Ethernet : Phy / MAC
 Connecteurs :
 Sortie VGA
 Entrée TV composite
 Sortie audio
 Entrée audio et entrée microphone
 Carte SD
 connecteur en série (port RS-232 DB9)
 PS/2
 connecteur Ethernet (RJ-45)
 8-pin debug
 Taille :125*100 mm
Spécification
 Kit FPGA Cyclone III d'ALTERA
 Cyclone III EP3C25F324
 25000 Logic Elements
 Configuration avec USB-Blaster
 Mémoires
 SDRAM : 32 Mbits
 SRAM : 1 Mbits
 Flash : 16 Mbits
 Rythme de l'horloge : oscillateur intégré 50 MHz
 Boutons et indicateurs : 6 Boutons et 7 Leds
 Connecteurs :
 HSMC
 USB Type B
 Pré-programmée avec un design Nios-II présent dans la flash
 Lorsque la configuration est terminée, le Nios II commence l’exécution du boot code présent en
flash
Softcore Nios II
 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…).
Softcore Nios II
 Diagramme du processeur Nios
Softcore Nios II
 Registres généraux du Nios-II
 Le registre r0 contient la constante 0.
On nepeut écrire dans ce registre.
Il est aussiappelé zero
 Le registre r1 est utilisé par l’assembleur
comme registre temporaire. Il ne doit
pas être utilisé dans les programmes utilisateur
 Les registres r24 et r29 sont utilisés
pour le traitement des exceptions.
Ils ne sont pas disponibles en mode utilisateur
Softcore Nios II
 Registres de contrôle
Softcore Nios II
 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
Softcore Nios II
 Jeu d’instructions NIOS II
 jeu d’instructions de type RISC
 32 registres de 32 bits notés r0 à r31
 3 formats d’instructions :
 Instructions de type I

 Instructions de type R

 Instructions de type J
Softcore Nios II
 Les différents types d’instructions
 Les instructions mémoire
 Les instructions arithmétiques
 Les instructions logiques
 Les instructions de transfert
 Instructions de comparaison
 Instructions de décalage
 Instructions de rotation
 Instructions de saut et de branchement
 Instructions d’appel et retour de fonctions
Softcore Nios II
 Version Nios II : 3 versions Compatibles
 FAST: Optimisé pour la vitesse

 STANDARD: Équilibré pour la vitesse et la taille

 ECONOMY: Optimisé pour la taille

 Software : Le code en binaire est compatible


Softcore Nios II
 Comparaison
µC/OS II ?
 Noyau temps réel uC/OSII :Simple et petit (~ 4 000 lignes)

 Système d’exploitation temps réel multitâches préemptif.


 Développé par le Canadien Jean J. Labrosse .
 Un exécutif temps réel destiné à des environnements de très petite taille
construits autour de Microcontrôleurs.
 Disponible sur un grand nombre de processeurs.
 Peut intégrer des protocoles standards comme TCP/IP (μC/IP).
 Assurer une connectivité IP sur une liaison série par PPP.
 Utilisable gratuitement pour l'enseignement .
 Aujourd’hui il est développé et maintenu par la société Micrium .
RTOS: µC/OS II
 Les caractéristiques essentielles du noyau temps réel µC/OS :

 Création et gestion de 63 tâches maximum.


 Création et gestion de sémaphores binaires et comptés.
 Fonction d'attente de tâche.
 Changement de priorité des tâches.
 Effacement de tâches.
 Suspension et continuation de tâches.
 Envoi de messages depuis une routine d'interruption (ISR) ou d'une tâche
vers une autre tâche.
RTOS: µC/OS II

 uC/OS est développé en C, sauf en ce qui concerne les


portions de code qui sont cible-dépendant (portage).
 l’implantation des opérations de changement de contexte en
assembleur.
 Fait partie des nombreux systèmes d’exploitation
temps réel aujourd’hui disponibles sur le marché
RTOS: µC/OS II
 Les fonctions de µC/OS :

 Initialisation (OSinit, OSStart)


 la gestion des tâches (OSTaskCreate, OSTaskDel, OSTaskDelReq, OSTaskChangePrio,
OSTaskSuspend, OSTaskResume, OSSchedlock, OSSchedUnlock).
 la gestion du temps (OSTimeDly, OSTimeDlyResume, OSTimeSet, OSTimeGet).
 la gestion des sémaphores (OSSemCreate, OSSemAccept, OSSemPost, OSSemPend,
OSSemInit).
 la gestion des boîtes aux lettres (OSMboxcreate, OSMboxAccept, OSMboxPost,
OSMboxPend).
 la gestion des files d'attente (OSQCreate, OSQAccept, OSQPost, OSQPend).
 la gestion d'interruption (OSIntEnter, OSIntExit).
RTOS: µC/OS II
 μC/OS-II est noyau multi-tâches temps réel, hautement portable, modulaire et
pouvant être mis en mémoire ROM.

 μC/OS-II qui coûte moins de $1000, peut être vu comme un noyau simplifié de
celui qu’on retrouve dans VxWorks (qui lui coûte plus de $10K).

 μC/OS-II n’a pas d’environnement pour déverminer les applications alors que
VxWorks possède WindView, un logiciel dont l’efficacité est reconnue.
RTOS: µCLinux
 Pourquoi retrouve-t-on Linux dans l’embarqué ?
 Logiciel Libre, disponible gratuitement au niveau source.
 Fiabilité reconnu du système.
 Portabilité sur différentes plateformes matérielles.
 Il est possible d’avoir des versions Temps Réel.
 On a un système d’exploitation multitâche.
 On a un système de fichiers disponible.
 On a une connectivité TCP/IP en standard.
RTOS: µCLinux
 Linux pour l’embarqué existe donc pour 2
catégories de processeurs 32 bits :
 Processeur avec MMU (Memory Management Unit):
Linux embarqué : version Linux standard.
 Processeur sans MMU :
μClinux : version Linux adaptée.
RTOS: µCLinux
 Histoire d'µClinux :
 Première sortie en 1998 (Linux 2.0), pour le processeur
Motorola 68000. Démonstration sur un Palm Pilot III.
 1999 : Support de Motorola ColdFire.

 2001 : Support de Linux 2.4. Support de l'ARM7.

 2004 : Support de Linux 2.6. Support de l'ARM.


RTOS: µCLinux
 Raisons pour utiliser uClinux :
 Linux: Connectivité IP intégrée, fiabilité, portabilité,systèmes de fichiers, logiciels libres...
 Léger: Noyau Linux 2.6 complet en moins de 300 Ko,binaires bien plus petits avec uClibc.
 XIP (Execute In Place): N'a pas besoin de charger les exécutables en mémoire, même si
cela peut avoir des conséquences sur les performances.
 Moins cher: Coeurs sans MMU environ 30% plus petits. MMU pas nécessaire dans de
nombreuses applications de systèmes embarqués.
 Plus rapide: Basculement de contexte plus rapide : pas de vidage des caches.
 L'utilisateur accède au matériel : Les applications utilisateur peuvent accéder au système
complet, y compris aux registres des périphériques.
 Fonctionnalités :complète du noyau Linux 2.6 stabilité, noyau préemptif, pilotes...
 Multitâches: Complet Quelques limitations mineures .
 API Linux complète: Peut utiliser la plupart des appels système Linux avec quelques rares
exceptions. Applications portées distribuées avec uClinux.
RTOS: µCLinux
 µClibc :
 Bibliothèque C légère pour les petits systèmes embarqués, mais avec la
plupart des fonctionnalités.
 Développé à l'origine pour uClinux. Maintenant un projet indépendant.
 La Debian Woody complète a été récemment portée... Vous pouvez être
certain qu'elle subviendra à tous les besoins.
 Exemple de taille (ARM) : approx. 400 Ko (libuClibc : 300 Ko, libm
:55Ko)
 Exemple d'un programme “hello world” : 2 Ko (lié dynamiquement), 18
Ko (lié statiquement).
RTOS: µCLinux
 Limitations de µClinux :
 Mémoire virtuelle = Mémoire physique.
 Mémoire fixe pour les processus, impossible de
fragmenter la mémoire : plus de consommation de
mémoire.
 Pas de protection de la mémoire.
RTOS: µCLinux
 Portage de μClinux sous Nios II
 La société Microtronix a réalisé il y a quelques années
le portage de μClinux pour le processeur softcore de
première génération NIOS.
 Le portage de μClinux pour le processeur NIOS II est
complet sous licence GPL
Outils De Développement Des SOCs
 Quartus II :
 permet une conception d'un circuit numérique à partir
d'une entrée sous forme :
 D'une schématique traditionnelle.
 D'une netlist standard de type EDIF (Electronic Design
Interchange Format).
 Textuelle à l'aide d'un langage de description de matériel :
VHDL, Verilog et A-HDL (Altera HDL).
Outils De Développement Des SOCs
 Flot de conception Quartus II :
Outils De Développement Des SOCs
 IDE Quartus II :
l'interface graphique de Quartus II :
Outils De Développement Des SOCs
 SoPC Builder :
 Permet de construire un système SoPC .
 Permet graphiquement de contruire un microcontrôleur intégrant des périphériques d'E/S
divers et variés :
 Processeur NIOS II.
 Contrôleur de SRAM, SDRAM.
 Contrôleur DMA.
 Contrôleur de mémoire CompactFlash.
 Timer.
 Boutons, afficheurs LCD.
 Liaison série UART.
 Interface Ethernet.
 …
 Possiblité d'intégrer des bloc IP externe
Outils De Développement Des SOCs
 SoPC Builder
et mapping mémoire
Outils De Développement Des SOCs
 Nios II EDS Pour IDE Eclipse
Exemple D'implémentation: Machine Détatctique
IF4
 Présenation De projet:
 Emulation D'application Soc
 Execution D'un simple programme suporté par processeur csic sous
FPGA
 Visulalisation des différents registre du processeur sur un ecran a
travers le standar VGA
 Implémenation des cas d'études vus en IF4 sous FPGA :
 Processeur Cisc 8 bit
 Controleur VGA
Exemple D'implémentation: Machine Détatctique
IF4
 Architecture CISC
Exemple D'implémentation: Machine Détatctique
IF4
 Classe des Opérations
 Transfert Des Mots Mémoires
 Opération Arithmétique et logic
 Saut Conditionnel et Inconditionnel
 Gestion Des Sous-programmes
 Mode D'adressage
 Direct
 immédiat
Exemple D'implémentation: Machine Détatctique
IF4
 Jeux D’instructions
Code Opérant
Exemple : ADD 0001
 Mode Adressage Immédiat :Le bit le plus fort de Code
égale 0 Exemple : 0001 code de Sub
 Mode Adressage Direct Le bit le plus fort de Code
égale 1 Exemple :1001 code de Sub
Exemple D'implémentation: Machine Détatctique
IF4
 Implémentation Processuer CISC 8 bit

 Sous Quartus II

 Sous Xilinx
Exemple D'implémentation: Machine Détatctique
IF4
 Test et Simulation Sous Xilinx
Exemple D'implémentation: Machine Détatctique
IF4
 Standard VGA :
Exemple D'implémentation: Machine Détatctique
IF4
 Validation De Soc sur Ecran
Conclusion

 Explorer le domaine des FPGAs


 implémenter un ensemble de propriétés
intellectuelles
 Implémentation du processeur RISC
Questions et discussion

Merci Pour Votre Attention

You might also like