TP 2 : Programmation d`un FPGA

publicité
Département Télécommunications Services & Usages
___________________________________________________________________________
TP 2 :
Programmation d’un FPGA
Edition 2016
TP2 : Programmation d’un FPGA
1
Département Télécommunications Services & Usages
___________________________________________________________________________
1 SOMMAIRE
I.
Préparation ........................................................................................... Erreur ! Signet non défini.
II.
Séance de TP ........................................................................................ Erreur ! Signet non défini.
1.
Prise en main des outils ...................................................................................................................... 5
2.
3.
1.1.
Carte............................................................................................................................................... 5
1.2.
Programmation de la carte ......................................................................................................... 5
1.3.
Etude d’un exemple..................................................................................................................... 6
Test du comportement du projet ...................................................................................................... 6
2.1.
Contrainte de temps .................................................................................................................... 6
2.2.
Format des données .................................................................................................................... 6
Implémentation d’un filtre FIR ......................................................................................................... 7
3.1.
Utilisation d’entité........................................................................................................................ 7
3.2.
Réalisation d’un filtre à 3 coefficients ....................................................................................... 7
3.3.
Réalisation d’un filtre à N coefficients ..................................................................................... 7
TP2 : Programmation d’un FPGA
2
Département Télécommunications Services & Usages
___________________________________________________________________________
Le but de ce TP est de vous familiariser avec la plateforme Lyrtech SFF-SDR (Small Form Factory –
Software Defined Radio). Cette plateforme est destinée au développement d’applications dans le
domaine de la radio-logicielle. Lorsque cette plateforme est complète, elle est composée de 3
parties :
Le module dédié au traitement du signal numérique
Le module de conversion analogique numérique
Le module RF
Figure 1 : Plateforme de développement SFF-SDR
Dans ce TP, nous allons nous intéresser uniquement au module Traitement du signal. Sur ce module,
nous avons un FPGA (Virtex-4 XC4SX35 de Xilinx), et un DSP (Da Vinci TMS320DM6446 de Texas
Instruments).
Figure 2 : Schéma de référence pour le design du FPGA
TP2 : Programmation d’un FPGA
3
Département Télécommunications Services & Usages
___________________________________________________________________________
Nous allons utiliser ces composants pour traiter un signal audio provenant de lecteurs MP3, et dont
l’acquisition se fera à l’aide des ports audio et du codec PCM3008. Le signal audio est fourni au
DSP, et nous le traiterons dans le FPGA.
Pour faire communiquer entre eux ces 2 composants programmables, nous utiliserons le bus
VPSS :
Figure 2 : Port VPSS
TP2 : Programmation d’un FPGA
4
Département Télécommunications Services & Usages
___________________________________________________________________________
1. PRISE EN MAIN DES OUTILS
1.1. Carte
Repérez sur la carte SFF-SDR le FPGA, le DSP, les ports audio à l’aide de la documentation Lyrtech, à
laquelle vous avez accès depuis : Démarrer > Programmes > Lyrtech >SFF SDR>Documentation > SFF
SDR EVM/DP user’s guide.
Mettez sous tension la carte. Que se passe t’il ? Pourquoi ?
1.2. Programmation de la carte
Il est possible de communiquer avec la carte et de la programmer de 3 façons différentes :
-
Câble série : en utilisant l’Hyperterminal de Windows : c’est la seule façon de communiquer
avec la carte dans un premier temps. L’hyperterminal permet de configurer la carte
(affectation d’une adresse IP). Il permet aussi de programmer le FPGA et le DSP mais son
utilisation est fastidieuse.
-
JTAG : il est possible de se connecter sur la carte pour programmer indépendamment les
composants programmables avec un JTAG, mais les câbles sont spécifiques à chaque carte et
chaque composant. Pour une carte donnée, c’est le moyen de communication permettant de
réaliser le plus d’opération de bas niveau sur la carte (par exemple debuggage pas à pas), mais
il faut acheter le JTAG spécifique.
-
Câble Ethernet : cette solution n’est possible qu’une fois la carte correctement configurée,
mais son utilisation est plus simple, et c’est cette solution que nous utiliserons dans le TP.
L’outil fourni par Lyrtech pour programmer les composants est ‘Command Shell’. Lancez cet outil.
(Démarrer>Programmes>Lyrtech>Host). Pour détecter la plateforme, vous devez taper la commande
‘smdetect’, et une fenêtre d’interface doit apparaitre. Complétez-la pour vous connecter.
Une fois la connexion établie, vous avez accès à la carte. Vous pouvez obtenir la liste des actions
possibles en tapant la commande ‘help’.
Vérifiez que vous pouvez contrôler directement l’allumage des LEDs (par exemple allumez la LED 3),
et que vous pouvez lire l’état des DIP switch. Donnez la(es) commande(s) utilisée(s).
Pour des programmes plus élaborés, il faut générer un fichier spécifique à l’architecture : *.bit pour
le FPGA et *.out pour le DSP. Récupérez le fichier TP4_DSP1.out sur Moodle, et téléchargez le sur le
DSP. Donnez la(es) commande(s) utilisée(s).
TP2 : Programmation d’un FPGA
5
Département Télécommunications Services & Usages
___________________________________________________________________________
1.3. Etude d’un exemple
Faites un copier-coller du répertoire (dans la même directory) :
C:\Lyrtech\SFF_SDR\SFF_SDR\examples\default\hard_func_ex\sff_sdr_audiocodec_vpss_loop, nous
allons travailler sur cet exemple.
Afin de simplifier la programmation, les étapes peuvent être automatisées. Ceci est réalisé dans le
dossier ‘host’. Ouvrez les fichiers avec un éditeur de texte. Que font exactement ces fichiers ?
Lancez Xilinx ISE et Code Composer (la cible est « C64+ DM64465520), et ouvrez les projets associés.
Lancez les compilations (étape un peu longue). Pendant ce temps, détaillez les fichiers sources (.vhd
pour le FPGA et .c pour le DSP). Que fait ce projet ?
En particulier, détaillez bien le fichier « custom logic » du FPGA. A quoi correspond ce fichier ? Dans
l’architecture, on peut distinguer 3 grandes zones de programmation. Quelles sont-elles et à quoi
correspondent-elles ? A quoi correspond la variable entre parenthèse dans la définition d’un
process ?
Connectez votre lecteur MP3 et votre casque à la plateforme et lancez le téléchargement des
programmes. Conclusion ?
2. TEST DU COMPORTEMENT DU PROJET
2.1. Contrainte de temps
Avant de modifier le projet pour y insérer un filtre numérique, nous devons connaître les contraintes
pour le design que nous souhaitons réaliser, et en particulier la contrainte de temps.
Pour cela, nous allons déterminer le nombre de cycles disponibles entre l’entrée d’une donnée et la
sortie d’une donnée : réalisez un compteur binaire, et insérez le dans le .vhd.
En modifiant les paramètres du compteur déterminez approximativement (puissance de 2) le
nombre de cycles disponibles. Conclusion ?
Cette donnée pouvait elle être obtenue grâce à la documentation ?
2.2. Format des données
Proposez et réalisez des tests pour connaître la taille utile des données audio numériques. Quelle estelle ?
TP2 : Programmation d’un FPGA
6
Département Télécommunications Services & Usages
___________________________________________________________________________
3. IMPLEMENTATION D’UN FILTRE FIR
Pour créer le FIR, vous allez vous baser sur les fichiers du répertoire « TP4_FIR » déposé sur Moodle.
Faites un copier coller de ce dossier dans le répertoire
C:\Lyrtech\SFF_SDR\SFF_SDR\examples\default\hard_func_ex\ pour pouvoir réaliser vos
modifications.
3.1. Utilisation d’entité
Afin de faciliter la rédaction du code VHDL, lorsque des opérations sont répétées, on peut créer un
bloc ou « entité » qui décrit le comportement souhaité.
Observez la construction des entités présentes dans le « custom logic » du nouveau projet, et
construisez une entité de multiplication à l’aide de ces exemples.
3.2. Réalisation d’un filtre à 3 coefficients
Reliez les entités de façon à créer un filtre composé de 3 coefficients.
Réalisez les tests nécessaires pour vérifier son bon fonctionnement. Pour cela, vous pouvez utiliser
soit les LEDs …, soit la connexion série (COM1, 115200bit/s, aucun contrôle de flux, et forcer les
données entrantes en 7 bits) et le driver permettant d’afficher les caractères hexadécimaux (dont le
programme est fourni dans le fichier driver.c).
3.3. Réalisation d’un filtre à N coefficients
Généralisez votre programme en créant un filtre à N coefficients.
Testez-le avec les coefficients donnés dans le fichier « coefficients.txt ». Pour cela, écoutez
audio1.wav et audio2.wav, puis filtrez les. Que fait ce filtre ?
Générez des filtres à l’aide de FDATool, et essayez les sur vos morceaux préférés !!
TP2 : Programmation d’un FPGA
7
Département Télécommunications Services & Usages
___________________________________________________________________________
TP2 : Programmation d’un FPGA
8
Téléchargement