SEm/labore/03 konverter

From FSI
(Difference between revisions)
Jump to: navigation, search
(VHDL Code)
 
(10 intermediate revisions by 3 users not shown)
Line 9: Line 9:
 
Ausserdem wirft es bestimmte Fragen hinsichtlich der Simulation von Schaltungen durchschnittlicher Komplexität auf.
 
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.
+
Die Digital / Analog Wandlung wird auf Basis eines Sigma-Delta (S?, SD) Modulators erstellt.
 
Das Originalsignal wird durch Impulse kodiert, deren Frequenz um einiges höher als die minimale Abtastrate ist.
 
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.
 
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.
 
Bei gleichen Arbeitsfrequenzen liefert die SD-Codierung ein besseres Signal-Rausch-Verhältnis als die PWM.
  
[[Image:DAC.png|center|Delta-Sigma-Modulator]]
+
[[Image:SEm_DAC.png|center|Delta-Sigma-Modulator]]
  
 
== Modulator erster Ordnung ==
 
== Modulator erster Ordnung ==
  
[[Image:SEm_???.png|thumb|Sigma-Delta Modulator erster Ordnung]]
+
[[Image:SEm_sigmaDelta1.png|thumb|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 erhält ein paralleles Digitalsignal und wandelt es in ein 1-Bit-Signal in der Form einer Impulsdichte um.
Line 32: Line 32:
 
* Bei jeder Taktperiode wird der neue Eingangswert einem Akkumulator hinzuaddiert.
 
* Bei jeder Taktperiode wird der neue Eingangswert einem Akkumulator hinzuaddiert.
 
* Das MSB des Resultates ist das 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 abgezogen.
+
* Ist dieses MSB gleich '1', so wird der Wert 2<sup>n</sup> dem Akkumulator abgezogen, wo n gleich die Anzahl Bits des zu modulierenden Signals ist.
  
 
Die Schaltung befindet sich in der Library '''Beamer''', die Testbank in der Library '''Beamer_test'''.
 
Die Schaltung befindet sich in der Library '''Beamer''', die Testbank in der Library '''Beamer_test'''.
Line 41: Line 41:
 
Für den Anfang arbeiten wir mit 4 zusätzlichen Bits.
 
Für den Anfang arbeiten wir mit 4 zusätzlichen Bits.
  
{{TaskBox|Schreiben Sie die VHDL Architektur des SD-Modulators.}}
+
{{TaskBox|content=
 +
Schreiben Sie die VHDL Architektur des SD-Modulators.}}
  
 
=== Simulation ===
 
=== Simulation ===
  
{{TaskBox|Kompilieren Sie und simulieren Sie den block '''DAC_tb'''.}}
+
{{TaskBox|content=
 +
Kompilieren Sie und simulieren Sie den block '''DAC_tb'''.}}
  
 
Die Amplitude des Ausgangssignals ist durch dessen Mittelwert gegeben.
 
Die Amplitude des Ausgangssignals ist durch dessen Mittelwert gegeben.
  
{{TaskBox|Finden Sie einen Weg um das parallele Eingangssignal mit der Ausgangs-Impulsdichte zu vergleichen.}}
+
{{TaskBox|content=
 +
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.
 
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.
 
Diese Problem kann vermieden werden, indem man den Bereich des Signals reduziert.
  
{{TaskBox|
+
{{TaskBox|content=
 
Reduzieren Sie das Signal um einen Faktor von 1/2 zentrieren Sie wieder mit einer Verschiebung nach oben.
 
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.}}
 
Führen Sie die Simulation mit dieser Änderung wieder durch.}}
  
{{TaskBox|Untersuchen Sie den zeitlichen Verlauf des Inhalts des Akkumulators und bestimmen Sie die minimal notwendige Anzahl an Bits.}}
+
{{TaskBox|content=
 +
Untersuchen Sie den zeitlichen Verlauf des Inhalts des Akkumulators und bestimmen Sie die minimal notwendige Anzahl an Bits.}}
  
{{TaskBox|Reduzieren Sie Anzahl der Bits des Akkumulators und führen Sie die Simulation wieder durch.}}
+
{{TaskBox|content=
 +
Reduzieren Sie Anzahl der Bits des Akkumulators und führen Sie die Simulation wieder durch.}}
  
 
== Modulator zweiter Ordnung ==
 
== Modulator zweiter Ordnung ==
  
[[Image:SEm_???.png|thumb|Sigma-Delta Modulator zweiter Ordnung]]
+
[[Image:SEm_sigmaDelta2.png|thumb|Sigma-Delta Modulator zweiter Ordnung]]
  
 
Der Modulator zweiter Ordnung enthält zwei Akkumulatoren. Die Abbildung zeigt die zu erstellenden Schaltung.
 
Der Modulator zweiter Ordnung enthält zwei Akkumulatoren. Die Abbildung zeigt die zu erstellenden Schaltung.
Line 81: Line 86:
 
* wird ein Wert von '''c<sub>1</sub>=2<sup>nBits-1</sup>''' dem ersten Akkumulator hinzuaddiert,
 
* 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 hinzuaddiert.
 
* wird ein Wert von '''c<sub>2</sub>=2<sup>nBits+3</sup>''' dem zweiten Akkumulator hinzuaddiert.
 +
 +
Der Wert '''nBits''' ist die Anzahl Bits des Modulatoreingangs, '''x'''.
  
 
=== VHDL Code ===
 
=== VHDL Code ===
Line 86: Line 93:
 
Sehen Sie 8 zusätzliche Bits für jeden Akkumulator vor.
 
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.
+
Invertieren Sie das höchstwertige Bit des Eingangssignals und wenden Sie dazu noch einen Faktor von 7/8 an.
  
{{TaskBox|Schreiben Sie eine zweite VHDL Architektur für den SD-Modulator.}}
+
{{TaskBox|content=
 +
Schreiben Sie eine zweite VHDL Architektur für den SD-Modulator.}}
  
 
=== Simulation ===
 
=== Simulation ===
  
{{TaskBox|
+
{{TaskBox|content=
 
Kompilieren und simulieren Sie den block '''DAC_tb''' neu.
 
Kompilieren und simulieren Sie den block '''DAC_tb''' neu.
 
Prüfen Sie die Form des Ausgangssignals.}}
 
Prüfen Sie die Form des Ausgangssignals.}}
  
{{TaskBox|Reduzieren Sie Anzahl Bits beider Akkumulatore und stellen Sie sicher, dass die Funktion des Modulators unverändert bleibt.}}
+
{{TaskBox|content=
 +
Reduzieren Sie Anzahl Bits beider Akkumulatore und stellen Sie sicher, dass die Funktion des Modulators unverä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:Bachelor]][[Category:SEm]][[Category:Deutsch]]

Latest revision as of 15:40, 22 February 2021

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 (S?, 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.

Delta-Sigma-Modulator

Modulator erster Ordnung

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 2n dem Akkumulator abgezogen, wo n gleich die Anzahl Bits des zu modulierenden Signals ist.

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

Schreiben Sie die VHDL Architektur des SD-Modulators.

Simulation

View-pim-tasks.png

Kompilieren Sie und simulieren Sie den block DAC_tb.

Die Amplitude des Ausgangssignals ist durch dessen Mittelwert gegeben.


View-pim-tasks.png

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.


View-pim-tasks.png

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.


View-pim-tasks.png

Untersuchen Sie den zeitlichen Verlauf des Inhalts des Akkumulators und bestimmen Sie die minimal notwendige Anzahl an Bits.


View-pim-tasks.png

Reduzieren Sie Anzahl der Bits des Akkumulators und führen Sie die Simulation wieder durch.

Modulator zweiter Ordnung

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.

Der Wert nBits ist die Anzahl Bits des Modulatoreingangs, x.

VHDL Code

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

Invertieren Sie das höchstwertige Bit des Eingangssignals und wenden Sie dazu noch einen Faktor von 7/8 an.


View-pim-tasks.png

Schreiben Sie eine zweite VHDL Architektur für den SD-Modulator.

Simulation

View-pim-tasks.png

Kompilieren und simulieren Sie den block DAC_tb neu. Prüfen Sie die Form des Ausgangssignals.


View-pim-tasks.png

Reduzieren Sie Anzahl Bits beider Akkumulatore und stellen Sie sicher, dass die Funktion des Modulators unverändert bleibt.


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