SEm/labore/03 konverter

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 
{{TOC right}}
 
{{TOC right}}
  
 
 
 
= Digital / Analog Wandler =
 
= Digital / Analog Wandler =
  
 
== Einleitung ==
 
== Einleitung ==
  
Dieses Labor erlaubt es, die Kenntnisse zu konsolidieren, die auf der Behandlung von
+
In diesem Labor werden die Kenntnisse über die Behandlung von Zahlen konsolidiert.
Zahlen erworben wurden. Es wird uns einen nützlichen Bestandteil für die Folge liefern: der
+
Es wird uns einen nützlichen Bestandteil für die weiteren Labore liefern: den Digital / Analog Wandler (Digital / Analog Converter, DAC).
Digital / Analog Wandler. Es wirft bestimmte Fragen hinsichtlich der Simulation von
+
Ausserdem wirft es bestimmte Fragen hinsichtlich der Simulation von Schaltungen durchschnittlicher Komplexität auf.
Kreisläufen durchschnittlicher Komplexität auf.
+
  
Die Digital / Analog Wandlung wird auf Basis eines sigma-delta (SD)
+
Die Digital / Analog Wandlung wird auf Basis eines Sigma-Delta (ΣΔ, SD) Modulators erstellt.
Modulators erstellt. Das Originalsignal wird in der Form von Impulsen codiert, deren
+
Das Originalsignal wird durch Impulse kodiert, deren Frequenz um einiges höher als die minimale Abtastrate ist.
Häufigkeit gut höher als die minimale Abtastungsrate ist. Diese Impluscodierung ist der
+
Diese Impulskodierung ist der Pulsweitenmodulation (Pulse Width Modulation, PWM) ähnlich, da das Originalsignal sich im Mittelwert der Impulse wiederfindet.
Pulsbreitenmodulation (Pulse Width Modulation, PWM) ähnlich insofern,
+
Bei gleichen Arbeitsfrequenzen liefert die SD-Codierung ein besseres Signal-Rausch-Verhältnis als die PWM.
dass das Originalsignal sich im Mittelwert der Impulse wieder findet. Zu gleichen
+
 
Arbeitsfrequenzen liefert die SD-Codierung ein besseres Signal-zu-Rauschen-Verhältnis als die
+
[[Image:DAC.png|center|Delta-Sigma-Modulator]]
PWM.
+
  
 
== Modulator erster Ordnung ==
 
== Modulator erster Ordnung ==
  
Der SD-Modulator erhält ein Digitalsignal und wandelt es in eimen 1-Bit-Signal um, in der
+
[[Image:SEm_???.png|thumb|Sigma-Delta Modulator erster Ordnung]]
Form einer Impulsdichte.
+
  
'''Abbildung 1. Sigma-delta Modulator'''
+
Der SD-Modulator erhält ein paralleles Digitalsignal und wandelt es in ein 1-Bit-Signal in der Form einer Impulsdichte um.
  
[[Image:DAC.png]]<br>
+
Der SD-Modulator erster Ordnung lässt sich mit der Messung eines Wasserlaufs verdeutlichen:
Der SD-Modulator erster Ordnung l&auml;sst sich verstehen mit der Analogie der Messung eines
+
Wasserlaufs:
+
  
* Der Wasserlauf wird in einem Becken gef&uuml;hrt, den er f&uuml;llen wird.
+
* Der Wasserlauf wird in ein Becken geführt, welches er füllen wird.
* Sobald das Wasserh&ouml;he eine Referenzlinie &uuml;berschreitet, zieht ein Operator einen Eimer Wasser aus dem Becken heraus.
+
* Sobald die Wasserhöhe eine Referenzlinie überschreitet wird ein Eimer voller Wasser aus dem Becken herausgeschöpft.
* Der durschnittliche Wert des Wasserlaufs entspricht dem Volumen des Eimers, multipliziert mit der Anzahl der Eimer, die durch Einheit von Zeit ausgesch&ouml;pft wurden.
+
* Der durchschnittliche Durchfluss des Wasserlaufs entspricht somit dem Volumen des Eimers multipliziert mit der Anzahl der Eimer, die pro Zeiteinheit ausgeschöpft werden.
  
 
Der Modulator wird wie folgt erstellt:
 
Der Modulator wird wie folgt erstellt:
  
