DE60109620T2 - scrambler UND VERFAHREN ZUM VERWüRFELN VON DATENWöRTERN - Google Patents

scrambler UND VERFAHREN ZUM VERWüRFELN VON DATENWöRTERN Download PDF

Info

Publication number
DE60109620T2
DE60109620T2 DE60109620T DE60109620T DE60109620T2 DE 60109620 T2 DE60109620 T2 DE 60109620T2 DE 60109620 T DE60109620 T DE 60109620T DE 60109620 T DE60109620 T DE 60109620T DE 60109620 T2 DE60109620 T2 DE 60109620T2
Authority
DE
Germany
Prior art keywords
bits
data word
output data
binary value
switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60109620T
Other languages
English (en)
Other versions
DE60109620D1 (de
Inventor
Mikael Karlsson Rudberg
Mark Vesterbacka
Niklas Andersson
Jacob Wikner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE60109620D1 publication Critical patent/DE60109620D1/de
Application granted granted Critical
Publication of DE60109620T2 publication Critical patent/DE60109620T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/16Conversion to or from unit-distance codes, e.g. Gray code, reflected binary code
    • H03M7/165Conversion to or from thermometric code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/06Continuously compensating for, or preventing, undesired influence of physical parameters
    • H03M1/08Continuously compensating for, or preventing, undesired influence of physical parameters of noise
    • H03M1/0863Continuously compensating for, or preventing, undesired influence of physical parameters of noise of switching transients, e.g. glitches
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/26Conversion to or from stochastic codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/06Continuously compensating for, or preventing, undesired influence of physical parameters
    • H03M1/0617Continuously compensating for, or preventing, undesired influence of physical parameters characterised by the use of methods or means not specific to a particular type of detrimental influence
    • H03M1/0634Continuously compensating for, or preventing, undesired influence of physical parameters characterised by the use of methods or means not specific to a particular type of detrimental influence by averaging out the errors, e.g. using sliding scale
    • H03M1/0656Continuously compensating for, or preventing, undesired influence of physical parameters characterised by the use of methods or means not specific to a particular type of detrimental influence by averaging out the errors, e.g. using sliding scale in the time domain, e.g. using intended jitter as a dither signal
    • H03M1/066Continuously compensating for, or preventing, undesired influence of physical parameters characterised by the use of methods or means not specific to a particular type of detrimental influence by averaging out the errors, e.g. using sliding scale in the time domain, e.g. using intended jitter as a dither signal by continuously permuting the elements used, i.e. dynamic element matching
    • H03M1/0673Continuously compensating for, or preventing, undesired influence of physical parameters characterised by the use of methods or means not specific to a particular type of detrimental influence by averaging out the errors, e.g. using sliding scale in the time domain, e.g. using intended jitter as a dither signal by continuously permuting the elements used, i.e. dynamic element matching using random selection of the elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Analogue/Digital Conversion (AREA)
  • Dc Digital Transmission (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Storage Device Security (AREA)

Description

  • Die Erfindung betrifft allgemein D/A-Umsetzer und insbesondere ein Verfahren zum Verwürfeln oder Randomisieren von thermometercodierten Eingangsdaten, um den Einfluß von Abgleichfehlern in D/A-Umsetzern zu verringern.
  • ALLGEMEINER STAND DER TECHNIK
  • Aufgrund von Zeitfehlanpassungen beim Umschalten des Ausgangs in den D/A-Umsetzern (DACs) kann für kurze Zeiträume eine falsche Ausgabe erzeugt werden. Ein ungünstigstes Szenario ist der Übergang zwischen den Binärcodes <01...11> und <10...00>. Für einen kurzen Moment kann der maximale Ausgangscode <11...11> erscheinen, der zu einer großen Stromspitze (einer sogenannten Störspitze) auf dem Ausgang führt. Störspitzen sind ein großes Problem, da sie der Geschwindigkeitsleistungsfähigkeit von DACs eine Obergrenze auferlegen.
  • Eine Lösung dieses Problems ist die Verwendung eines thermometercodierten DAC.
  • Bei Verwendung eines Thermometercodes als Eingabe werden keine Gewichte in den DACs gleichzeitig mit dem Ausschalten anderer Gewichte eingeschaltet. Daher werden Störspitzen reduziert.
  • Diese gute Eigenschaft des Thermometercodes wird jedoch verdorben, wenn die sogenannte DEM-Technik (Dynamic Element Matching) in die DACs eingeführt wird.
  • In einem DAC, der DEM-Architektur verwendet, wird der Signalweg durch den Umsetzer randomisiert, um Fehlanpassungsfehler aus den DAC-Gewichten und dem Ausgangssignal zu entkorrelieren. Bei einem thermometercodierten DAC sind alle Gewichte gleich groß, und es ist deshalb die am besten geeignete Architektur für Randomisierung. Ohne Randomisierung kann jedem Code eine spezifische Menge von Gewichten zugewiesen werden, und der Einfluß des Abgleichfehlers wird stark signalabhängig. In dieser Hinsicht wird der SFDR (störfreier Dynamikumfang) schlecht. Da alle Bit in dem Thermometercode gleich gewichtet werden, gibt es viele Kombinationen, die denselben Dezimalwert repräsentieren. Da alle Gewichte gleich groß sind, können jedem Code zu verschiedenen Zeitpunkten verschiedene Mengen von Gewichten zufällig zugewiesen werden. Dies wird manchmal als Verwürflung bezeichnet.
  • Zum Beispiel sind bei einem randomisierten thermometercodierten 14-Bit-DAC 16383 verschiedene Gewichte wählbar, wenn der Code 000...0001 am Eingang angelegt wird. Durch zeitliches Mitteln des Ergebnisses, d.h. der statischen Ausgangsamplitudenpegel, werden die Gewichte dynamisch angepaßt.
  • Solange die Variation der Gewichtszuweisung nicht mit dem Eingangssignal korreliert ist, werden die aus den Abgleichfehlern entstehenden Verzerrungsterme in Rauschen transformiert.
  • Ein großer Nachteil bei allen weithin bekannten DEM-Techniken sind Probleme mit Störspitzen.
  • Aus US 5,404,142 ist ein Verwürfler zur Verwendung mit Thermometercode-Digitalsignalen bekannt, der eine Anzahl verbundener identischer Schaltzellen in Form von Swapper-Zellen mit zwei Eingängen und zwei Ausgängen aufweist. Ein Steuersignal bestimmt, ob die Eingänge direkt oder umgekehrt mit den Ausgängen verbunden werden. Das Steuersignal wird durch Logikschaltkreise entwickelt, die als Eingaben die beiden Swapper-Zelleneingangsbit und ein Zustandsbit, das die integrierte Differenz vergangener Swapper-Ausgangssignale repräsentiert, erhalten.
  • KURZE DARSTELLUNG DER ERFINDUNG
  • Die Aufgabe der Erfindung ist das Kombinieren der Störspitzenminimierungseigenschaft des Thermometercodes mit der guten SFDR-Leistungsfähigkeit durch die Benutzung von DEM-Techniken.
  • Im Prinzip erreicht man dies, indem zufällig nur unter den Kombinationen ausgewählt wird, welche Gewichte eingeschaltet werden, die minimale Störspitzen ergeben.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • Die Erfindung wird nachfolgend mit Bezug auf die angefügte Zeichnung ausführlich beschrieben. 1, 2 und 3 zeigen eine Ausführungsform eines Randomisierungsschaltnetzwerks bzw. Verwürflers gemäß der Erfindung mit drei verschiedenen Eingangsdatenwörtern, 4 zeigt eine Ausführungsform eines in dem Netzwerk in 1, 2 und 4 zu verwendenden Schalters, 5, 6 und 7 zeigen eine weitere Ausführungsform eines Randomisierungsschaltnetzwerks oder Verwürflers gemäß der Erfindung mit drei verschiedenen Eingangsdaten, 8 zeigt eine Ausführungsform eines in dem Netzwerk in 5, 6 und 7 zu verwendenden Schalters und 9 zeigt eine weitere Ausführungsform eines Verwürflers gemäß der Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden sowohl die Randomisierung von thermometercodierten Daten als auch die Randomisierung modifizierter thermometercodierter Daten beschrieben.
  • Verfahren 1 – Randomisierung von thermometercodierten Daten
  • Anstatt zufällig Positionen auszuwählen, an denen "1"en zu den thermometercodierten Daten hinzugefügt oder aus diesen entfernt werden sollten, kann die Zufallsauswahl von Gewichten als ein Netzwerk von Schaltern implementiert werden, das auch als Verwürfler bezeichnet wird.
  • 1, 2 und 3 zeigen eine Ausführungsform eines solchen Netzwerks oder Verwürflers mit zwölf Schaltern (0,0), (0,1)...(3,2), wobei jeder Schalter (0,0), (0,1)...(3,2) durch ein Zufallssignal p gesteuert wird, das durch einen (nicht gezeigten) Generator für Pseudozufalls-Binärsequenzen (PRBS) erzeugt wird.
  • Eine Ausführungsform eines in dem Netzwerk in 1, 2 und 3 zu verwendenden Schalters ist in 4 dargestellt.
  • Um unnötiges Schalten zu vermeiden, sollen nur die Änderungen zwischen zwei Abtastwerten randomisiert werden. Da die Gewichte, die für einen gegebenen Code eingeschaltet (oder ausgeschaltet) sind, nicht deterministisch sind, muß der alte Weg durch den Schaltbaum gesichert oder erhalten werden, sodaß im Vergleich zu voller Randomisierung, bei der keine alten Wege durch das Schaltnetzwerk berücksichtigt werden, ein zusätzliches Speicherelement erforderlich sein wird.
  • Jeder Schalter (0,0), (0,1)...(3,2) hat zwei Ein-Bit-Dateneingänge a, b und zwei Ein-Bit-Datenausgänge x, y. Welcher Eingang mit welchem Ausgang verbunden werden soll, wird durch das Zufallssignal p ausgewählt. Der Randomisierungsgrad hängt von der Tiefe des Schaltnetzwerks ab, die davon abhängt, was aus Flächengründen erschwinglich ist, und was tatsächlich in dem DAC benötigt wird.
  • Bei der in 4 dargestellten Ausführungsform des Schalters sind die Schaltereingänge a, b mit jeweiligen Eingängen zweier Multiplexer. 1, 2 verbunden. Die Ausgänge der Multiplexer 1 und 2 stellen die Schalterausgänge x bzw. y dar. Die Schaltereingänge a, b sind außerdem mit jeweiligen Eingängen eines EXCLUSIVE-OR-Gatters 3 verbunden. Der Ausgang des EXCLUSIVE-OR-Gatters 3 ist mit einem Steuereingang eines Multiplexers 4 verbunden. Ein Eingang des Multiplexers 4 ist mit dem (nicht gezeigten) PRBS-Generator verbunden, der das Signal p erzeugt, während der andere Eingang des Multiplexers 4 mit einem Ausgang eines D-Flipflops 5 verbunden ist, auf dem der vorherige Zustand cold des Schalters erscheint. Der Ausgang des Multiplexers 4 ist mit Steuereingängen der Multiplexer 1, 2 sowie mit einem Eingang des D-Flipflops 5 verbunden, auf dem der tatsächliche Zustand c des Schalters empfangen wird.
  • Im allgemeinen sollte der Schalter in 4 die folgenden Boolschen Gleichungen implementieren: x = a·(b + not(cold)) + b·cold y = a·cold + b·not(cold) c = p·c + p·not(a xor b) + c·(a xor b)
  • In der nachstehenden Tabelle 1 ist eine Wahrheitstabelle für den Schalter gezeigt.
  • Figure 00050001
    Tabelle 1
  • Mit Bezug auf 13 wird nun ein Beispiel angegeben, um zu illustrieren, wie die Randomisierung gemäß der Erfindung mittels Schalter in einem typischen Fall ausgeführt wird.
  • In diesem Beispiel wird angenommen, daß die thermometercodierten Eingangsdatenwörter sechs Positionen mit der Bezeichnung t0–t6 enthalten.
  • Bei allen dargestellten Schaltnetzwerken wurde eine zusätzliche "0" zu dem Eingangsdatenwort hinzugefügt, um eine bessere Symmetrie in dem Netzwerk zu erhalten.
  • Es werden drei sukzessive thermometercodierte Eingangsdatenwörter vi, vi+1 und vi+2 und die entsprechenden Ausgangsdatenwörter wi, wi+1 bzw. wi+2 betrachtet. Die Wortlänge wird in diesem Beispiel auf sieben Bit eingestellt, vi = 0000011, vi+1 = 0000111 und vi+2 = 0000011. Es wird angenommen, daß das Schaltnetzwerk den in 1 gezeigten Zustand aufweist, nachdem das Wort vi durch das Netzwerk hindurchgespeist wurde. Der Weg für vi durch das Netzwerk ist mit gestrichelten Linien gezeigt.
  • Wenn vi+1 an den Eingang des Netzwerks angelegt wird, erscheint eine zusätzliche "1" in dem Eingangswort. Um einen neuen Weg durch das Netzwerk zu finden, wird die Einstellung jedes Schalters gemäß Tabelle 1 aktualisiert.
  • 2 zeigt das Schaltnetzwerk mit vi+1 als Eingangsdatenwort.
  • Der Schalter (0,0) hat einen Eingang mit "1" und einen mit "0". Deshalb wird die alte Schaltereinstellung (c = cold) behalten.
  • Der Schalter (1,0) hat nun zwei "1"en als Eingabe und ein neuer Zufallswert von c(c = p) kann gewählt werden. In diesem Beispiel ist dieser neue Zufallswert zufällig derselbe wie zuvor.
  • Der Schalter (2,0) und (3,0) hat nur Nullen als Eingabe und der Schalter wird deshalb zufällig gesetzt (c = p).
  • Der Schalter (0,1) erhält zwei "1"en als Eingabe, und es kann ein neuer Zufallswert von c(c = p) gewählt werden. Hier wird eine neue Einstellung des Schalters erhalten.
  • Der Schalter (1,1) hat eine "0" und eine "1" als Eingabe, und deshalb wird die alte Schaltereinstellung (c = cold) behalten.
  • Die Schalter (2,1) und (3,1) haben nur "0"en als Eingaben und die Schalter werden deshalb zufällig eingestellt (c = p).
  • Der Schalter (0,2) hat eine "0" und eine "1", und deshalb wird die alte Einstellung behalten. Man beachte jedoch, daß während des vorherigen Beispiels zwei "0"en am Eingang vorlagen und daher die Schaltereinstellung in der letzten Abtastperiode aktualisiert wurde.
  • Die Schalter (1,2) und (2,2) haben beide eine "0" und "1" als Eingangsdaten und deshalb werden die alten Einstellungen behalten.
  • Der Schalter (3,2) hat nur "0"en als Eingaben und der Schalter wird deshalb zufällig eingestellt (c = p).
  • Man beachte, daß die Ausgangsdaten wi = 00010100 und wi+1 = 00010101 aus dem Abtastwert i bzw. Abtastwert i + 1 nur an einer Position verschieden sind und daß alle Positionen, die zuvor "1"en waren, erhalten werden.
  • 3 zeigt das Schaltnetzwerk, wenn vi+2 als Eingangsdatenwort angelegt wird.
  • Der Schalter (0,0) behält den Zustand aus dem vorherigen Abtastwert.
  • Die Schalter (1,0) und (0,1) haben nun verschiedene Werte am Eingang und behalten den vorherigen Zustand. Man beachte, daß diese Schalter beide eine neue Einstellung erhielten, als vi+1 angelegt wurde.
  • Die Schalter (1,1), (0,2) und (1,2) behalten den vorherigen Zustand, da die Werte an den Eingängen unterschiedlich sind.
  • Die Schalter (2,0), (2,1), (2,2), (3,0), (3,1) und (3,2) haben alle "0"en an den Eingängen und erhalten einen neuen Zustand (c = p).
  • Man beachte, daß, obwohl vi und vi+2 denselben Wert aufweisen, wi = 0001010 und wi+2 = 00000101 verschieden sind, d.h. Zufälligkeit zu dem System hinzugefügt wurde.
  • Verfahren 2 – Randomisierung modifizierter thermometercodierter Daten
  • Das oben beschriebene Verfahren 1 verwendet thermometercodierte Eingangsdaten. Es gibt jedoch andere Codes, die leichter zu konstruieren sind, aber nicht die gewünschten Eigenschaften mit wenig Störspitzen aufweisen. Anstatt thermometercodierte Eingangsdaten zu verwenden, wird ein Code definiert, der für alle Werte eine gleiche Anzahl von "1"en wie thermomethercodierte Daten aufweist, aber mit einer anderen Anordnung der Daten. Bei diesem modifizierten Thermometercode werden die binärcodierten Daten einfach so oft kopiert, wie das binäre Gewicht entspricht. Die nachstehende Tabelle 2 zeigt Thermometercode und modifizierten Thermometercode.
  • Figure 00090001
    Tabelle 2
  • Der Vorteil bei der Verwendung eines modifizierten Thermometercodes besteht darin, daß es sehr leicht ist, die Logik zur Transformierung binärcodierter Daten in modifizierten Thermometercode zu implementieren.
  • Mit diesem Code kommt es zu mehr Störspitzen. Wenn ein Schalter, der die in der nachstehenden Tabelle 3 gezeigte Wahrheitstabelle implementiert, verwendet wird, werden vermehrte Störspitzen jedoch vermieden.
  • Figure 00090002
    Tabelle 3
  • Eine Ausführungsform der Logikimplementierung dieses modifizierten Schalters ist in 8 dargestellt.
  • Elemente in dem Schalter in 8, die mit denen in 4 identisch sind, wurden mit denselben Bezugszeichen versehen.
  • In 8 sind die Schaltereingänge mit a' bzw. b' bezeichnet, während a und b interne Knoten in dem Schalter darstellen.
  • Knoten a in 8 ist mit einem Ausgang eines AND-Gatters 6 verbunden, während Knoten b mit einem Ausgang eines OR-Gatters 7 verbunden ist. Die Eingänge des AND-Gatters 6 und des OR-Gatters 7 sind mit den Eingängen a' und b' verbunden.
  • Im allgemeinen sollte der Schalter in 8 dieselben Funktionen wie der Schalter in 4 implementieren.
  • Für den Schalter in 8 gilt bei den obigen, für den Schalter in 5 aufgelisteten Funktionen, a = a'·b' und b = a' + b'.
  • Mit Bezug auf 57 wird ein Beispiel angegeben, um zu illustrieren, wie die Randomisierung unter Verwendung modifizierter Schalter und eines modifizierten Thermometercodes in einem typischen Fall aussehen wird.
  • Man betrachte drei sukzessive thermometercodierte Eingangsdatenwörter vi, vi+1 und vi+2 und die entsprechenden Ausgangsdatenwörter wi, wi+1 bzw. wi+2. Die Wortlänge wird bei diesem Beispiel auf 7 Bit eingestellt, vi = 0000110, vi+1 = 0000111 und vi+2 = 0000110. Die Schalter sind in diesem Beispiel von dem in 8 gezeigten Typ. Es wird angenommen, daß das Schaltnetzwerk den in 5 gezeigten Zustand aufweist, nachdem das erste Datenwort vi durch das Netzwerk hindurchgespeist wurde. Der Weg für vi durch das Netzwerk ist mit gestrichelten Linien gezeigt.
  • Wenn das nächste Wort vi+1 an den Eingang angelegt wird, wird eine zusätzliche "1" in dem Eingangswort erhalten. Um einen neuen Weg durch das Netzwerk zu finden, wird die Einstellung jedes Schalters gemäß Tabelle 3 aktualisiert.
  • In 6 ist das Schaltnetzwerk mit vi+1 als Eingangsdatenwort gezeigt.
  • Der Schalter (0,0) hat einen Eingang mit "1" und einen mit "0", und deshalb werden die alten Schaltereinstellungen (c = cold) behalten. Man beachte, daß dieser Schalter während des vorherigen Abtastwerts zwei "0"en als Eingangsdaten hatte und daß er deshalb an diesem Abtastwert zufällig eingestellt wurde.
  • Der Schalter (0,1) erhält eine "0" und eine "1" als Eingangswert und die alte Einstellung wird erhalten (c = cold).
  • Der Schalter (1,1) hat zwei "1"en als Eingaben und es kann ein Zufallswert von c(c = p) gewählt werden.
  • Der Schalter (0,2) hat zwei "0"en und es wird eine neue Zufallseinstellung des Schalters (c = cold) gewählt.
  • Die Schalter (1,2), (2,2) und (3,2) haben alle eine "0" und eine "1" als Eingangsdaten, und deshalb werden die alten Einstellungen behalten.
  • Man beachte, daß die Ausgangsdaten wi = 00010100 und wi+1 = 01010100 von Abtastwert i bzw. Abtastwert i + 1 nur an einer Position unterschiedlich sind und daß alle Positionen, die zuvor "1"en waren, erhalten werden.
  • In 7 wird das dritte Eingangsdatenwort vi+2 an den Eingang angelegt.
  • Die Schalter (0,0), (0,2) und (1,2) haben nur "0"en am Eingang und erhalten deshalb eine zufällige Zustandseinstellung.
  • Die Schalter (0,1), (1,1), (2,2) und (3,2) haben alle eine "1" und eine "0" als Eingaben und behalten die alte Einstellung. Der Schalter (1,1) hatte jedoch während der vorherigen Abtastperiode eine Zufallseinstellung.
  • Aufgrund des Umstands, daß vi und vi+2 denselben Wert aufweisen, sind wi = 00010100 und wi+2 = 01010000 verschieden, d.h. auch bei diesem Verfahren wurde Zufälligkeit zu dem System hinzugefügt.
  • Alle Figuren von Schaltnetzwerken zeigen nur Beispiele dafür, wie sie entworfen werden können. Wenn volle Randomisierung gewünscht ist, muß die Anzahl von Schichten in den Netzwerken in 1, 2, 3, 5, 6 und 7 auf dieselbe Tiefe wie Anzahl von Bit in dem Eingangsdatenwort erhöht werden.
  • Das Schaltnetzwerk in 5, 6 und 7 zeigt eine minimale Anzahl von Schaltern, die notwendig ist, um die minimale Störspitzeneigenschaft zu erhalten, wenn der modifizierte Thermometercode verwendet wird. Wenn mehr Schaltschichten hinzugefügt werden, muß der Schalter in 8 nicht benutzt werden. Der Schalter in 4 funktioniert solange, wie die Schichten am linken Rand in den Figuren. hinzugefügt werden.
  • Eine andere Ausführungsform wird nachfolgend mit Bezug auf 9 beschrieben, die ein Blockschaltbild für eine Zustandsauswahlfunktion in einem 4-Bit-DAC zeigt.
  • Es wird ein willkürlicher Anfangszustand angenommen, d.h. eine vorherige Ausgabe, die die Einheitsgewichte wählt, von
    previous_output = 101011101011111,
    entsprechend einer digitalen Eingabe von 11, d.h. 1011.
  • Die erste durchzuführende Operation, um die Anzahl von Einsen in einem Zähler 8 zu zählen, ergibt
    one_count = 11, d.h. 1011.
  • Es wird eine willkürlich gewählte digitale Eingabe für den DAC von
    input = 13, d.h. 1101,
    angenommen, die hauptsächlich dazu dient, zu sehen, wieviele Nullen in dem vorherigen Zustand (previous output) auf Eins gesetzt werden müssen, um den nächsten Zustand zu erzielen.
  • Man erreicht dies mittels eines Subtrahierers 9 durch die folgende Operation:
    additional_ones = input – one_count = 13 – 11 = 2(0010).
  • Um zwei Einsen in dem vorherigen Zustand (previous_output) zu setzen, werden zuerst buchstäblich zwei Einsen in einem Binär-zu-Thermometer-Umsetzer 10 erzeugt, der die Anzahl zusätzlicher Einsen in einen Thermometercode umsetzt, d.h.
    thermo_code = 000000000000011.
  • Die Strategie besteht nun darin, soviele Bit (einschließlich aller Einsen) zu wählen, wie Nullbit in dem vorherigen Zustand (previous output) vorliegen. Um dies zu erzielen, muß die Anzahl von Nullen in dem vorherigen Zustand bekannt sein. Dies ist eine einfache Operation, da die Anzahl von Einsen bereits gezählt wurde und die Gesamtzahl von Bit (15) in dem Zustand bekannt ist. Ein Zähler 11 führt genau dies durch die folgende Operation durch:
    zero_count = 15 – one_count = 15 – 11 = 4.
  • Mit diesem Zählwert wird in einem Randomisierer 12 die Position der entsprechenden Anzahl von Bit randomisiert. Diese Operation R ist dargestellt, indem angenommen wird, daß es sich ergibt, daß der Randomisierungsprozeß folgendes ergibt:
    random_thermo = R(-----------0011) = -----------0110
    wobei die in der Randomisierung nicht enthaltenen Bit (15 – 4 = 11 Bit) durch "–" angegeben sind.
  • Schließlich verteilt ein Verteiler 13 die randomisierten Bit (random_thermo) der Reihe nach zu den Nullen in dem vorherigen Zustand (previous_output). Alle oben mit einem "–" markierten Bit werden einfach verworfen.
  • Die Operationen an den Bit sind nachfolgend mit Pfeilen dargestellt:
  • Figure 00140001
  • Die vier oberen Pfeile, die von den vier randomisierten Nullbit in dem vorherigen Zustand ersetzen sollen, und die beiden unteren Pfeile geben an, welche der beiden Nullen tatsächlich gesetzt wird. Der neue Zustand wird dann zu
    output: 101111111011111
    und dies wird an die Einheitsgewichte ausgegeben.
  • Das oben beschriebene Schema behandelt nur den Fall, daß Einsen zu dem vorherigen Zustand hinzugefügt werden sollen. Falls der Zustandswert abnimmt, muß das Schema etwas modifiziert werden.
  • Der Fall, in dem der Zufallswert abnimmt, kann erkannt werden, z.B. als ein Überlauf aus dem Subtrahierer 9 (overflow in 9). Der Ansatz besteht dann darin, diesen Fall auf die Hardware abzubilden, die das Problem im ersten Fall löst. Im ersten Fall wurden Nullen in Einsen verwandelt, während im zweiten Fall Einsen auf ähnliche Weise in Nullen verwandelt werden sollten.
  • Dies kann erreicht werden, indem alle Nullen und Einsen im Fall des Überlaufs mit einer Menge von EXCLUSIVE-OR-Gattern 14 invertiert werden und die Anzahl von Einsen, an denen operiert werden soll, entsprechend eingestellt wird. Um diesen Fall zu behandeln, wird zwischen dem Subtrahierer 9 und dem Umsetzer 10 ein Block 15 vorgesehen, der den Betrag des Zählwerts zusätzlicher Einsen nimmt, d.h. die Operation
    additional_ones = |input – one_count|
    wird stattdessen durchgeführt.
  • Außerdem wird der Nullenzählwert (zero_count) aktualisiert, um die invertierte Eingabe wiederzuspiegeln. Da der neue Nullenzählwert jedoch einfach der alte Einsenzählwert (one_count) ist, wird ein Multiplexer 16 benötigt, der den entsprechenden Zählwert für den jeweiligen Fall auswählt (n in 9). Schließlich wird der neue Zustand (output) mit einer weiteren Menge von EXCLUSIVE-OR-Gattern 17 invertiert, um Nullen und Einsen wieder zurück auf die erwartete Ausgabe abzubilden.

Claims (4)

  1. Verfahren zum Verringern von Störspitzen in einem DAC mit DEM-Architektur durch Verwürfeln sukzessiver, thermometercodierter binärer Eingangsdatenwörter, die N Bit umfassen, zu entsprechenden sukzessiven Ausgangsdatenwörtern, die ebenfalls N Bit umfassen, dadurch gekennzeichnet, daß, wenn die Anzahl von Bit eines Binärwerts von einem Eusgangsdatenwort zum nächsten zugenommen hat, Bit des einen Binärwerts an Positionen in dem entsprechenden Ausgangsdatenwort, wo das vorherige Ausgangsdatenwort Bit des einen Binärwerts aufwies, aufrechterhalten werden und die übrigen Bit des einen Binärwerts zu Positionen in dem entsprechenden Ausgangsdatenwort, wo das vorherige Ausgangsdatenwort Bit des anderen Binärwerts aufwies, randomisiert werden, wodurch die Anzahl von bei einem Übergang von einem Ausgangsdatenwort zum nächsten zu verändernden Positionen minimiert wird.
  2. DAC mit DEM-Architektur, wobei der DAC einen Verwürfler enthält, der sukzessive, thermometercodierte binäre Eingangsdatenwörter, die N Bit umfassen, zu entsprechenden sukzessiven Ausgangsdatenwörtern, die ebenfalls N Bit umfassen, verwürfelt, dadurch gekennzeichnet, daß der Verwürfler so ausgelegt ist, daß er, wenn die Anzahl von Bit eines Binärwerts von einem Eingangsdatenwort zum nächsten zugenommen hat, Bit des einen Binärwerts an Positionen in dem entsprechenden Ausgangsdatenwort, wo das vorherige Ausgangsdatenwort Bit des einen Binärwerts aufwies, aufrechterhält und die übrigen Bit des einen Binärwerts zu Positionen in dem entsprechenden Ausgangsdatenwort, wo das vorherige Ausgangsdatenwort Bit des anderen Binärwerts aufwies, randomisiert, wodurch die Anzahl von bei einem Übergang von einem Ausgangsdatenwort zum nächsten zu verändernden Positionen minimiert wird.
  3. DAC nach Anspruch 2, dadurch gekennzeichnet, daß der Verwürfler ein Schaltnetz umfaßt, wobei jeder Schalter so ausgelegt ist, daß die folgenden Booleschen Gleichungen implementiert werden: x = a·(b + not(cold)) + b·cold y = a·cold + b·not(cold) c = p·c + p·not(a xor b) + c ·(a xor b)wobei a und b die Eingänge des Schalters und x und y die Ausgänge des Schalters sind und c der tatsächliche Zustand des Schalters, cold der vorherige Schalterzustand und p ein Zufallssignal ist.
  4. DAC nach Anspruch 3, dadurch gekennzeichnet, daß der Verwürfler folgendes umfaßt: – Zähler (8, 11) zum Zählen der Anzahl von Einsen und Nullen in dem vorherigen Ausgangsdatenwort, – ein Mittel (9) zum Bestimmen der Anzahl von zusätzlichen Einsen in dem tatsächlichen Eisgangsdatenwort, – einen Umsetzer (10) zum Umsetzen der Anzahl von zusätzlichen Einsen in Thermometercode, – einen Randomisierer (12) zum Randomisieren der Position der entsprechenden Anzahl von Bit und – einen Verteiler (13) zum Verteilen der randomisierten Bit der Reihe nach zu den Nullen in dem vorherigen Datenwort.
DE60109620T 2000-05-23 2001-05-18 scrambler UND VERFAHREN ZUM VERWüRFELN VON DATENWöRTERN Expired - Fee Related DE60109620T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE0001917A SE522416C2 (sv) 2000-05-23 2000-05-23 Förfarande för scrambling av dataord och scrambler
SE0001917 2000-05-23
PCT/SE2001/001115 WO2001091300A1 (en) 2000-05-23 2001-05-18 A scrambler and a method of scrambling data words

Publications (2)

Publication Number Publication Date
DE60109620D1 DE60109620D1 (de) 2005-04-28
DE60109620T2 true DE60109620T2 (de) 2006-02-09

Family

ID=20279798

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60109620T Expired - Fee Related DE60109620T2 (de) 2000-05-23 2001-05-18 scrambler UND VERFAHREN ZUM VERWüRFELN VON DATENWöRTERN

Country Status (7)

Country Link
US (1) US6462691B2 (de)
EP (1) EP1299952B1 (de)
AT (1) ATE291794T1 (de)
AU (1) AU2001260912A1 (de)
DE (1) DE60109620T2 (de)
SE (1) SE522416C2 (de)
WO (1) WO2001091300A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006016B1 (en) * 2003-10-10 2006-02-28 Marvell International Ltd. DC-free line codes
US8159381B2 (en) 2010-05-12 2012-04-17 Stmicroelectronics Pvt. Ltd. Glitch free dynamic element matching scheme
JP6343316B2 (ja) * 2016-09-16 2018-06-13 パナソニック株式会社 端末装置、通信システム、および通信制御方法
US12015510B2 (en) 2022-05-27 2024-06-18 International Business Machines Corporation Transmitter with uniform driver segment activity

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2233171A (en) * 1989-05-22 1991-01-02 Philips Nv A.C. to D.C. converter
US5404142A (en) * 1993-08-05 1995-04-04 Analog Devices, Incorporated Data-directed scrambler for multi-bit noise shaping D/A converters
US5625360A (en) * 1995-09-05 1997-04-29 Motorola, Inc. Current source for reducing noise glitches generated in a digital to analog converter and method therefor
KR100220383B1 (ko) * 1996-07-09 1999-09-15 윤종용 Pwm을 이용한 디지탈/아날로그 변환장치 및 그 변환방법
US6124813A (en) * 1997-06-06 2000-09-26 Analog Devices, Inc. Self-linearizing multi-bit DACs
US5955979A (en) * 1997-09-15 1999-09-21 National Instruments Corporation System and method for compensating for glitch errors in a D/A converter
GB2333171A (en) * 1998-01-08 1999-07-14 Fujitsu Microelectronics Ltd Thermometer coding circuitry
US6154162A (en) * 1999-01-06 2000-11-28 Centillium Communications, Inc. Dual-stage switched-capacitor DAC with scrambled MSB's
GB2356302B (en) * 1999-11-10 2003-11-05 Fujitsu Ltd Current switching circuitry

Also Published As

Publication number Publication date
US6462691B2 (en) 2002-10-08
SE522416C2 (sv) 2004-02-10
SE0001917D0 (sv) 2000-05-23
DE60109620D1 (de) 2005-04-28
US20020027519A1 (en) 2002-03-07
SE0001917L (sv) 2001-11-24
EP1299952A1 (de) 2003-04-09
ATE291794T1 (de) 2005-04-15
AU2001260912A1 (en) 2001-12-03
EP1299952B1 (de) 2005-03-23
WO2001091300A1 (en) 2001-11-29

Similar Documents

Publication Publication Date Title
DE69426266T2 (de) Datengesteuerter verschlüssler für da-wandler mit multibit-rauschsignalformung
EP0010195B1 (de) Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage
DE102019108205B4 (de) Unentspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE2920934C2 (de) Analog-Digital-Umsetzer
DE2315986C3 (de) Digital-Analog-Umsetzer, insbesondere für einen nach dem Iterativverfahren arbeitenden Codierer
DE3586877T2 (de) Mehrschritt-parallelanalog/digitalwandler.
DE2652459C2 (de) Umsetzvorrichtung für Binärsignale variabler Länge
DE3202789C2 (de)
DE69113836T2 (de) Integrierter Hochgeschwindigkeitssynchronzähler mit asynchroner Auslesung.
DE2605724C2 (de) Digital-Analog-Umsetzer für PCM-codierte Digitalsignale
DE4121444A1 (de) System und verfahren zur fehlerdetektion und zur reduzierung von simultanem schaltrauschen
DE2031040A1 (de) Verfahren zur Festlegung der Zugangspriontaten bei Datenverarbei tungsanlagen sowie eine Prioritäten steuerung zur Durchfuhrung des Ver fahrens
DE102019107670B4 (de) Entspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE10219135B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Zufallszahl
DE2826450C3 (de) Verfahren zum Steuern der Übertragung digitaler Signale und Anordnung zur Durchführung des Verfahrens bei einer digitalen Faksimileübertragungseinrichtung
DE60109620T2 (de) scrambler UND VERFAHREN ZUM VERWüRFELN VON DATENWöRTERN
DE60004409T2 (de) Schaltung und Verfahren zur Zufallszahlerzeugung
DE2618633C3 (de) PCM-Decodierer
DE2944234C2 (de)
DE4428545A1 (de) Schaltungsanordnung zur Umwandlung eines seriellen Datensignals in ein paralleles Datensignal
DE2704756C2 (de) Digital-Analog-Umsetzer
DE3729356A1 (de) Digitalprogrammierbarer signalgenerator und verfahren dafuer
DE112004003153B4 (de) Datenübertragungssystem mit reduziertem Leistungsverbrauch, Verfahren und Übertragungsschaltung
DE69113072T2 (de) Verfahren und Vorrichtung zur Datenkompression.
DE69216818T2 (de) Analog-Digitalumsetzer

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee