0% ont trouvé ce document utile (0 vote)
2 vues10 pages

Utilisation de Vivado HLS pour Filtre FIR

Transféré par

Melik Jabnouni
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues10 pages

Utilisation de Vivado HLS pour Filtre FIR

Transféré par

Melik Jabnouni
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

2023/2024

Objectifs
L’objectif de ce TP est de donner les principales clefs pour utiliser la suite d’outils VivadoHLS
de la société Xilinx. Vous allez, dans un premier temps, réaliser la simulation d’un filtre en utilisant
un langage de description logicielle: le langage C. Ensuite, faites la synthèse du modèle et
interprétez les résultats de côté latence et ressources, en changeant le support FPGA à chaque
fois.

I. Rappel (Tutorial Xilinx)

Filtre FIR (filtre à réponse impulsionnelle finie)

En général, un filtre numérique est un algorithme mathématique qui opère sur un ensemble de
données numériques afin d’extraire les informations intéressantes et de supprimer toute information
indésirable. Un filtre FIR est un filtre numérique utilisé en traitement de signal dont la réponse
impulsionnelle est de durée finie.
Avec

x[i] sont les valeurs du signal d'entrée et

y[i] sont les valeurs du signal de sortie.

N = Nombre de coefficients (ordre du filtre).

bk = Coefficients de la fonction de transfert du filtre.

II. Créer un projet de synthèse de haut niveau

Cette partie montre comment créer un projet de synthèse de haut niveau, valider le code C,
synthétiser la conception au RTL et vérifier le RTL.
1. Ouvrir Vivado® HLS (Fig. 1.).

Fig. 1. The Vivado HLS Desktop Icon.


2. Dans la page d'accueil (Fig. 2.), sélectionnez Créer un nouveau projet pour ouvrir l'assistant de
projet.
3. Saisissez le nom du projet fir_prj.
4. Cliquez sur Parcourir pour accéder à l'emplacement du répertoire TP3.
5. Sélectionnez le répertoire TP3 et cliquez sur OK.
6. Cliquez sur Suivant.

Fig. 2. La page d'accueil de Vivado HLS.


7. Saisissez les informations suivantes pour spécifier les fichiers de conception C.
8. Cliquez sur Ajouter des fichiers.
9. Sélectionnez fir.c et cliquez sur OK.
10. Utilisez le bouton Parcourir pour spécifier fir (fir.c) comme fonction de niveau supérieur.
11. Cliquez sur Suivant.

Fig. 3. Configuration du projet.


12. Cliquez sur le bouton Ajouter des fichiers pour inclure les deux fichiers de test bench : fir_test.c et
[Link].
13. Cliquez sur Suivant.

Fig. 4. Project Design Files. Fig. 5. Test Bench Files.


14. Acceptez le nom de la solution par défaut (solution1), la période d'horloge (10 ns) et
l'horloge.
15. Cliquez sur le bouton de sélection de pièce pour ouvrir la fenêtre de sélection de pièce.
16. Sélectionnez la carte Zybo 7z010clg400-1 dans la liste des périphériques disponibles.
17. Cliquez sur OK.
Fig. 6. Solution Configuration.
18. Cliquez sur Terminer pour ouvrir le projet Vivado HLS, comme illustré à la Fig. 7.

Fig. 7. Vivado HLS Project.

III. Validation de code C

La première étape d'un projet HLS consiste à confirmer que le code C est correct. Ce processus est
appelé Validation C ou Simulation C.
Dans ce projet, le test bench compare les données de sortie de la fonction fir avec des données
connues
1. Développez le dossier test bench dans le explorer Pane.
2. Double-cliquez sur le fichier fir_test.c pour l'afficher dans l’Information Pane.
3. Dans le Auxiliary Pane, sélectionnez main () dans l'onglet Outline pour accéder directement à
la fonction main ().
Fig. 9. Reviewing the Test Bench Code.
Le fichier du test bench fir_test.c contient la fonction C de niveau supérieur main(), qui à son tour
appelle la fonction à synthétiser (fir). Une caractéristique utile de ce test bench est qu'il s'auto-
vérifie :
• Le test bench enregistre la sortie de la fonction fir dans le fichier de sortie, [Link].
• Le fichier de sortie est comparé aux résultats d’or (i.e. golden), stockés dans le
fichier [Link].
• Si la sortie correspond aux données d'or, un message confirme que les résultats sont
corrects, et la valeur de retour de la fonction test bench main () est définie sur 0.
• Si la sortie est différente des résultats d'or, un message l'indique, et la valeur de
retour de main () est définie sur 1.

4. Cliquez sur le bouton Exécuter la simulation C ou utilisez le menu Projet > Exécuter la
simulation C pour compiler et exécuter la conception C.
5. Dans la boîte de dialogue Simulation C, cliquez sur OK.
Le volet Console (Fig. 10.) confirme la simulation exécutée avec succès.
Fig. 10. Results of C Simulation.

IV. Synthèse de Haut Niveau


Dans cette étape, vous synthétisez la conception C en une conception RTL et examinez le rapport
de synthèse 1.
1. Cliquez sur le bouton de la barre d'outils Run C Synthesis ou utilisez le menu Solution >
Run C Synthesis > Solution active.

Une fois la synthèse terminée, le fichier de rapport s'ouvre automatiquement. Parce que le rapport
de la synthèse est ouvert dans l’Informations Pane, l'onglet Plan du auxiliary Pane
automatiquement mises à jour pour refléter les informations du rapport.
2. Cliquez sur Performance Estimates dans l'onglet Outline (Fig. 11.).
3. Dans la section Détail des estimations de performances, développez la vue Boucle (i.e.
Loop).
Fig. 11. Performance Estimates.
4. Dans l'onglet Aperçu, cliquez sur Estimations d'utilisation (Fig. 12.).

Fig. 12. Utilization Estimates.


5. Dans la section Détail des estimations d'utilisation, développez la vue Expression.
6. Dans l'onglet Plan (Outline), cliquez sur Interface (Fig. 13.)

Fig. 13. Interface Report.

V. RTL Vérification

1. Cliquez sur le bouton de la barre d'outils Run C/RTL Co Simulation ou utilisez le menu
Solution > Run Co Simulation C/RTL.
2. Cliquez sur OK dans la boîte de dialogue Co-simulation C/RTL pour exécuter la
simulation RTL.
Lorsque la Co-simulation RTL est terminée, le rapport s'ouvre automatiquement dans la fenêtre
d'information et la console affiche le message illustré à la Fig. 14. C'est le même message produit à
la fin de la simulation C.

Fig. 14. RTL Verification Results.


Définitions
Le fichier de directive permettra d’établir sous forme de texte, les spécifications pour chacune des
interfaces de synthèse. Le fichier C testbench fournira les signaux de test pour la validation de la
synthèse.
Latence : (ou délai de transit, ou retard). En électronique, La latence est définie comme le nombre
de cycles d'horloge requis pour produire une sortie. Exemple : La latence de la boucle est le nombre
de cycles pour exécuter toutes les itérations de la boucle.
Surface : Quantité de ressources matérielles requises pour mettre en œuvre la conception en fonction
des ressources disponibles dans le FPGA, y compris les tables de correspondances ou Look Up Table
(LUT), les registres, les blocs RAM et les DSP48.

VI. Travail demandé


o Pré-synthèse
1. Reprenez le modèle réalisant le filtre FIR.
2. Choisissez le FPGA présent sur la carte d’évaluation Zybo 7z010clg400-1.
3. Lancez la simulation de votre système.
o Post-synthèse
4. Faites la synthèse du modèle à l’aide de l’outil Vivado HLS.
5. Analysez et interprétez les résultats de synthèse.
6. Générez une architecture matérielle de niveau RTL du modèle.
7. Changez la cible matérielle indiquée dans les paramètres de synthèse. Choisissez le
FPGA présent sur la carte Virtex-7 VC707 (XC7VX485T-2FFG1761).
8. Faites de nouveau la synthèse de modèle et interprétez les résultats (latence, ressources).
Annexe
Présentation de l’interface utilisateur du Vivado HLS

Fig. 15. Interface graphique d’utilisateur Vivado HLS

Explorer Pane (Volet Explorateur)


Affiche la hiérarchie du projet. Au fur et à mesure que vous progressez dans la validation, la synthèse, la
vérification, et les étapes de packaging IP, des sous-dossiers avec les résultats de chaque étape sont créés
automatiquement dans le répertoire de la solution (nommés respectivement csim, syn, sim et impl).
Lorsque vous créez de nouvelles solutions, elles apparaissent dans la hiérarchie du projet à côté solution1.
Information Pane (Volet d'informations)
Affiche le contenu de tous les fichiers ouverts à partir du volet Explorateur. Lorsque les opérations sont
terminées, le fichier de rapport s'ouvre automatiquement dans ce volet.
Auxiliary Pane (Volet auxiliaire)
Liens croisés avec le volet Informations. Les informations affichées dans ce volet dynamiquement s'ajuste
en fonction du fichier ouvert dans le volet Informations.
Console Pane (Volet de la console)
Affiche les messages produits lors de l'exécution de Vivado HLS. Les erreurs et les avertissements
apparaissent dans Onglets du volet de la console.
Toolbar Buttons (Boutons de la barre d'outils)
Vous pouvez effectuer les opérations les plus courantes à l'aide des boutons de la barre d'outils.
Lorsque vous maintenez le curseur sur le bouton, une info-bulle contextuelle s'ouvre, expliquant la fonction.
Chaque bouton est également associé à un élément de menu disponible dans les menus déroulants.
Perspectives
Les perspectives offrent des moyens pratiques d'ajuster les fenêtres dans le Vivado HLS interface graphique.
• Perspective de synthèse
La perspective par défaut vous permet de synthétiser les conceptions, d'exécuter des simulations et
d'empaqueter les IP.
• Perspective de débogage
Comprend des volets associés au débogage du code C. Vous pouvez ouvrir la perspective de débogage après
la compilation du code C (sauf si vous utilisez le mode Optimisation de la compilation car cela désactive
informations de débogage).
• Perspective d'analyse
Les fenêtres dans cette perspective sont configurées pour prendre en charge l'analyse des résultats de
synthèse. Vous ne pouvez utiliser la perspective d'analyse qu'une fois la synthèse terminée.

Vous aimerez peut-être aussi