* Bei jeder Taktperiode wird der neue Eingangswert einem Akkumulator zugez&auml;hlt.
+
* Bei jeder Taktperiode wird der neue Eingangswert einem Akkumulator hinzuaddiert.
* Der MSB des Resultates ist der Ausgangssignal des Modulators (Impuls oder nicht).
+
* Das MSB des Resultates ist das Ausgangssignal des Modulators (Impuls oder nicht).
* Ist dieses MSB gleich '1', so wird der Wert 2^n dem Akkumulator entzogen.
+
* Ist dieses MSB gleich '1', so wird der Wert 2^n dem Akkumulator abgezogen.
  
'''Abbildung 2. Sigma-Delta Modulator erster Odrdnung'''
+
Die Schaltung befindet sich in der Library '''Beamer''', die Testbank in der Library '''Beamer_test'''.
 
+
<br>
+
Die Schaltung befindet sich in der Library '''Beamer''', die Testbank in der
+
Library '''Beamer_test'''.
+
  
 
=== VHDL Code ===
 
=== VHDL Code ===
  
Schreiben Sie die VHDL Architektur des SD Modulators.
+
Der interne Akkumulator braucht mehr Bits als das Eingangssignal.
 +
Für den Anfang arbeiten wir mit 4 zusätzlichen Bits.
  
Der interne Akkumulator braucht mehr Bits als das Eingangssignal. Sehen Sie
+
{{TaskBox|Schreiben Sie die VHDL Architektur des SD-Modulators.}}
4 zus&auml;tzliche Bits vor, und die Simulation wird die tats&auml;chlich notwendige Anzahl
+
zeigen.
+
  
 
=== Simulation ===
 
=== Simulation ===
  
Compilieren Sie und simulieren Sie den block '''DAC_tb'''. Die Amplitude
+
{{TaskBox|Kompilieren Sie und simulieren Sie den block '''DAC_tb'''.}}
des Ausgangssignals ist durch den Mittelwert des Ausgangsignals gegeben. Finden Sie einen
+
 
Mittel, um das parallele Eingangssignal mit der Ausgangs-Impulsdichte zu vergleichen.
+
Die Amplitude des Ausgangssignals ist durch dessen Mittelwert gegeben.
 +
 
 +
{{TaskBox|Finden Sie einen Weg um das parallele Eingangssignal mit der Ausgangs-Impulsdichte zu vergleichen.}}
 +
 
 +
Die analoge Wiederherstellung eines Signals, welches lange Zeit auf '1' oder auf '0' bleibt ist schwer zu bewerkstelligen.
 +
Diese Problem kann vermieden werden, indem man den Bereich des Signals reduziert.
 +
 
 +
{{TaskBox|
 +
Reduzieren Sie das Signal um einen Faktor von 1/2 zentrieren Sie wieder mit einer Verschiebung nach oben.
 +
Führen Sie die Simulation mit dieser Änderung wieder durch.}}
  
Die analoge Erstattung des Signals, das lange Zeit an '1' oder an '0' bleibt,
+
{{TaskBox|Untersuchen Sie den zeitlichen Verlauf des Inhalts des Akkumulators und bestimmen Sie die minimal notwendige Anzahl an Bits.}}
ist schwer zu machen. F&uuml;gen Sie einen Faktor von 1/2 und eine Verschiebung dem
+
Eingangssignal hinzu, um dieses Problem zu vermeiden, indem man den Bereich des Signals
+
reduziert. F&uuml;hren Sie die Simulation mit dieser &Auml;nderung wieder durch.
+
  
Untersuchen Sie den zeitlichen Verlauf des Inhalts des Akkumulators, und bestimmen Sie
+
{{TaskBox|Reduzieren Sie Anzahl der Bits des Akkumulators und führen Sie die Simulation wieder durch.}}
die notwendige Anzahl an Bits. Reduzieren Sie Anzahl der Bits des Akkumulators und f&uuml;hren
+
Sie die Simulation wieder durch.
+
  
 
== Modulator zweiter Ordnung ==
 
== Modulator zweiter Ordnung ==
  
Der Modulator zweiter Ordnung enth&auml;lt zwei Akkumulatore. Die foldgende Abbildung zeigt die
+
[[Image:SEm_???.png|thumb|Sigma-Delta Modulator zweiter Ordnung]]
zu erstellenden Schaltung.
+
  
