Trash Fr:FPGA
Contents
FPGA sur l'APF9328
La carte APF9328 peut être équipée en option avec un FPGA (Field Programmable Gate Array) Spartan-3 de chez Xilinx. Un FPGA est un composant numérique programmable. De nos jours, des circuits numériques complexes et des coeurs de microprocesseurs peuvent être implémentés dans des FPGAs. Pour plus d'informations: [1]
Le FPGA sur l'APF9328 est connecté au bus processeur de l'iMX et aux connecteurs d'extensions. Cela vous permet de développer vos propres périphériques (si ceux de l'iMX ne vous suffisent pas) et de les implanter dans le FPGA. Le FPGA pouvant être reconfiguré à tout moment, il vous permet de remplacer les périphériques (ou une partie), si d'autres fonctionnalités sont nécessaires. Cela est même possible en cours d'éxécution !
Développement de Firmware pour le FPGA
Design numérique
Les FPGAs sont des composants numériques assez complexes. Modern tools allow to describe the circuits to be implemented an abstract way, which makes it possible to manage the complexity. The trend for new tools is toward higher levels of abstraction in order to be able to manage even more coplex devices in future. Nevertheless, at least basic knowledge of digital circuits and gates is necessary to start designing firmware for FPGAs.
FPGA Design-Flow
Le point de départ de l'implémentation est une description des fonctionnalités dans Language de Description Matériel (HDL en anglais). L'un des HDLs les plus utilisés est VHDL (Very High Speed Integrated Circuit Hardware Description Language). Les fichiers VHDL sont des fichiers texte standards et peuvent être édités dans n'importe quel éditeur.
Cette description en VHDL du circuit peut être simulée afin d'en vérifier les fonctionnalités.
Si tout est correctement simulé, un outil appelé synthétiseur est utilisé pour convertir la description HDL en une "hardware netlist". Cette netlist est mappé sur la technologie FPGA. Après un Placement Routage et la génération d'un bitstream, un fichier de configuration pour le FPGA est créé (bitfile).
Pour plus d'informations sur le VHDL et le flôt de desing, consultez [2]. Cette page contient aussi de nombreux examples qui montrent comment décrire des circuits électroniques simple en VHDL.
Environment de développement Firmware pour Armadeus
Outil de développement
Pour développer pour le FPGA, vous avez besoin du Xilinx ISE WebPack. Il peut être téléchargé depuis la page d'accueil de Xilinx [3]. Le WebPack contient tout ce dont vous avez besoin pour implémenter un design pour le FPGA sur l'APF9328: Editeur, Synthétiseur, Mappeur, Outil de Placement et Routage, Générateur de Bitstream, et les outils pour charger la configuration dans un FPGA.
Installation de ISE sur Ubuntu Linux
Pour la simulation, Xilinx offre une version gratuite de ModelSim: ModelSim Xilinx Edition (MXE). Elle peut être téléchargée gratuitement sur la page d'accueil Xilinx [4], mais un enregistrement est requis pour obtenir une license.
Implémentation du Design
Implémentez votre design avec le logiciel ISE WebPack de Xilinx. Si vous débutez en développement VHDL, les information disponibles sur ce lien : [5] peuvent vous donner une première idée. Des tutoriel pour ISE peuvent être téléchargés directement depuis le site internet de Xilinx : [6]
Génération du Bitstream
Lorque votre design est prêt et passe la simulation, vous pouvez créer un fichier bitstream qui pourra être chargé dans le FPGA. Il contient toutes les données permettant de configurer le FPGA.
Dans le gestionnaire de projet ISE, assurez vous qu'un Binary Configuration File est aussi créé. You can set this option in the properties dialog of the Generate Programming file process. Activez l'option Create Binary Configuration File.
Le fichier avec l'extension .bin est le fichier dont vous aurez besoin pour configurer le FPGA sur le module Armadeus.
Configurer le FPGA depuis U-Boot
Consultez la page InstallTargetSoftware.
Configurer le FPGA depuis Linux
Voir l'outil fpgaloader.