Trash Fr:FPGA

From ArmadeusWiki
Revision as of 16:39, 2 April 2007 by CedricZ (Talk | contribs)

Jump to: navigation, search

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.

Liens