SEm/labore/04 synthese

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 
{{TOC right}}
 
{{TOC right}}
  
 
 
 
= Automatische Synthese =
 
= Automatische Synthese =
  
 
== Einleitung ==
 
== Einleitung ==
  
Dieses Labor zeigt die automatische Synthese abhand von einem VHDL-Code.
+
Dieses Labor zeigt die automatische Synthese von VHDL-Code.
  
Es basiert auf dem Beispiel des Funktionsgenerators. Die Zusammensetzung von zwei
+
Es basiert auf dem Beispiel des [[SEm/labore/01_generator|Funktionsgenerators]].
Sinuswellen erlaubt es, Lissajous-Figuren zu zeichnen.
+
Die Zusammensetzung von zwei verschiedenen Sinuswellen erlaubt es Lissajous-Figuren zu zeichnen.
  
'''Abbildung 1. Lissajous-Figur'''
+
[[Image:SEm_lissajou.png|center|Lissajous-Figur]]
  
[[Image:lissajou.png]]<br>
 
 
== Synthese ==
 
== Synthese ==
  
Am obersten Level der zu erstellenden Schaltung kommen die Ein- / Ausgangsbl&ouml;cke. Hier
+
[[Image:SEm_FPGA_sineGen.png|thumb|Zu erstellende Schaltung]]
findent man die Polarit&auml;tsadapter, die Tri-State-Puffer, die Synchronisationslogik, ...
+
  
In unserem Beispiel werden wir zwei Sinusgeneratore, zwei Sigma-Delta Modulatore und eine
+
Auf das obersten Level der zu erstellenden Schaltung kommen die Ein- / Ausgangsblöcke.
Synchronisationslogik zum Reset-Signal legen.
+
Hier findet man z.B. Polaritätsadapter, Tri-State-Puffer, Synchronisationslogik, ...
  
'''Abbildung 2. Zu erstellende Schaltung'''
+
In unserem Beispiel werden wir zwei Sinusgeneratoren, zwei Sigma-Delta-Modulatoren und eine Synchronisationslogik für das Reset-Signal setzten.
  
[[Image:FPGA_sineGen.png]]<br>
+
Wir werden auch den Viereck-Ausgang eines der Generatoren verwenden um ein Synchronisationssignal für das Oszilloskop zu erstellen.
Wir werden auch den Viereck-Ausgang eines der Generatore anwenden, um ein
+
Synchronisationssignal f&uuml;r den Oszilloskop zu erstellen.
+
  
Die Schaltung befindet sich in der Library '''Board''', die Testbank in der
+
Die Schaltung befindet sich in der Library '''Board''', die Testbank in der Library '''SineInterpolator_test'''.
Library '''SineInterpolator_test'''.
+
  
 
=== Schaltung ===
 
=== Schaltung ===
  
&Ouml;ffnen Sie den Block '''FPGA_sineGen''' in die Librairy
+
{{TaskBox|Öffnen Sie den Block '''FPGA_sineGen''' in der Library '''Board''', kompilieren Sie ihn und überprüfen Sie per Simulation ob die Schaltung in Ordnung ist.}}
'''Board''', kompilieren Sie ihn und schauen Sie, dass die Schaltung in
+
Ordnung ist.
+
  
Eine Simulation der Schaltung an diesem Level erlaubt es, die Funktionalit&auml;t des Systems
+
Eine Simulation der Schaltung auf diesem Level erlaubt es die Funktionalität des Systems sicherzustellen.
sicherzustellen.
+
  
 
=== Erstellung der Datei ===
 
=== Erstellung der Datei ===
  
Bestimmen Sie den Namen der generierten Datei mit dem Befehl '''Options &gt; Main...
+
{{TaskBox|Bestimmen Sie den Namen der generierten Datei mit dem Befehl '''Options -> Main... -> User variables: concat_file = sineGen'''.}}
&gt; User variables: concat_file = sineGen'''.
+
  
Starten Sie das Befehl '''Prepare for synthesis'''.
+
{{TaskBox|Starten Sie den Task '''Prepare for synthesis'''.}}
  
 
=== Synthese ===
 
=== Synthese ===
  
Starten Sie das Befehl '''Xilinx Project Navigator'''.
+
{{TaskBox|Starten Sie den Task '''Xilinx Project Navigator'''.}}
  
Geben Sie den Schaltugstyp an, '''xc3s500E''', und geben Sie dessen
+
{{TaskBox|Geben Sie den Schaltugstyp an, '''xc3s500E''', und geben Sie dessen Parameter, '''FG320-5'''.}}
Parameter, '''FG320-5'''.
+
  
F&uuml;gen Sie Sie die erzeugte VHDL Datei '''sineGen.vhd''' zum Projekt hinzu.
+
{{TaskBox|Fügen Sie Sie die erzeugte VHDL Datei '''sineGen.vhd''' zum Projekt hinzu.}}
Machen Sie sicher, dass die gew&auml;hlte Schaltung '''FPGA_sineGen-struct'''
+
ist.
+
  
F&uuml;gen Sie Sie die Datei '''sineGen.ucf''' zum Projekt hinzu.
+
{{TaskBox|Stellen Sie sicher, dass '''FPGA_sineGen-struct''' die ausgewählte Schaltung ist.}}
  
Starten Sie das Befehl '''Synthesize - XST'''. Pr&uuml;fen Sie alle Warnungen
+
{{TaskBox|Fügen Sie Sie die Datei '''sineGen.ucf''' zum Projekt hinzu.}}
("'''warning'''") und stellen Sie sicher, dass die Schaltung keine
+
Realisierungsprobleme aufweist. &Uuml;berpr&uuml;fen Sie die Resultate zur Gr&ouml;sse der resultierenden
+
Schaltung.
+
  
Finden Sie die maximale Taktfrequenz, die f&uuml;r diese Schaltung vorgesehen ist.
+
{{TaskBox|Starten Sie den Befehl '''Synthesize - XST'''.}}
 +
 
 +
{{TaskBox|Prüfen Sie alle Warnungen ("'''warning'''") und stellen Sie sicher, dass die Schaltung keine Realisierungsprobleme aufweist.}}
 +
 
 +
{{TaskBox|Überprüfen Sie die Grösse der resultierenden Schaltung.}}
 +
 
 +
{{TaskBox|Finden Sie die maximale Taktfrequenz, die für diese Schaltung möglich ist.}}
  
 
=== Place und Route ===
 
=== Place und Route ===
  
Starten Sie das Befehl '''Implement Design'''.
+
{{TaskBox|Starten Sie das Befehl '''Implement Design'''.}}
  
 
=== Konfiguration ===
 
=== Konfiguration ===
  
Speisenr Sie das FPGA-Board und schliessen Sie das JTAG-Downloadkabel an.
+
{{TaskBox|Speisen Sie das FPGA-Board und schliessen Sie das JTAG-Downloadkabel an.}}
  
Starten Sie die Befehle '''Generate Programming File''' und
+
{{TaskBox|Starten Sie die Befehle '''Generate Programming File''' und '''Configure Target Device'''.}}
'''Configure Target Device'''.
+
  
Downloaden Sie die Konfiguration ins FPGA.
+
{{TaskBox|Laden Sie die Konfiguration ins FPGA.}}
  
 
=== Tests ===
 
=== Tests ===
  
Dimensionnieren Sie einen RLC passiven Tiefpassfilter, um eine Schnittfrequenz von
+
{{TaskBox|Dimensionieren Sie einen passiven RLC-Tiefpassfilter, um eine Schnittfrequenz von 20 kHz zu erhalten.}}
20 kHz zu erhalten.
+
  
Schalten Sie die Tiefpassfilter am Ausgang der Modulatore. Pr&uuml;fen Sie die Sinuswellen
+
{{TaskBox|
auf dem Oszilloskop. Stellen Sie das Display auf X-Y Modus: sie sollten die Lissajous-Figur
+
Schalten Sie die Tiefpassfilter an den Ausgang der Modulatoren.
dabei sehen.
+
Prüfen Sie die Sinuswellen auf dem Oszilloskop.
 +
Stellen Sie den Display auf X-Y Modus ein: Sie sollten nun die Lissajous-Figur sehen.}}
  
 
{{navNamed|left=SEm/labore/03_konverter|left_name=03 Digital / Analog Wandler|up=SEm/labore|up_name=Anleitung auf Deutsch|right=SEm/labore/05_amba|right_name=05 AMBA-Bus basiertes System}}
 
{{navNamed|left=SEm/labore/03_konverter|left_name=03 Digital / Analog Wandler|up=SEm/labore|up_name=Anleitung auf Deutsch|right=SEm/labore/05_amba|right_name=05 AMBA-Bus basiertes System}}
  
 
[[Category:SEm]]
 
[[Category:SEm]]

Revision as of 19:07, 11 June 2013

Contents

Automatische Synthese

Einleitung

Dieses Labor zeigt die automatische Synthese von VHDL-Code.

Es basiert auf dem Beispiel des Funktionsgenerators. Die Zusammensetzung von zwei verschiedenen Sinuswellen erlaubt es Lissajous-Figuren zu zeichnen.

Lissajous-Figur

Synthese

Zu erstellende Schaltung

Auf das obersten Level der zu erstellenden Schaltung kommen die Ein- / Ausgangsblöcke. Hier findet man z.B. Polaritätsadapter, Tri-State-Puffer, Synchronisationslogik, ...

In unserem Beispiel werden wir zwei Sinusgeneratoren, zwei Sigma-Delta-Modulatoren und eine Synchronisationslogik für das Reset-Signal setzten.

Wir werden auch den Viereck-Ausgang eines der Generatoren verwenden um ein Synchronisationssignal für das Oszilloskop zu erstellen.

Die Schaltung befindet sich in der Library Board, die Testbank in der Library SineInterpolator_test.

Schaltung

View-pim-tasks.png

ToDo some code

Eine Simulation der Schaltung auf diesem Level erlaubt es die Funktionalität des Systems sicherzustellen.

Erstellung der Datei

View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code

Synthese

View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code

Place und Route

View-pim-tasks.png

ToDo some code

Konfiguration

View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code

Tests

View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


Navigation
Arrow left.gif 03 Digital / Analog Wandler Arrow up.gif Anleitung auf Deutsch 05 AMBA-Bus basiertes System Arrow right.gif

Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox