SEm/laboratoires/04 synthese

From FSI
(Difference between revisions)
Jump to: navigation, search
(Circuit)
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{TOC right}}
 
{{TOC right}}
 +
 +
= Synthèse automatique =
  
 
== Introduction ==
 
== Introduction ==
 +
Ce laboratoire présente la synthèse automatique de circuits à partir du code VHDL.
 +
Il se base sur l'exemple du générateur de fonctions. La combinaison de deux sinusoïdes à des fréquences différentes permet de dessiner des courbes de Lissajous.
  
</div></div></div>
+
[[Image:SEm_lissajou.png|center|Courbe de Lissajous]]
  
Ce laboratoire présente la synthèse automatique de circuits à partir du code VHDL.
+
== Synthèse ==
 +
Au niveau supérieur du circuit à synthétiser, il faut prévoir la circuiterie d'entrée/sortie. C'est à ce niveau que se mettent les adaptateurs de polarité des signaux, les "buffers" haute impédance, la logique de synchronisation, ...
 +
Dans notre exemple, nous placerons deux générateurs de sinus, deux modulateurs sigma-delta et une logique de synchronisation pour le signal de remise à zéro au démarrage.
  
Il se base sur l'exemple du générateur de fonctions. La combinaison de deux sinusoïdes à des fréquences différentes permet de dessiner des courbes de Lissajous.
+
[[Image:SEm_FPGA_sineGen.png|thumb|Circuit à réaliser]]
  
<div class="figure">
+
Nous profiterons du signal carré de l'un des générateurs pour fournir un signal de synchronisation pour l'oscilloscope.
 
+
Le circuit se trouve dans la librairie '''Board''', le banc de test dans la librairie '''Lissajous_test'''.
'''Figure 1. Courbe de Lissajous'''
+
 
+
<div class="figure-contents"><div class="mediaobject"><center>[[Image:lissajou.png]]</center></div></div></div><br class="figure-break" /></div><div class="section" title="Synth&egrave;se"><div class="titlepage"><div><div>
+
 
+
== Synthèse ==
+
 
+
</div></div></div>
+
 
+
Au niveau supérieur du circuit à synthétiser, il faut prévoir la circuiterie d'entrée/sortie. C'est à ce niveau que se mettent les adaptateurs de polarité des signaux, les "buffers" haute impédance, la logique de synchronisation, ...
+
 
+
Dans notre exemple, nous placerons deux générateurs de sinus, deux modulateurs sigma-delta et une logique de synchronisation pour le signal de remise à zéro au démarrage.
+
 
+
<div class="figure">
+
 
+
'''Figure 2. Circuit à réaliser'''
+
 
+
<div class="figure-contents"><div class="mediaobject"><center>[[Image:FPGA_sineGen.png]]</center></div></div></div><br class="figure-break" />
+
 
+
Nous profiterons du signal carré de l'un des générateurs pour fournir un signal de synchronisation pour l'oscilloscope.
+
 
+
Le circuit se trouve dans la librairie <span class="command">'''Board'''</span>, le banc de test dans la librairie <span class="command">'''SineInterpolator_test'''</span>.
+
 
+
<div class="section" title="Circuit"><div class="titlepage"><div><div>
+
  
 
=== Circuit ===
 
=== Circuit ===
  
</div></div></div>
+
{{TaskBox|content=
 +
Ouvrir le bloc '''lissajousGenerator_circuit''' de la librairie '''Board''', le compiler et vérifier que le schéma est fonctionnel.}}
  
Ouvrir le bloc <span class="command">'''FPGA_sineGen'''</span> de la librairie <span class="command">'''Board'''</span>, le compiler et vérifier que le schéma est fonctionnel.
+
Une simulation du circuit à ce niveau permet de s'assurer de la bonne fonctionnalité du système.
  
Une simulation du circuit à ce niveau permet de s'assurer de la bonne fonctionnalité du système.
+
[[File:SEm_lissajou_coeffs.svg|thumb|Coefficients Interpolation]]
 +
Vos coefficients peuvent être vérifiées par le [[Media:SEm_sinegen_coeffs.svg|chronogramme ci-contre]].
  
</div><div class="section" title="G&eacute;n&eacute;ration"><div class="titlepage"><div><div>
+
=== Génération ===
 +
{{TaskBox|content=
 +
Lancer la commande '''Prepare for synthesis'''.}}
  
=== Génération ===
+
=== Synthèse ===
 
+
{{TaskBox|content=
</div></div></div>
+
# Lancer la commande '''Xilinx Project Navigator'''.
 
+
# Spécifier le type de circuit utilisé, '''xc3s500E''', et ses paramètres '''FG320-5'''.
Spécifier le nom du fichier généré avec la commande <span class="command">'''Options &gt; Main... &gt; User variables: concat_file = sineGen'''</span>.
+
# Ajouter le fichier VHDL généré '''lissajous.vhd''' au projet. Vérifier que le circuit choisi pour la synthèse est bien '''lissajousGenerator_circuit-struct'''.
 
+
# Ajouter le fichier '''lissajous.ucf''' au projet.
Lancer la commande <span class="command">'''Prepare for synthesis'''</span>.
+
# Lancer la commande '''Synthesize - XST'''.
 
+
# Vérifier tous les avertissements ("'''warning'''") et s'assurer que le circuit ne pose aucun problème de réalisation.
</div><div class="section" title="Synth&egrave;se"><div class="titlepage"><div><div>
+
# Examiner les informations de résultat de synthèse quant à la taille du circuit résultant.
 
+
# Vérifier la fréquence maximale prévue pour ce circuit.}}
=== Synthèse ===
+
 
+
</div></div></div>
+
 
+
Lancer la commande <span class="command">'''Xilinx Project Navigator'''</span>.
+
 
+
Spécifier le type de circuit utilisé, <span class="command">'''xc3s500E'''</span>, et ses paramètres <span class="command">'''FG320-5'''</span>.
+
 
+
Ajouter le fichier VHDL généré <span class="command">'''sineGen.vhd'''</span> au projet. Vérifier que le circuit choisi pour la synthèse est bien <span class="command">'''FPGA_sineGen-struct'''</span>.
+
 
+
Ajouter le fichier <span class="command">'''sineGen.ucf'''</span> au projet.
+
 
+
Lancer la commande <span class="command">'''Synthesize - XST'''</span>. Vérifier tous les avertissements ("<span class="command">'''warning'''</span>") et s'assurer que le circuit ne pose aucun problème de réalisation. Examiner les informations de résultat de synthèse quant à la taille du circuit résultant.
+
 
+
Vérifier la fréquence maximale prévue pour ce circuit.
+
 
+
</div><div class="section" title="Placement et routage"><div class="titlepage"><div><div>
+
  
 
=== Placement et routage ===
 
=== Placement et routage ===
 
+
{{TaskBox|content=
</div></div></div>
+
Lancer la commande '''Implement Design'''.}}
 
+
Lancer la commande <span class="command">'''Implement Design'''</span>.
+
 
+
</div><div class="section" title="Configuration"><div class="titlepage"><div><div>
+
  
 
=== Configuration ===
 
=== Configuration ===
 
+
{{TaskBox|content=
</div></div></div>
+
# Alimenter le circuit FPGA et le connecter au câble de téléchargement JTAG.
 
+
# Lancer les commandes '''Generate Programming File''' et '''Configure Target Device'''.
Alimenter le circuit FPGA et le connecter au câble de téléchargement JTAG.
+
# Télécharger le fichier de configuration dans la FPGA.}}
 
+
Lancer les commandes <span class="command">'''Generate Programming File'''</span> et <span class="command">'''Configure Target Device'''</span>.
+
 
+
Télécharger le fichier de configuration dans la FPGA.
+
 
+
</div><div class="section" title="Tests"><div class="titlepage"><div><div>
+
  
 
=== Tests ===
 
=== Tests ===
  
</div></div></div>
+
{{TaskBox|content=
 
+
Brancher les filtres passe-bas à la sortie des modulateurs. Vérifier la forme des signaux sur l'oscilloscope. Mettre l'oscilloscope en mode X-Y: ceci donne une courbe de Lissajous.}}
Dimensionner un filtre passe-bas passif RLC pour obtenir une fréquence de coupure de 20 kHz.
+
 
+
Brancher les filtres passe-bas à la sortie des modulateurs. Vérifier la forme des signaux sur l'oscilloscope. Mettre l'oscilloscope en mode X-Y: ceci donne une courbe de Lissajous.
+
 
+
</div></div></div>
+
  
{{navNamed|left=SEm/laboratoires/03_convertisseur|left_name=03 Convertisseur numérique / analogique|up=SEm/laboratoires|up_name=Instructions en français|right=TBC|right_name=TBC}}
+
{{navNamed
 +
|left=SEm/laboratoires/03_convertisseur|left_name=03 Convertisseur numérique / analogique
 +
|up=SEm/laboratoires|up_name= Travaux de laboratoire
 +
|right=SEm/laboratoires/machine d etat|right_name=machine d'états
 +
}}
  
[[Category:SEm]]
+
[[Category:Bachelor]] [[Category:SEm]] [[Category:Français]]

Latest revision as of 11:08, 26 February 2021

Contents

Synthèse automatique

Introduction

Ce laboratoire présente la synthèse automatique de circuits à partir du code VHDL. Il se base sur l'exemple du générateur de fonctions. La combinaison de deux sinusoïdes à des fréquences différentes permet de dessiner des courbes de Lissajous.

Courbe de Lissajous

Synthèse

Au niveau supérieur du circuit à synthétiser, il faut prévoir la circuiterie d'entrée/sortie. C'est à ce niveau que se mettent les adaptateurs de polarité des signaux, les "buffers" haute impédance, la logique de synchronisation, ... Dans notre exemple, nous placerons deux générateurs de sinus, deux modulateurs sigma-delta et une logique de synchronisation pour le signal de remise à zéro au démarrage.

Circuit à réaliser

Nous profiterons du signal carré de l'un des générateurs pour fournir un signal de synchronisation pour l'oscilloscope. Le circuit se trouve dans la librairie Board, le banc de test dans la librairie Lissajous_test.

Circuit

View-pim-tasks.png

Ouvrir le bloc lissajousGenerator_circuit de la librairie Board, le compiler et vérifier que le schéma est fonctionnel.

Une simulation du circuit à ce niveau permet de s'assurer de la bonne fonctionnalité du système.

Coefficients Interpolation

Vos coefficients peuvent être vérifiées par le chronogramme ci-contre.

Génération

View-pim-tasks.png

Lancer la commande Prepare for synthesis.

Synthèse

View-pim-tasks.png

  1. Lancer la commande Xilinx Project Navigator.
  2. Spécifier le type de circuit utilisé, xc3s500E, et ses paramètres FG320-5.
  3. Ajouter le fichier VHDL généré lissajous.vhd au projet. Vérifier que le circuit choisi pour la synthèse est bien lissajousGenerator_circuit-struct.
  4. Ajouter le fichier lissajous.ucf au projet.
  5. Lancer la commande Synthesize - XST.
  6. Vérifier tous les avertissements ("warning") et s'assurer que le circuit ne pose aucun problème de réalisation.
  7. Examiner les informations de résultat de synthèse quant à la taille du circuit résultant.
  8. Vérifier la fréquence maximale prévue pour ce circuit.

Placement et routage

View-pim-tasks.png

Lancer la commande Implement Design.

Configuration

View-pim-tasks.png

  1. Alimenter le circuit FPGA et le connecter au câble de téléchargement JTAG.
  2. Lancer les commandes Generate Programming File et Configure Target Device.
  3. Télécharger le fichier de configuration dans la FPGA.

Tests

View-pim-tasks.png

Brancher les filtres passe-bas à la sortie des modulateurs. Vérifier la forme des signaux sur l'oscilloscope. Mettre l'oscilloscope en mode X-Y: ceci donne une courbe de Lissajous.


Navigation
Arrow left.gif 03 Convertisseur numérique / analogique Arrow up.gif Travaux de laboratoire machine d'états Arrow right.gif

Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox