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
Application number
DE69103757T
Other languages
English (en)
Other versions
DE69103757D1 (de
Inventor
David Damerow
Denis Faas
William Young
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.)
Harris Corp
Original Assignee
Harris Corp
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 Harris Corp filed Critical Harris Corp
Publication of DE69103757D1 publication Critical patent/DE69103757D1/de
Application granted granted Critical
Publication of DE69103757T2 publication Critical patent/DE69103757T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • G06F1/0356Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/04Trigonometric 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

    TECHNISCHES GEBIET
  • Die Erfindung betrifft allgemein Funktionsgeneratoren, und spezieller betrifft sie einen verbesserten Sinus/Cosinus- Generator.
  • HINTERGRUND DER ERFINDUNG
  • 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.
  • OFFENBARUNG DER ERFINDUNG
  • 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.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 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.
  • BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
  • 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.
DE69103757T 1990-08-02 1991-07-30 Ausführung eines sin/cos generators. Expired - Fee Related DE69103757T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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