'''Abbildung 3. Modulateur sigma-delta de deuxi&egrave;me ordre'''
+
Der Modulator zweiter Ordnung enthält zwei Akkumulatoren. Die Abbildung zeigt die zu erstellenden Schaltung.
  
<br>
+
Bei dieser Schaltung werden die Zahlen als vorzeichenbehaftet (signed) angesehen.
Bei dieser Schaltung werden die Zahlen als vorzeichenbehaftet gesehen.
+
  
 
Ist der Ausgang des zweiten Akkumulators positiv, so:
 
Ist der Ausgang des zweiten Akkumulators positiv, so:
  
 
* ist der Ausgang gleich '1',
 
* ist der Ausgang gleich '1',
* wird ein Wert von '''c<sub>1</sub>=2<sup>nBits-1</sup>''' dem ersten Akkumulator entzogen,
+
* wird ein Wert von '''c<sub>1</sub>=2<sup>nBits-1</sup>''' dem ersten Akkumulator abgezogen,
* wird ein Wert von '''c<sub>2</sub>=2<sup>nBits+3</sup>''' dem zweiten Akkumulator entzogen.
+
* wird ein Wert von '''c<sub>2</sub>=2<sup>nBits+3</sup>''' dem zweiten Akkumulator abgezogen.
  
 
Ist der Ausgang des zweiten Akkumulators negativ, so:
 
Ist der Ausgang des zweiten Akkumulators negativ, so:
  
 
* ist der Ausgang gleich '0',
 
* ist der Ausgang gleich '0',
* wird ein Wert von '''c<sub>1</sub>=2<sup>nBits-1</sup>''' dem ersten Akkumulator zugelegt,
+
* wird ein Wert von '''c<sub>1</sub>=2<sup>nBits-1</sup>''' dem ersten Akkumulator hinzuaddiert,
* wird ein Wert von '''c<sub>2</sub>=2<sup>nBits+3</sup>''' dem zweiten Akkumulator zugelegt.
+
* wird ein Wert von '''c<sub>2</sub>=2<sup>nBits+3</sup>''' dem zweiten Akkumulator hinzuaddiert.
  
 
=== VHDL Code ===
 
=== VHDL Code ===
  
Schreiben Sie eine zweite VHDL Architektur zum SD Modulator.
+
Sehen Sie 8 zusätzliche Bits für jeden Akkumulator vor.
  
Sehen Sie 8 zus&auml;tzliche Bits f&uuml;r jeden Akkumulator vor.
+
Legen Sie auch hier einen Faktor von 1/2 und eine Verschiebung ans Eingangssignal um dessen Bereich zu verkleinern.
  
Hier auch, legen Sie einen Faktor 1/2 und eine Verschiebung am Eingangssignal, um
+
{{TaskBox|Schreiben Sie eine zweite VHDL Architektur für den SD-Modulator.}}
dessen Bereich zu verkleinern.
+
  
 
=== Simulation ===
 
=== Simulation ===
  
Compilieren Sie und simulieren Sie den block '''DAC_tb''' neu. Pr&uuml;fen Sie
+
{{TaskBox|
die Form des Ausgangssignals.
+
Kompilieren und simulieren Sie den block '''DAC_tb''' neu.
 +
Prüfen Sie die Form des Ausgangssignals.}}
  
Reduzieren Sie Anzahl Bits beider Akkumulatoren und pr&uuml;fen Sie, dass die Funktion des
+
{{TaskBox|Reduzieren Sie Anzahl Bits beider Akkumulatore und stellen Sie sicher, dass die Funktion des Modulators unverändert bleibt.}}
Modulators unver&auml;ndert bleibt.
+
  
 
{{navNamed|left=SEm/labore/02_interpolation|left_name=02 Funktionsgenerator mit Interpolationsberechnung|up=SEm/labore|up_name=Anleitung auf Deutsch|right=SEm/labore/04_synthese|right_name=04 Automatische Synthese}}
 
{{navNamed|left=SEm/labore/02_interpolation|left_name=02 Funktionsgenerator mit Interpolationsberechnung|up=SEm/labore|up_name=Anleitung auf Deutsch|right=SEm/labore/04_synthese|right_name=04 Automatische Synthese}}
  
 
[[Category:SEm]]
 
[[Category:SEm]]

Revision as of 17:51, 11 June 2013

Contents

Digital / Analog Wandler

Einleitung

In diesem Labor werden die Kenntnisse über die Behandlung von Zahlen konsolidiert. Es wird uns einen nützlichen Bestandteil für die weiteren Labore liefern: den Digital / Analog Wandler (Digital / Analog Converter, DAC). Ausserdem wirft es bestimmte Fragen hinsichtlich der Simulation von Schaltungen durchschnittlicher Komplexität auf.

Die Digital / Analog Wandlung wird auf Basis eines Sigma-Delta (ΣΔ, SD) Modulators erstellt. Das Originalsignal wird durch Impulse kodiert, deren Frequenz um einiges höher als die minimale Abtastrate ist. Diese Impulskodierung ist der Pulsweitenmodulation (Pulse Width Modulation, PWM) ähnlich, da das Originalsignal sich im Mittelwert der Impulse wiederfindet. Bei gleichen Arbeitsfrequenzen liefert die SD-Codierung ein besseres Signal-Rausch-Verhältnis als die PWM.

Modulator erster Ordnung

File:SEm ???.png
Sigma-Delta Modulator erster Ordnung

Der SD-Modulator erhält ein paralleles Digitalsignal und wandelt es in ein 1-Bit-Signal in der Form einer Impulsdichte um.

Der SD-Modulator erster Ordnung lässt sich mit der Messung eines Wasserlaufs verdeutlichen:

  • Der Wasserlauf wird in ein Becken geführt, welches er füllen wird.
  • Sobald die Wasserhöhe eine Referenzlinie überschreitet wird ein Eimer voller Wasser aus dem Becken herausgeschöpft.
  • Der durchschnittliche Durchfluss des Wasserlaufs entspricht somit dem Volumen des Eimers multipliziert mit der Anzahl der Eimer, die pro Zeiteinheit ausgeschöpft werden.

Der Modulator wird wie folgt erstellt:

  • Bei jeder Taktperiode wird der neue Eingangswert einem Akkumulator hinzuaddiert.
  • Das MSB des Resultates ist das Ausgangssignal des Modulators (Impuls oder nicht).
  • Ist dieses MSB gleich '1', so wird der Wert 2^n dem Akkumulator abgezogen.

Die Schaltung befindet sich in der Library Beamer, die Testbank in der Library Beamer_test.

VHDL Code

Der interne Akkumulator braucht mehr Bits als das Eingangssignal. Für den Anfang arbeiten wir mit 4 zusätzlichen Bits.


View-pim-tasks.png

ToDo some code

Simulation

View-pim-tasks.png

ToDo some code

Die Amplitude des Ausgangssignals ist durch dessen Mittelwert gegeben.


View-pim-tasks.png

ToDo some code

Die analoge Wiederherstellung eines Signals, welches lange Zeit auf '1' oder auf '0' bleibt ist schwer zu bewerkstelligen. Diese Problem kann vermieden werden, indem man den Bereich des Signals reduziert.


View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code

Modulator zweiter Ordnung

File:SEm ???.png
Sigma-Delta Modulator zweiter Ordnung

Der Modulator zweiter Ordnung enthält zwei Akkumulatoren. Die Abbildung zeigt die zu erstellenden Schaltung.

Bei dieser Schaltung werden die Zahlen als vorzeichenbehaftet (signed) angesehen.

Ist der Ausgang des zweiten Akkumulators positiv, so:

  • ist der Ausgang gleich '1',
  • wird ein Wert von c1=2nBits-1 dem ersten Akkumulator abgezogen,
  • wird ein Wert von c2=2nBits+3 dem zweiten Akkumulator abgezogen.

Ist der Ausgang des zweiten Akkumulators negativ, so:

  • ist der Ausgang gleich '0',
  • wird ein Wert von c1=2nBits-1 dem ersten Akkumulator hinzuaddiert,
  • wird ein Wert von c2=2nBits+3 dem zweiten Akkumulator hinzuaddiert.

VHDL Code

Sehen Sie 8 zusätzliche Bits für jeden Akkumulator vor.

Legen Sie auch hier einen Faktor von 1/2 und eine Verschiebung ans Eingangssignal um dessen Bereich zu verkleinern.


View-pim-tasks.png

ToDo some code

Simulation

View-pim-tasks.png

ToDo some code


View-pim-tasks.png

ToDo some code


Navigation
Arrow left.gif 02 Funktionsgenerator mit Interpolationsberechnung Arrow up.gif Anleitung auf Deutsch 04 Automatische Synthese Arrow right.gif

Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox