DE69103757T2 - Ausführung eines sin/cos generators. - Google Patents
Ausführung eines sin/cos generators.Info
- Publication number
- DE69103757T2 DE69103757T2 DE69103757T DE69103757T DE69103757T2 DE 69103757 T2 DE69103757 T2 DE 69103757T2 DE 69103757 T DE69103757 T DE 69103757T DE 69103757 T DE69103757 T DE 69103757T DE 69103757 T2 DE69103757 T2 DE 69103757T2
- Authority
- DE
- Germany
- Prior art keywords
- sin
- cos
- signals
- signal
- register
- 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
Links
- 230000000295 complement effect Effects 0.000 claims description 42
- 230000006870 function Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 claims description 6
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- LKJPSUCKSLORMF-UHFFFAOYSA-N Monolinuron Chemical compound CON(C)C(=O)NC1=CC=C(Cl)C=C1 LKJPSUCKSLORMF-UHFFFAOYSA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/035—Reduction of table size
- G06F1/0356—Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/04—Trigonometric functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Description
- Die Erfindung betrifft allgemein Funktionsgeneratoren, und spezieller betrifft sie einen verbesserten Sinus/Cosinus- Generator.
- Um den für eine integrierte Schaltung für Sinus- und Cosinus-Generatoren erforderlichen Speicher zu verringern, wurde vorgeschlagen, eine Vorzeichenregel mit Näherung für kleine Winkel zu verwenden, wie in Tabelle 1 dargestellt. TABELLE 1 Sin Cos
- Auch kann die Menge abgespeicherter Werte dadurch verringert werden, daß nur Werte für einen Quadranten abgespeichert werden und die Werte vervollständigt werden, wie dies in Tabelle 2 veranschaulicht ist. TABELLE 2 QUAD SIN EQUATION COS EQUATION
- Eine Realisierung dieses Verfahrens ist im US-Patent 4,486,846 für McCallister et al beschrieben. Es sind vier ROMs vorhanden, zu denen ein Grobsinus-ROM (sin X), ein Grobcosinus-ROM (cos X), ein Feinsinus-ROM (Y sin X) und ein Feincosinus-ROM (Y cos X) gehören. Addierer, Multiplexer und eine Steuerlogik werden dazu verwendet, die Werte zu kombinieren und die Sinus- und Cosinus-Werte für den richtigen Quadranten zu erzeugen. Negative Werte werden durch Parallelumkehrung mit einem geeignet hinzugefügten Voraddierwert erzeugt. Obwohl diese Realisierung die Menge erforderlichen ROM-Speichers wesentlich verringert hat, sind weitere Verbesserungen hinsichtlich der ROM-Kapazität wie auch hinsichtlich einer Fehlerverringerung erforderlich.
- Demgemäß ist es eine Aufgabe der beanspruchten Erfindung, einen verbesserten Sinus- und Cosinus-Generator mit verringerter ROM-Kapazität und weniger Fehlern zu schaffen.
- Diese und andere Aufgaben werden dadurch gelöst, daß Werte für sin X, cos X und sin Y abgespeichert werden, die Werte von sin X und cos X mit dem Wert von sin Y multipliziert werden, um Teilprodukte -sin Y sin X und sin Y cos X zu erzeugen, und das Teilprodukt sin Y cos X zu sin X addiert wird, um sin(X+Y) zu erzeugen, und das Teilprodukt -sin Y sin X zu cos X addiert wird, um cos(X+Y) zu erzeugen. Die Werte von sin X und cos X sind für einen einzelnen Quadranten ohne Vorzeichenkennung abgespeichert, und es wird eine Quadrantensteuerung ausgeführt, um die jeweiligen Werte von sin X und cos X vor dem Addieren und Multiplizieren zu invertieren. Ein negativer Wert wird dadurch gebildet, daß das Einerkomplement erzeugt wird und 1 am geringstsignifikanten Bit hinzugezählt wird.
- Der Multiplizierer verwendet den Teil von sin X und cos X mit dem höchstsignifikanten Bit, um mehrere Teilprodukte zu erzeugen. Ein Decodierer für den Wert von sin Y ist vorhanden, um Steuerwerte für den Multiplizierer, der ein Multiplexer ist, zu erzeugen, wie komplementierte, verschobene und unverschobene Werte von sin X oder cos X und 0. Die Steuerwerte beinhalten eine Verschiebung um 1 wie auch ein Komplement unter Verwendung einer Umcodierung für Bitpaare. Der Decodierer ist eine von einer Logik abhängige Speichervorrichtung. Der Addierer ist ein Wallace-Baum, der Summen und Überträger erzeugt, und ein Endaddierer ist vorhanden, um die Summen und Überträge des Wallace-Baums zu addieren. Zu Rundungszwecken wird im Addierer auch 1 an der entsprechenden Bitposition addiert.
- Die Eingänge eines ersten und zweiten Multiplexers sind jeweils mit der Sinus- und Cosinus-Speichervorrichtung verbunden und ihre Ausgangssignale sind mit dem Multiplizierer bzw. dem Addierer verbunden. Der Multiplizierer beinhaltet den ersten und den zweiten Multiplizierer sowie einen jeweiligen ersten und zweiten Addierer, um jeweils sin bzw. cos zu erzeugen. Der Ausgang des ersten Multiplexers ist mit dem ersten Addierer und dem zweiten Multiplizierer verbunden, und der Ausgang des zweiten Multiplexers ist mit dem zweiten Addierer und dem ersten Multiplizierer verbunden. Ein einzelner umcodierter Wert von sin Y wird sowohl an den ersten als auch den zweiten Multiplizierer geliefert. Steuerbare Invertiergatter sind am Ausgang des ersten und zweiten Multiplexers vorhanden, und das invertierte Ausgangssignal des ersten Multiplexers wird so an den Eingang des zweiten Multiplizierers geliefert, daß das an diesen zweiten Multiplizierer gelieferte Ausgangssignal des ersten Multiplexers das Inverse des Werts ist, den der erste Multiplexer an den ersten Addierer liefert.
- Fig. 1 ist ein Blockdiagramm eines Sinus/Cosinus-Generators, der die Prinzipien der Erfindung beinhaltet.
- Fig. 2 ist ein Diagramm, das die Anordnung verschiedener Komponenten in einem Addiererarray veranschaulicht.
- Fig. 3 ist ein Blockdiagramm einer Variation des Sinus/Cosinus-Generators von Fig. 1 unter Verwendung eines einzelnen Sinus/Cosinus-Speichers.
- Fig. 1 veranschaulicht einen Sinus/Cosinus-Generator, der speziell für ein Ausgangssignal mit 16 Bits ausgebildet ist. Das Eingangssignal ist ein Wort mit 20 Bits, mit zwei Bits für den Quadranten Q, zehn Bits für den Phasenwinkel X und acht Bits für den kleineren Phasenwinkel Y. Der Quadrant Q wird durch den Decodierer 22 zu Komplementsteuersignalen C1 und C2 sowie Multiplexerauswahlsignalen SEL decodiert, wie in Tabelle 3 angegeben. TABELLE 3 QUADRANT SEL
- Die zehn Bits für den Winkel X sind Adressen von Sinus- und Cosinus-ROMs 24 und 26. Die Sinus- und Cosinus-Werte sind in den Sinus- und Cosinus-ROMs 24 und 26 als 17-Bit-Worte abgespeichert. Alternativ kann ein einzelner ROM mit einem Wort mit einer Breite von 34 Bits verwendet werden, wobei die ersten Bits 0-16 den Sinus und die letzten Bits 17-33 den Cosinus darstellen. Dann erzeugt eine einzelne Adresse beide Werte. Diese beinhalten kein Vorzeichenbit, da alle Sinusund Cosinus-Werte als positive Zahlen abgespeichert sind, wobei ihre Alternativwerte durch die Steuersignale C1 und C2 und den Decodierer 22 eingestellt werden. Die Sinus- und Cosinus-Werte von 17 Bits werden dazu berechnet, das Ausgangssignal mit einer Genauigkeit von 16 Bits zu berechnen. Das Ausgangssignal des sin-X-ROMs 24 wird an den Nulleingang des Multiplexers 30 und den Einsereingang des Multiplexers 32 geliefert. Das Ausgangssignal des cos-X-ROMs 26 wird an den Einsereingang des Multiplexers 30 und den Nulleingang des Multiplexers 32 geliefert. Das Auswahlsignal SEL des Decodierers 22 ist an die Multiplexer 30 und 32 angeschlossen, so daß der Ausgang des Multiplexers der Null- oder der Einsereingang ist, weswegen der eine einen Sinus-Wert als Ausgangssignal und der andere einen Cosinus-Wert als Ausgangssignal hat.
- Die Ausgänge der Multiplexer 30 und 32 sind über Invertiergatter 34 und 36 mit Registern 38 bzw. 40 verbunden. Die Inverter 34 und 36 sind als Exklusiv-ODER-Gatter dargestellt, von denen jedes das Ausgangssignal des jeweiligen Multiplexers 30, 32 sowie ein Komplementärwert-Steuersignal C2 bzw. C1 empfängt. Das Steuersignal C2 wird auch an das Register 38 geliefert, und das Steuersignal C1 wird auch an das Register 40 geliefert, und zwar als Vorzeichenbits.
- Die 17 Bits im Register 38 werden direkt an einen Addierer 46 geliefert, der als Wallace-Baum dargestellt ist, damit sie mit dem Vorzeichenbit aus dem Register 38 als höchstsignif ikantem Bit kombiniert werden. Wie es nachfolgend vollständiger erläutert ist, wird das Vorzeichenbit auch zum geringstsignifikanten Bit hinzugezählt. Wenn das Steuerbit C2 1 ist, wird das Vorzeichenbit 1 zum Einerkomplement hinzugezählt, um ein Zweierkomplement zu bilden. An einer geeigneten Position wird im Addierer 46 auch ein Rundungsbit hinzugezählt. Die neun höchstsignifikanten Bits der Werte im Register 38 vom invertierten Ausgang dieses Registers 38 zuzüglich des Vorzeichenbits werden an den Multiplexer 44 geliefert.
- Auf ähnliche Weise sorgt das Steuersignal C1 dafür, daß das Ausgangssignal des Multiplexers 32 direkt oder als Einerkomplement über ein Exklusiv-ODER-Gatter 36 an ein Register 40 geht. Der Wert des Registers 40 von 17 Bits wird direkt an den Addierer 48 geliefert, der als Wallace-Baum dargestellt ist, damit es mit dem Vorzeichenbit von C1 kombiniert wird, das auch dazu verwendet wird, einen zugehörigen Komplementübertrag zu ergeben, um ein Zweierkomplement zu bilden. An der geeigneten Bitposition des Addierers 48 wird auch ein Rundungsbit hinzugezählt. Die neun höchstsignifikanten Bits im Register 40 werden mit dem Vorzeichenbit kombiniert und an den Multiplexer 42 geliefert.
- Obwohl die Addierer 46 und 48 als Wallace-Bäume beschrieben sind, kann jedes beliebige andere Addiererarray verwendet werden.
- Die acht Bits für den Winkel Y werden als Adresse in einem sin-Y-ROM 28 verwendet, der umcodierte Werte von sin Y speichert. Der adressierte, umcodierte Wert sin Y, der 13 Bits hat, wird in ein Register 50 geladen. Der Ausgang des Registers 50 ist mit den Multiplexern 42 und 44 verbunden, und er wirkt steuernd auf die Multiplexer, um mehrere Teilprodukte des aufgezeichneten Werts sin Y x sin X und cos X aus den Registern 38 und 40 zu bilden.
- Der ROM 28 speichert einen umgekehrten Wert sin Y anstatt des tatsächlichen Werts von sin Y. Die Verwendung von sin Y anstelle von Y beseitigt eine Näherung. Cos Y wird immer noch als 1 angesehen. Dies führt zu einer Modifizierung der Tabellen 1 und 2, wie in den Tabellen 1A und 2A angegeben. TABELLE 1A Sin Cos TABELLE 2A QUADRANT SIN-GLEICHUNG COS-GLEICHUNG
- Da sin Y so klein ist, werden, wie dies nachfolgend vollständiger erläutert wird, nur die oberen zehn Bits der Teilprodukte an die Addierer 46 und 48 geliefert. Auch muß kein komplementbildender Übertrag zum erzeugten Teilprodukt für den umcodierten Wert sin Y aus dem Einerkomplement von sin X oder cos x addiert werden, da der komplementbildende Übertrag außerhalb des Bereichs liegt.
- Die Ausgangssignale der Addierer 46, 48 sind die Übertragssignale C bzw. die Summensignale S, die an die Endaddierer 52 bzw. 54 geliefert werden. Das Ausgangssignal des Endaddierers 52 ist ein 16-Bit-Wert für sin(X+Y), und das Ausgangssignal des Endaddierers 54 ist ein 16-Bit-Wert für cos(X+Y).
- Die Relativposition für die Teilprodukte, das Vorzeichenbit, den Komplementübertrag und das Rundungsbit innerhalb des Wallace-Baum-Arrays ist in Fig. 2 speziell dargestellt. Die Werte von sin X oder cos X sind jeweils ein 18-Bit-Wort mit 17 Bits aus dem sin X/cos X-Speicher sowie ein Vorzeichenbit an der Position 2º. Die Ausgangssignale der Multiplexer 42 und 44, die sin Y cos X oder sin Y sin X sind, sind ebenfalls 18-Bit-Wörter mit einem Vorzeichenbit. Da der Bereich für den Winkel Y das achte geringstsignifikante Bit der Auflösung des Winkels X ist, wird das Produkt sin Y cos X oder sin Y sin X um neun Bits in bezug auf den Maximalwert von sin X oder cos X verschoben.
- Das Komplementbildungsverfahren von Fig. 1 bildet durch die zu den Registern 38 und 40 führenden Exklusiv-ODER-Gatter 34 und 36 das Einerkomplement, und dann wird in den Wallace-Bäumen 46 und 48 1 zum geringstsignifikanten Bit oder zum Bit 2-17 hinzugezählt. Unter Verwendung der Wallace-Bäume 46 und 48 werden sin Y cos X und sin Y sin X an der richtigen Stelle erzeugt, und die Multiplexer 42 und 44 sowie die Wallace-Bäume 46 und 48 müssen nicht für das Abspeichern führender Nullen sorgen.
- An der Stelle 2-16 wird eine 1 zur Rundungskompensation hinzugezählt, wobei das sich ergebende Ausgangssignal für sin und cos ein 16-Bit-Wert mit einem Vorzeichenbit ist.
- Wie durch Bezugnahme auf Fig. 1 und Tabelle 3 erkennbar, sind im ersten Quadranten Q1 die Signale SEL, C1 und C2 alle Null. Demgemäß erzeugen die Multiplexer 30 und 32 jeweils sin X bzw. cos X für die Register 38 bzw. 40 ohne Invertierung oder Einerkomplementbildung. Das Register 38 liefert den Wert sin X an den Wallace-Baum 46 sowie den Kehrwert des Werts sin X an den Multiplexer 44, wo er mit dem umcodierten Wert sin Y multipliziert wird, um das Teilprodukt -sin Y sin X zu erzeugen, das im Wallace-Baum 48 addiert wird. Das Register 40 liefert den Wert cos X direkt an den Wallace-Baum 48, wo er mit -sin Y sin X zu kombinieren ist, und er liefert den Wert cos X an den Multiplexer 42, damit er mit sin Y multipliziert wird und das Teilprodukt sin Y cos X im Wallace-Baum 46 zu sin X hinzugezählt wird. Für den Quadranten 1 sind die Vorzeichenbits in den Wallace-Bäumen 46 und 48 Null, und es wird keine komplementierende Eins hinzugezählt. Das Ausgangssignal des Addierers 46 und des Endaddierers 52 sin X + sin Y cos X, und das Ausgangssignal des Addierers 48 und Endaddierers 54 ist cos X - sin Y sin X.
- Im zweiten Quadranten Q2 gilt SEL = 1, C1 = 1 und C2 = 0. Dies bewirkt, daß die Multiplexer 30 und 32 den Einserausgang so auswählen, daß der Multiplexer 30 ein Ausgangssignal cos X und der Multiplexer 32 ein Ausgangssignal sin X liefert. Da C1 eins ist, wird der Ausgangswert sin X des Multiplexers 32 vom Exklusiv-ODER-Gatter 36 invertiert und als Einerkomplement im Register 40 abgespeichert. Da C2 Null ist, wird der Ausgangswert cos X des Multiplexers 30 ohne Komplementbildung in das Register 38 eingespeichert. Das Register 38 liefert den Wert cos X direkt an den Addierer 46, und es liefert das Inverse dazu an den Multiplexer 44. Das Register 40 liefert das Einerkomplement von sin X mit dem einen Vorzeichenbit gemäß dem Wert C1 direkt an den Addierer 48 und den Multiplexer 42. C1 wird auch an das geringstsignif ikante Bit im Addierer 48 gegeben, um die Zweierkomplementbildung zu vervollständigen. Das Ausgangssignal des Addierers 46 und des Addierers 52 ist cos X - sin Y sin X, und das Ausgangssignal des Addierers 48 und des Endaddierers 54 ist -sin X - sin Y cos X.
- Im dritten Quadranten Q3 gilt SEL = 0, C1 = 1 und C2 = 2. So liefern die Multiplexer 30 und 32 jeweils die Ausgangssignale sin X bzw. cos X, und diese beiden Werte werden durch die Exklusiv-ODER-Gatter 34 und 36 invertiert und als Einerkomplemente in den Registern 38 und 40 abgespeichert. Das Register 38 liefert den Einerkomplementwert von sin X mit dessen einem Vorzeichenbit an den Addierer 46, und es liefert den Wert sin X, mit rückgängig gemachter Komplementbildung am Ausgang, an den Multiplexer 44. Das Register 44 liefert den Einerkomplementwert von cos X mit dessen einem Vorzeichenbit an den Addierer 48 und an den Multiplexer 42. Da sowohl sin X als auch cos X, die direkt an die Addierer 46 und 48 geliefert werden, negativ sind, werden die Einerkomplementüberträge C1 und C2 in beiden Addiererarrays zum geringstsignifikanten Bit hinzugezählt. Das Ausgangssignal des Addierers 46 und des Endaddierers 52 ist -sin X - sin Y cos X, und das Ausgangssignal des Addierers 48 und des Endaddierers 54 ist -cos X + sin Y sin X.
- Es ist auch zu beachten, daß die Invertierung von sin X durch das Exklusiv-ODER-Gatter 34 und die erneute Invertierung am Ausgang des Registers 38, dessen Wert an den Multiplexer 44 zu liefern ist, zu einem positiven Wert sin X die Kompliziertheit bei der Komplementbildung verringert, da nur eine Einerkomplementbildung zweimal ausgeführt wurde, anstatt daß eine vollständige Umwandlung oder Komplementierung in ein Zweierkomplement erfolgte. So sorgt die Addition des einen Übertrags für Komplementbildung in den Addierern 46 und 48 statt am Ausgang der Register 38 und 40 für eine Geschwindigkeitsverbesserung wie auch für eine Verringerung der Anzahl von Elementen in der Matrix.
- Im vierten Quadranten Q4 gilt SEL = 1, C1 = 0 und C2 = 1. So liefert der Multiplexer 30 den Wert cos X, der durch das Exklusiv-ODER-Gatter 34 invertiert wird, an das Register 38.
- Der Multiplexer 32 liefert sin X an das Register 40. Der invertierte Wert von cos X wird vom Register 38 an den Addierer 46 geliefert, und er wird erneut invertiert und an den Multiplexer 44 geliefert. Der Wert sin X im Register 40 wird an den Addierer 48 und den Multiplexer 42 geliefert. C2 wird auch zum geringstsignifikanten Bit im Addierer 46 hinzugefügt, um die Zweierkomplementbildung abzuschließen. Das Ausgangssignal des Addierers 46 und des Endaddierers 52 ist -cos X + sin Y sin X, und das Ausgangssignal des Addierers 48 und des Endaddierers 54 ist sin X + sin Y cos X.
- Der umcodierte Wert sin Y im Register 50 ergibt Steuersignale für die Multiplexer 42 und 44, die als Multiplizierer arbeiten. Bei Binärmultiplikation ist der umcodierte Wert sin Y der Multiplikator, und er bildet geeignet Signale für die Multiplexer, um mehrere Teilprodukte zu erstellen. In der einfachsten Form würde jedes Bit des umcodierten Werts sin Y entweder eine Null oder eine Eins an den Multiplexer liefern, der ein Teilprodukt erstellen würde, das in den Wallace-Baum-Arrays 46, 48 zu addieren wäre. Das Teilprodukt würde abhängig von der Bitposition des Multiplizierers in der richtigen Bitposition angeordnet werden.
- Alternativ kann die Größe der Arrays 46 und 48 verringert werden, wenn verschiedene Verfahren verwendet werden, zu denen z.B. ein Booth- oder ein modifizierter Booth-Algorithmus gehören. Dies verringert die Anzahl von Teilprodukten mindestens um die Hälfte. Vorzugsweise ist der verwendete Algorithmus derjenige, der in der US-Anmeldung mit der Seriennummer 434,790 offenbart ist, die am 13. November 1989 von W.R. Young und C.W. Malinowski für "Plural Bit Recoding Multiplier (Mehr-Bit-Umcodierungsmultiplizierer)" angemeldet wurde. Diese Anmeldung wird hiermit durch Bezugnahme eingeschlossen. Der umcodierte Wert sin Y ist der Multiplikator sin Y, der in geeignete Steuersignale mit mehreren Bits umcodiert wurde. Bei Verwendung des 2-Bit-Codieralgorithmus gemäß der Anmeldung von Young/Malinowski wären die Steuersignale für den Multiplexer 44 Null, 1, Verschiebung 1 und -1. Das Steuersignal -1 sorgt für das Einerkomplement am Ausgang des Multiplexers. Für das vorangehende Einerkomplement im Wallace-Baum wird kein komplementbildender Übertrag erzeugt, da es weit außerhalb des Bereichs liegt. Die Multiplexer 42 und 44 beinhalten eine geeignete Logik, um eine Vorzeichenerweiterung unter Verwendung des Vorzeichens von sin X und cos X und des umcodierten Wertes sin Y zu erzeugen.
- Da der Bereich und die Werte von sin Y bekannt sind, würde der sin-Y-ROM 28 statt der Werte sin Y abhängig vom verwendeten Algorithmus die Multiplexer-Steuersignale speichern. Dies führt zu einer Verringerung des Logikumfangs, wie er dazu erforderlich ist, die Werte sin Y in Multiplexer-Steuersignale umzucodieren.
- Es wird darauf hingewiesen, daß die Register 38, 40 und 50 dazu verwendet werden, für einen Pipeline-Betrieb zu sorgen, um den Durchsatz auf hohem Wert zu halten, z.B. bei 40 MHz. Um die Ausgabe von +1 zu erübrigen, was ein zusätzliches Ausgabebit fordern würde, können die Werte sin X und cos X bei der Erstellung der ROM-Werte z.B. mit dem folgenden Wert skaliert werden:
- (2¹&sup6; - 1) / (2¹&sup6; + 1)
- Um die Größe des erforderlichen ROMs weiter zu verkleinern, können sin X und cos X aus demselben ROM erhalten werden. Dies erfordert zwei Zugriffe. Es kann ein einziger Quadrant von Sinus-Werten abgespeichert werden und durch X für sin X und durch den Komplementwert von X für cos X adressiert werden. Eine Modifizierung der Schaltung von Fig. 1, die Werte an die Register 38 und 40 liefert, ist in Fig. 3 dargestellt.
- Der Wert X wird an einen steuerbaren Komplementerzeuger 60 geliefert, dessen Ausgang mit dem ROM 24 verbunden ist. Der Ausgang des ROMs 24 ist über ein Invertiergatter 36 mit den Registern 38 und 40 verbunden. Das Auswahlausgangssignal SEL des Decodierers 22 ist mit dem Komplementerzeuger 60 über ein Exklusiv-NOR-Gatter 62 verbunden, dessen anderes Eingangssignal das Taktsignal CLK ist. Während des ersten Halbzyklus, in dem CLK 1 ist und SEL 0 ist, ist der Komplementerzeuger 60 gesperrt und liefert daher direkt den Wert X zum Adressieren des ROMs 24, der den Wert sin X ausgibt. Während des zweiten Halbzyklus, wenn CLK 0 und SEL 0 ist, liefert der Komplementerzeuger 60 den Komplementwert von X zum Adressieren des ROMs 24, das den Wert cos X ausgibt. Wenn SEL 1 ist, liefert der Komplementerzeuger 60 den Komplementwert von X zum Adressieren von cos X im ersten Halbzyklus, und er liefert X zum Adressieren von sin X im zweiten Halbzyklus. Um den Komplementerzeuger 60 zu vereinfachen, könnte es ein Einerkomplementerzeuger unter Verwendung eines Exklusiv-ODER-Gatters sein. Der Minimal- und Maximalwinkel für den Quadranten wäre dann um 1/2 des geringstsignifikanten Bits versetzt.
- Die Komplementsteuerausgangssignale C1 und C2 des Decodierers 22 sind mit dem Inverter 36 über den Multiplexer 64 verbunden, der vom Takt CLK gesteuert wird. Während des ersten Halbzyklus, wenn CLK 1 ist, liefert der Multiplexer 30 den Wert C2 an den Inverter 36, und während des zweiten Halbzyklus, wenn CLK 0 ist, liefert der Multiplexer 30 den Wert C1 an den Inverter 36. Das Taktsignal CLK wird an den Takteingang des Registers 40 und den invertierten Takteingang des Registers 38 geliefert. So wird das Register 38 bei den Übergängen von 1 auf 0 zwischen dem ersten und zweiten Halbzyklus vom Inverter 36 geladen, und das Register 40 wird beim Übergang von 0 auf 1 zwischen dem zweiten und ersten Halbzyklus vom Inverter 36 geladen.
- Während das Signal SEL die Adressierungsreihenfolge für sin und cos steuert, steuern C1 und C2 die Invertierung von sin X und cos X. Im ersten und dritten Quadranten, wenn das Auswahlsignal SEL 0 ist, wird das Ausgangssignal sin X des ROMs 24 während des ersten Halbzyklus an das Register 38 geliefert, und der Wert cos X wird während des zweiten Halbzyklus an das Register 40 geliefert. Im zweiten und vierten Quadranten, wenn das Auswahlsignal SEL 1 ist, wird das Ausgangssignal sin X des ROMs 24 während des ersten Halbzyklus an das Register 40 geliefert, und der Wert cos X wird während des zweiten Halbzyklus an das Register 38 geliefert. Der Rest der Schaltung von Fig. 1 arbeitet wie zuvor beschrieben.
- Obwohl Fig. 1 die parallele Erzeugung von sin(X+Y) und cos(X+Y) unter Verwendung zweier Multiplizierer zeigt, könnten dieselben Prinzipien auch dazu verwendet werden, sin(X+Y) und cos (X+Y) der Reihe nach zu erzeugen. Dies würde den Multiplexer 44, den Wallace-Baum 48 und den Endaddierer 54 erübrigen. Die Steuersignale für die Exklusiv-ODER- Gatter 34 und 36 der Multiplexer 30 und 32 würden so verändert, daß sie die entsprechenden Ergebnisse von Tabelle 2A erzeugen.
- Als noch weitere Alternative, die nicht dargestellt ist, können die Register 38 und 40 durch zwei zusätzliche Exklusiv-NOR-Gatter 34, und 36, ersetzt werden, die mit den jeweiligen Multiplexern 30 und 32 verbunden sind. Diese Exklusiv-NOR-Gatter 34, und 36, sorgen für den Komplementwert an den Ausgängen der Exklusiv-ODER-Gatter 34 und 36 ohne zusätzlichen Zeitaufwand. Die Ausgänge der Exklusiv-ODER-Gatter 34 und 36 und der Exklusiv-NOR-Gatter 34' und 36' sind direkt mit den Wallace-Bäumen 46 bzw. 48 verbunden, und sie sind mit den Multiplexern 44 bzw. 42 verbunden.
- Fehler aufgrund einer Rundungskürzung sind in Tabelle 4 angegeben. TABELLE 4 sin X, cos X (in der Tabelle gerundet) sin Y (in der Tabelle gerundet) cos X, sin X (Rundung auf 10 Bits) Endrundung
- Simulierungen zeigen, daß der maximale Fehler von sin(X+Y) und cos(X+Y) -92,6 db entspricht, und daß die Größe des Fehlervektors bei -90,2 db maximal ist, wobei der Fehlervektor wie folgt definiert ist:
- Fehlervektor= [(Fehler von sin(X+Y))²+(Fehler von cos(X+ Y))²/(sin(X+Y))² + (cos(X+Y))²]
Claims (10)
1. Funktionsgenerator zur Erzeugung von den Gleichungen
sin (X + Y) = sin X + sin Y cos X
cos (X + Y) = cos X - sin Y sin X
entsprechenden Signalen, umfassend
eine erste Sinus-Speichereinrichtung (24) zum Speichern
von Werten von sin X;
eine Cosinus-Speichereinrichtung (26) zum Speichern von
Werten von cos X,
eine zweite Sinus-Speichereinrichtung (28) zum Speichern
von Werten von sin Y;
eine Einrichtung (30 - 44, 50) zur Aufnahme von sin X
und sin Y aus der ersten und der zweiten
Sinus-Speichereinrichtung sowie von cos X aus der Cosinus-Speichereinrichtung
sowie zur Erzeugung von Teilprodukten -sin Y sin X und
sin Y cos X, und
eine Addiereinrichtung (46, 48, 52, 54) zum Addieren des
Teilproduktes sin Y cos X zu sin X und zum Addieren des
Teilproduktes -sin Y sin X zu cos X zur Erzeugung von Signalen,
die sin (X + Y) und cos (X + Y) angeben.
2. Funktionsgenerator nach Anspruch 1, umfassend
eine Umcodiereinrichtung (28), die sin Y empfängt und in
MUX-Steuersignale umcodiert, und
eine Multiplexereinrichtung (42, 44), die sin X und cos X
ernpfängt und aufgrund der MUX-Steuersignale mehrere
Teilprodukte als verschobene und nicht verschobene Werte von sin X
und cos X mit oder ohne Komplement sowie den Wert Null
erzeugt.
3. Funktionsgenerator nach Anspruch 2, wobei die
Umcodiereinrichtung (28) sin Y in MUX-Steuersignale Null, keine
Verschiebung, Verschiebung Eins und Komplement für Bitpaare
umcodiert.
4. Funktionsgenerator nach Anspruch 2, wobei die
Umcodiereinrichtung (28) die besagte zweite Sinus-Speichereinrichtung
ist, die die MUX-Steuersignale als Funktion des umcodierten
sin Y, adressiert mit Y, speichert.
5. Verfahren zur Erzeugung von Signalen, die einen
eingeschlossenen Winkel ∅ im Bereich von 0rad bis 2πrad bezeichnen,
entsprechend den Funktionen cos (X + Y) oder sin (X + Y),
umfassend folgende Schritte:
a. Erzeugen von Werte sin X, cos X und sin Y für
ausgewählte Winkel X und Y angebenden Signalen,
b. Kombinieren dieser Signale zur Erzeugung von
-(sin X) (sin Y) angebenden Teilproduktsignalen,
c. Kombinieren der besagten Signale zur Erzeugung von
(cos X) (sin Y) angebenden Teilproduktsignalen,
d. Kombinieren der Teilproduktsignale -(sin X) (sin Y)
und der Teilproduktsignale (cos X) (sin Y) mit den sin X und
cos X bezeichnenden Signalen entsprechend den Funktionen
sin (X + Y) und cos (X + Y) zur Erzeugung von den
eingeschlossenen Winkel ∅ angebenden Signalen.
6. Verfahren nach Anspruch 5, umfassend die folgenden
Schritte:
Codieren des eingeschlossenen Winkels ∅ durch den
Quadrant des eingeschlossenen Winkels und durch X- und Y-Werte,
Speichern der codierten Signale sin X, cos X und sin Y,
und
Aufrufen der codierten Signale sin X, cos X und sin Y
durch die Codierung.
7. Verfahren nach Anspruch 6, umfassend die folgenden
Schritte:
Eingeben des Signals sin X oder des invertierten Signals
sin X in eine Sinus- oder ein Cosinusregister sowie Eingeben
des Signals cos X oder des invertierten Signals cos X in das
Cosinus- bzw. das Sinusregister, je nach der Codierung, und
Invertieren des Sinusregister-Signals und Multiplizieren
des invertierten Sinusregister-Signals mit dem Signal siny
zur Erzeugung eines -sin X sin Y angebenden Signals sowie
Multiplizieren des Signals in dem Cosinusregister mit den Signal
siny zur Erzeugung eines cos X sin Y angebenden Signals.
8. System zur Erzeugung von einen eingeschlossenen Winkel
∅ im Bereich von 0rad bis 2πrad angebenden Signalen
entsprechend den Funktionen cos (X + Y) oder sin (X + Y), umfassend
a. eine Einrichtung (24, 26, 28) zur Erzeugung von Werte
von sin X, cos X und sin Y für ausgewählte Werte von X und Y
angebenden Signalen,
b. eine Einrichtung (30, 34, 38, 44, 50 oder 32, 36, 40,
42, 50) zum Kombinieren dieser Signale zur Erzeugung von
- (sin X) (sin Y) angebenden Teilproduktsignalen,
c. eine Einrichtung (32, 36, 40, 42, 50 oder 30, 34, 38,
44, 50) zur Erzeugung von (cos X) (sin Y) angebenden
Teilproduktsignalen, und
d. eine Einrichtung (46, 48, 52, 54) zum Kombinieren der
Teilproduktsignale -(sin X) (sin Y) und (cos X) (sin Y) mit den
sin X und cos X angebenden Signalen entsprechend den
Funktionen sin (X + Y) und cos (X + Y) zur Erzeugung von den
eingeschlossenen Winkel ∅ angebenden Signalen.
9. System nach Anspruch 8, umfassend
eine Einrichtung zum Codieren des eingeschlossenen
Winkels ∅ durch den Quadrant des eingeschlossenen Winkels und
die X- und Y-Werte,
eine Einrichtung zum Speichern von codierten Signalen
sin X, cos X und sin Y, und
eine Einrichtung zum Aufrufen der codierten Signale
sin X, cos X und sin Y durch die Codierung.
10. System nach Anspruch 9, umfassend
eine Einrichtung (30, 34 oder 32, 36) zum Eingeben des
Signals sinX oder des invertierten Signals sin X je nach der
Codierung in ein Sinusregister (38 oder 40) oder ein
Cosinusregister (40 bzw. 38),
eine Einrichtung (32, 36 oder 30, 34) zum Eingeben des
Signals cos X oder des invertierten Signals cos X je nach der
Codierung in das Cosinusregister (40 bzw. 38) oder das
Sinusregister (38 bzw. 40).
eine Einrichtung (44 oder 42) zum Invertieren des
Signals in dem Sinusregister und zum Multiplizieren des
invertierten Sinusregister-Signals mit dem Signal sin Y zur
Erzeugung eines -(sin X) (sin Y) angebenden Signals, und
eine Einrichtung (42 bzw. 44) zum Multiplizieren des
Signals in den Cosinusregister mit dem Signal sin Y zur
Erzeugung eines (cos X) (sin Y) angebenden Signals.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/561,821 US5113361A (en) | 1990-08-02 | 1990-08-02 | Sin/cos generator implementation |
PCT/US1991/005402 WO1992002872A1 (en) | 1990-08-02 | 1991-07-30 | Sin/cos generator implementation |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69103757D1 DE69103757D1 (de) | 1994-10-06 |
DE69103757T2 true DE69103757T2 (de) | 1994-12-22 |
Family
ID=24243615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69103757T Expired - Fee Related DE69103757T2 (de) | 1990-08-02 | 1991-07-30 | Ausführung eines sin/cos generators. |
Country Status (6)
Country | Link |
---|---|
US (1) | US5113361A (de) |
EP (1) | EP0541707B1 (de) |
JP (1) | JP2910937B2 (de) |
DE (1) | DE69103757T2 (de) |
IE (1) | IE67648B1 (de) |
WO (1) | WO1992002872A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10129628A1 (de) * | 2001-06-20 | 2003-01-02 | Juergen Kaesser | Verfahren und Schaltung zur Erzeugung von sinusartigen Signalen und Taktsignalen für Frequenzen eines Rasters und ihre Anwendung in Funkgeräten |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276633A (en) * | 1992-08-14 | 1994-01-04 | Harris Corporation | Sine/cosine generator and method |
US5467294A (en) * | 1994-03-09 | 1995-11-14 | Hu; Vince | High speed, low power direct digital synthesizer |
US5615139A (en) * | 1994-03-23 | 1997-03-25 | Advanced Micro Devices, Inc. | Apparatus and method for synthesizing a sinusoidal signal |
EP0718746B1 (de) * | 1994-12-21 | 2005-03-23 | Koninklijke Philips Electronics N.V. | Booth-Multiplizierer für trigonometrische Funktionen |
JP2907045B2 (ja) * | 1995-01-06 | 1999-06-21 | ヤマハ株式会社 | 正弦波発生回路 |
DE19738357B4 (de) * | 1997-09-02 | 2005-01-05 | Rohde & Schwarz Gmbh & Co. Kg | Verfahren zum Betrieb eines digitalen Sinus-Generators |
US6661852B1 (en) | 1999-07-21 | 2003-12-09 | Raytheon Company | Apparatus and method for quadrature tuner error correction |
US6640237B1 (en) * | 1999-07-27 | 2003-10-28 | Raytheon Company | Method and system for generating a trigonometric function |
IL132161A (en) | 1999-09-30 | 2002-09-12 | Netmor Ltd | Digital coherent envelope demodulation of fdma signals |
US6320431B1 (en) * | 1999-10-08 | 2001-11-20 | National Semiconductor Corporation | Apparatus and method of generating numerically controlled oscillator signals |
US6373316B1 (en) * | 2000-01-18 | 2002-04-16 | International Business Machines Corporation | Digital cosine and sine multiplication circuits |
US6590948B1 (en) | 2000-03-17 | 2003-07-08 | Raytheon Company | Parallel asynchronous sample rate reducer |
US6647075B1 (en) | 2000-03-17 | 2003-11-11 | Raytheon Company | Digital tuner with optimized clock frequency and integrated parallel CIC filter and local oscillator |
US6931082B2 (en) | 2001-04-10 | 2005-08-16 | Netmor Ltd. | Digital phase locked loop |
GB0112639D0 (en) * | 2001-05-23 | 2001-07-18 | Lucas Industries Ltd | Sinusoid synthesis |
US7580964B2 (en) * | 2006-01-25 | 2009-08-25 | Teledyne Technologies Incorporated | Hardware-efficient phase-to-amplitude mapping design for direct digital frequency synthesizers |
US8200728B2 (en) * | 2008-05-29 | 2012-06-12 | Harris Corporation | Sine/cosine generator |
US8195118B2 (en) * | 2008-07-15 | 2012-06-05 | Linear Signal, Inc. | Apparatus, system, and method for integrated phase shifting and amplitude control of phased array signals |
US8872719B2 (en) * | 2009-11-09 | 2014-10-28 | Linear Signal, Inc. | Apparatus, system, and method for integrated modular phased array tile configuration |
WO2015194674A1 (ja) * | 2014-06-20 | 2015-12-23 | パナソニックヘルスケア株式会社 | 医薬品処方支援方法、医薬品処方支援用コンピュータプログラムおよび医薬品処方支援装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3813528A (en) * | 1972-06-02 | 1974-05-28 | Singer Co | High-speed function generator |
US4077063A (en) * | 1976-08-11 | 1978-02-28 | The Singer Company | Apparatus for rapidly determining the trigonometric functions of an input angle |
DE2701859B1 (de) * | 1977-01-18 | 1978-06-15 | Siemens Ag | Verfahren und digitaler Generator zur direkten Synthese von Sinusschwingungen |
US4159526A (en) * | 1977-08-08 | 1979-06-26 | Ncr Corporation | Digitally controlled variable frequency oscillator |
NZ192190A (en) * | 1978-11-23 | 1983-06-17 | Gen Electric Co Ltd | Digital sine wave generator for fsk transmitter |
US4342245A (en) * | 1979-10-26 | 1982-08-03 | Norlin Industries, Inc. | Complex waveform generator for musical instrument |
US4486846A (en) * | 1982-06-28 | 1984-12-04 | Motorola Inc. | Numerically controlled oscillator using quadrant replication and function decomposition |
US4809205A (en) * | 1986-11-19 | 1989-02-28 | Rockwell International Corporation | Digital sine conversion circuit for use in direct digital synthesizers |
US4888719A (en) * | 1988-07-21 | 1989-12-19 | General Electric Company | Sampled-data sine wave and cosine wave generation by accumulation |
-
1990
- 1990-08-02 US US07/561,821 patent/US5113361A/en not_active Expired - Lifetime
-
1991
- 1991-07-30 EP EP91915410A patent/EP0541707B1/de not_active Expired - Lifetime
- 1991-07-30 WO PCT/US1991/005402 patent/WO1992002872A1/en active IP Right Grant
- 1991-07-30 DE DE69103757T patent/DE69103757T2/de not_active Expired - Fee Related
- 1991-07-30 JP JP3514485A patent/JP2910937B2/ja not_active Expired - Fee Related
- 1991-08-01 IE IE272691A patent/IE67648B1/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10129628A1 (de) * | 2001-06-20 | 2003-01-02 | Juergen Kaesser | Verfahren und Schaltung zur Erzeugung von sinusartigen Signalen und Taktsignalen für Frequenzen eines Rasters und ihre Anwendung in Funkgeräten |
Also Published As
Publication number | Publication date |
---|---|
EP0541707B1 (de) | 1994-08-31 |
US5113361A (en) | 1992-05-12 |
DE69103757D1 (de) | 1994-10-06 |
EP0541707A1 (de) | 1993-05-19 |
JP2910937B2 (ja) | 1999-06-23 |
WO1992002872A1 (en) | 1992-02-20 |
IE912726A1 (en) | 1992-02-12 |
IE67648B1 (en) | 1996-04-17 |
JPH05509429A (ja) | 1993-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69103757T2 (de) | Ausführung eines sin/cos generators. | |
DE3750791T2 (de) | Sehr schnelle Transformationsvorrichtung. | |
DE3856045T2 (de) | Hochauflösungsumwandlung von phase zur sinusamplitude | |
DE69821408T2 (de) | Multiplikationsverfahren und -vorrichtung | |
DE3650335T2 (de) | Rechenverfahren und -gerät für endlichfeldmultiplikation. | |
DE69132517T2 (de) | Gleitkommaprozessor | |
DE2231458A1 (de) | Digitaler frequenzzusammensetzer | |
DE69116854T2 (de) | Digitales fehlerdiffusionsverfahren mit hoher geschwindigkeit zur umsetzung eines kontinuierlichen -in ein binäres- bild | |
DE69130640T2 (de) | Arithmetische Operationseinheit mit Bit-Invertierungsfunktion | |
DE69329707T2 (de) | Subtraktionsverfahren und -Anordnung in oder in Beziehung zu Signalbearbeitungstechniken | |
DE2541054C2 (de) | Schaltungsanordnung zur Synthetisierung einer phasenmodulierten Trägerwelle in Abhängigkeit von Digitaldatenelementen | |
DE2727627C2 (de) | Dekoder zur Parallelumsetzung von binären Zeichendaten in ein Punktmatrixformat | |
DE3852576T2 (de) | Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen. | |
DE69424372T2 (de) | Hocheffizientes Lernnetzwerk | |
DE69226886T2 (de) | Verfahren und Vorrichtung zum Erzeugen von Signalabtastwerten mit mehreren Amplituden | |
DE69932673T2 (de) | Digitaler Signalsynthetisierer | |
DE2543356C3 (de) | Numerischer Generator zum Erzeugen von Mehrfrequenzsignalen | |
DE69332817T2 (de) | Verfahren und Gerät zum automatischen Entwurf logischer Schaltung und Multiplikator | |
DE3644015C2 (de) | ||
DE3434777A1 (de) | Verfahren und vorrichtung zur vorzeichenerzeugung fuer einen uebertragsicherstellungsaddierer | |
DE69737849T2 (de) | Vorrichtung zur Musterwiedererkennung | |
DE2900844C2 (de) | ||
DE69130756T2 (de) | Gleitkommamultipliziergerät mit drei Übertragsfortpflanzungsaddierern, welche in parallel arbeiten können | |
DE60216146T2 (de) | Analog-/digitalwandler und verfahren zur erzeugung eines zwischenkodes für einen analog-/digitalwandler | |
DE69619364T2 (de) | Verfahren und vorrichtung zur erzeugung von verschiedenen wellenformen bei der synthesierung von musiktonen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |