Microblaze - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Systèmes d'exploitation

Xilinx MicroKernel

Ensemble de bibliothèques permettant d'obtenir des fonctions basiques de système d'exploitation :

uClinux

Portage réalisé par le Dr John Williams de l'université de Brisbane (Australie) et par la communauté d'utilisateurs. La société Petalogix assure le support commercial. L'absence de MMU ne permet pas d'utiliser le noyau Linux standard, mais µCLinux (Linux pour microcontrôleurs) est conçu pour contourner cette limitation.

FreeRTOS

Il existe un port du système temps réel FreeRTOS pour Microblaze (cf. liens externes), disponible comme FreeRTOS sous license GPL modifiée. FreeRTOS est nettement plus léger que linux/uclinux mais a moins d'applications et de pilotes.

Systèmes commerciaux

  • Accelerated Technology Nucleus
  • Express Logic ThreadX®
  • Micriµm µC/OS-II RTOS
  • eSOL µITRON4.0
  • RealFast AB Sierra RTOS

périphériques

De nombreux périphériques sont fournis avec le MicroBlaze, afin de constituer un microcontrôleur complet et personnalisable. Il y a, entre autres :

  • contrôleur mémoire (SRAM, Flash)
  • contrôleur mémoire SDRAM
  • UART lite
  • Timer/compteur avec fonction PWM
  • interface SPI
  • contrôleur d'interruptions
  • GPIO (entrées-sorties génériques)
  • convertisseurs A/N et N/A Delta-Sigma
  • DMA

De plus, des périphériques payants sont proposés en version d'évaluation, qui ont la particularité de ne fonctionner que quelques heures :

  • UART 16550
  • interface Ethernet
  • interface I²C
  • interface PCI

Outils de développement

Afin de créer des applications embarquées, Xilinx a développé un outil de développement appelé EDK (Embedded Developpement Kit). Il s'agit en fait d'une collection de scripts Tcl/Tk liant divers outils en ligne de commande, et d'une interface graphique couvrant l'ensemble.

Méthode de développement

Un processeur soft-core présente la particularité d'une programmation à deux niveaux :

  • configuration matérielle du FPGA pour associer un (ou des) processeur(s) et des périphériques,
  • programmation logicielle sur ce(s) processeur(s).

Cette spécificité nécessite des outils de développement adaptés, et présente plusieurs avantages :

  • démarche de CoDesign,
  • homogénéité entre matériel et logiciel (interfaces et mapping logiciels générés par les outils hardware),
  • possibilité de faire une simulation HDL du processeur et de ses périphériques (bien que ce soit une opération longue),
  • possibilité de pré-chargement du code résidant en RAM interne lors de la configuration du FPGA : lorsque le système se "réveille" à la mise sous tension, une partie du code est déjà présente en mémoire.
  • synchronisation entre le module de débug (MDM) et l'"analyseur logique virtuel" ChipScope, afin de mener un débug combiné matériel/logiciel.

Bien que la chaîne de développement logiciel (outils GNU), et les outils de synthèse, placement-routage FPGA soient soit tout à fait standard, des outils spécifiques en amont et en aval sont proposés :

  • Assistant de configuration pour cartes existantes (choix de périphériques et placement des entrées-sorties selon le routage de la carte)
  • sélection et assemblage des périphériques
    • choix du processeur
    • connexion des périphériques sur les différents bus, choix des adresses
    • configuration des périphériques
    • déclaration des routines d'interruptions, directement associées aux périphériques
  • compilation des bibliothèques C en fonction des périphériques et options du processeur (FPU, division) choisis
  • initialisation des mémoires internes dans le fichier binaire de configuration du FPGA
  • téléchargement matériel et logiciel, ainsi que débug logiciel, avec le même lien JTAG

EDK

Cet environnement permet de développer une application complète à processeur embarqué et de l’intégrer à un FPGA. EDK donne accès à tous les réglages nécessaires pour l’application embarquée que l’on souhaite créer. Il permet la programmation d’un ou plusieurs MicroBlazes et de leurs périphériques. Il va s’occuper de placer les programmes des MicroBlazes en mémoire lors de la programmation du FPGA. Pour plus d’information sur EDK, reportez-vous à la documentation de Xilinx Embedded SystemTools Reference Manual.

EDK est compatible Linux depuis la version 6.2.

GNU

Les outils de programmation du MicroBlaze sont les outils libres et standard du GNU, personnalisés par Xilinx pour le MicroBlaze. On retrouve ainsi GCC, GDB, et les Binutils (ld, as, ar, objdump ...). On peut les utiliser en ligne de commande ou à partir de l'interface graphique. Comme ces outils sont conçus pour un environnement UNIX, en cas d'utilisation sous Windows EDK installe l'environnement Cygwin.

Modelsim

Modelsim est outil de simulation HDL de Mentor Graphics. Une version bridée, ModelSim XE Starter, est disponible gratuitement.

Chronologie des outils de développement

  • MDK 1.9 (fin 2001) Version bêta
  • MDK 2.1 (2002) Première version utilisable, totalement en ligne de commande.
  • MDK 2.2
  • EDK 3.1 (2003) Première version avec interface graphique, commune avec outils PowerPC 405.
  • EDK 3.2
  • EDK 6.1 (2004) Apparition de la mémoire cache et des liens FSL
  • EDK 6.2 Apparition de la FPU
  • EDK 6.3 Apparition des exceptions, développement logiciel avec Eclipse (logiciel)
  • EDK 7.1 (2005) Amélioration de la logique de débug, des périphériques et mise à jour du compilateur. Pile TCP/IP.
  • EDK 8.1 (2006) Nouvelle interface graphique basée sur Qt
  • EDK 8.2 (a paraître en 2006) Support du Virtex5
Page générée en 0.094 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise