2. 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
3. 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
4. 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
5. 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
6. 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…).
8. 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
10. 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
11. 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
12. 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
13. 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
15. µ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 .
16. 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.
17. 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é
18. 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).
19. 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.
20. 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.
21. 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.
22. 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.
23. 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.
24. 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).
25. 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.
26. 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
27. 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).
30. 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
33. 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
35. 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
36. 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