DE19702326A1 - Einrichtung und Verfahren für eine selbstgetaktete algorithmische Ausführung - Google Patents

Einrichtung und Verfahren für eine selbstgetaktete algorithmische Ausführung

Info

Publication number
DE19702326A1
DE19702326A1 DE19702326A DE19702326A DE19702326A1 DE 19702326 A1 DE19702326 A1 DE 19702326A1 DE 19702326 A DE19702326 A DE 19702326A DE 19702326 A DE19702326 A DE 19702326A DE 19702326 A1 DE19702326 A1 DE 19702326A1
Authority
DE
Germany
Prior art keywords
logic
pulse
rate
self
signal
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.)
Granted
Application number
DE19702326A
Other languages
English (en)
Other versions
DE19702326B4 (de
Inventor
Michael A Baxter
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of DE19702326A1 publication Critical patent/DE19702326A1/de
Application granted granted Critical
Publication of DE19702326B4 publication Critical patent/DE19702326B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled

Description

Die Erfindung betrifft eine Einrichtung und Verfahren zum Erzeu­ gen von internen Takt- bzw. Zeitsteuersignalen für Hochleistungs­ computersysteme. Inbesondere betrifft die Erfindung eine Einrich­ tung und ein Verfahren für eine selbstgetaktete algorithmische Ausführung, welche nicht starr bezüglich einer Master- bzw. Hauptzeitbasis synchronisiert ist.
In Hochleistungscomputersystemen ist eine Master- oder Hauptzeit­ basis erforderlich, um verschiedene notwendige Schaltaktivitäten nacheinander durchzuführen. In einigen Computersystemen wird ein einheitliches Taktsignal durch mehrere Taktverstärker gepuffert, um so als die einzige Quelle einer zeitlich richtigen Synchroni­ sierung für alle Speicher zu wirken, die in dem System verwendet sind. In anderen Systemen können mehrere zusätzliche unterschied­ lich phasengesteuerte Taktsignale verwendet werden, um gesonderte Gruppen von Speicher anzusteuern, die jedoch alle in herkömmli­ cher Weise mit der Masterzeitbasis in dem System synchronisiert sind.
Wenn mehrere Taktsignale verwendet werden, wechseln oder ändern die verschiedenen Speicher einen Zustand mit Datenströmen oder Befehlsfolgen bei verhältnismäßig verschiedenen Raten. Solche mehrfach getakteten Schaltungen sind oft so ausgelegt, daß eine funktionelle Logik zwischen den Speichern mit der schnellstmögli­ chen Geschwindigkeit durchlaufen wird. In Pipelinesystemen ist beispielsweise die funktionelle Logik auf die Speicher verteilt, so daß eine Systemdesign-Beschränkung bei einer minimalen Soll­ ausführungszeit erhalten wird, ohne gleichzeitig die Anzahl an funktionellen Logik- oder Speicherelementen erhöhen zu müssen.
In derartigen Pipelinesystemen wird ein superharmonischer Takt verwendet, um die internen Ränge bestimmter funktioneller Pipeli­ ne-Einheiten mit einer schnelleren Rate zu durchlaufen, während die Eingabe-Ausgabebereiche der funktionellen Einheit mit einer langsameren Rate durchlaufen werden, die mit dem Rest der funk­ tionellen Pipeline-Einheiten in dem System kompatibel ist. Diese herkömmliche Methode ist als "Mikropipelining" bekannt und schließt Einrichtungen ein, in welchen die inneren Speicher einer funktionellen Pipeline-Einheit ein strikt synchrones, superharmo­ nisches Taktsignal haben, welches die Mikrooperationen des Pipe­ linesynchronismus mit der langsameren (Daten-)Stromrate ver­ schachtelt, die an den Eingangs- und Ausgangsanschlüssen der Pi­ peline vorliegt.
Leider sind aufgrund der Nachteile des "Mikropipelining" mehrere Taktverstärker in einer Baumorganisation mit geringer Schräge (low-skew) erforderlich, um die niedrigste mögliche Schräge in dem Triggersignal sicherzustellen, das tatsächlich von jedem der Speicher empfangen worden ist, und es ist ein einheitliches Zeit­ steuerintervall erforderlich. Folglich sind Gruppen von logischen Elementen in einer Mikropipeline schwierig unterzubringen, die keine Übertragungsverzögerungen hat, die kurz genug sind, um in dem einheitlichen Zeitsteuerintervall zu arbeiten. Ferner sind Mikropipelining-Konzepte besonders schwierig mit Hilfe von rekon­ figurierbaren Logikeinrichtungen (RLDs), wie feldprogrammierbaren Gate-Arrays (FPGAs) durchzuführen, da die Übertragungsverzögerun­ gen in einer RLD-Einheit sich von funktioneller zu funktioneller Einheit ändern, was einen halb-globalen Mikropipeline-Takt schwierig macht.
Wenn RLD-Einheiten verwendet worden sind, um verschiedene logi­ sche Strukturen durchzuführen, wird bei der Mehrheit von "Werk­ zeugen", die verwendet worden sind, um die tatsächlichen RLD-Ver­ bindungen zu erzeugen, ein Register-Transfer-Sprachen-(RTL) Paradigma zu erzeugen. Ein derartiges Paradigma vertraut stark auf das Vorhandensein von gesonderten Master-Zeitbasis-Takten zum Ansteuern der funktionellen Logik- und Speichereinheiten in der RLD-Einheit. Ein derartiges Paradigma ignoriert die Wirkungen, welche die Implementierung der Logikausführung in die RLD-Einheit auf Forderungen bezüglich Silizium-Ressourcen haben. In der Tat verlangen die RLD-Werkzeughersteller oft, daß ein "Vorteil" ihres Logik-Ausführungsparadigmas darin besteht, daß es nicht auf die charakteristischen RLD-Merkmale zugeschnitten ist.
Bei anderen Hochleistungs-Computersystemen ist versucht worden, die vorstehend erwähnten Schwierigkeiten bei auf einer Master­ zeitbasis synchronisierten Taktsystemen zu vermeiden, indem funk­ tionelle Computeraufgaben in eine Reihe von zeitlich asynchron gesteuerten Unteraufgaben aufgeteilt werden. Leider haben beste­ hende asynchrone Logikausführungen auch viele Einschränkungen: so müssen beispielsweise "Abschlußsignale" bei Beendigen von funk­ tionellen Aufgaben erzeugt werden; sie haben variable oder unbe­ kannte Abschlußzeiten; sie erfordern externe Taktelemente; sie haben datenabhängige Abschlußzeiten; sie sind asynchron an eine externe Schaltungsanordnung anzuschließen; es liegt ein inkohä­ renter Phasenabgleich bei Datenaustausch mit einer externen Schaltungsanordnung vor; es ist schwierig, sie mit einer synchro­ nen externen Schaltung zusammenzubringen, und es ist schwierig, die gesamte systemweite Performance mit dem Netz von externen taktgebündelten Schaltungen zusammenzubringen.
Gemäß der Erfindung sollen daher eine Einrichtung und ein Verfah­ ren für eine selbstgetaktete algorithmische Ausführung geschaffen werden, welche die inhärente Bürde bzw. Belastung trennt, um die schnellstmöglichen Pipeline-Sequenzen von der simultanen Bürde aus zu erreichen, um die kürzest möglichen Zwischenzustand-Verzö­ gerungsbeschränkungen in einem System zu haben, welches verein­ heitlichte Zeitsteuerintervalle benutzt.
Gemäß der Erfindung ist dies mit Einrichtung für eine selbstgetak­ tete algorithmische Ausführung mit den Merkmalen des Anspruchs 1 erreicht. Vorteilhafte Weiterbildungen sind Gegenstand von auf den Anspruch 1 unmittelbar oder mittelbar rückbezogenen Ansprü­ chen. Ferner ist dies mit einem Verfahren für eine selbstgetakte­ te logarithmische Ausführung mit den Merkmalen des Anspruchs 14 erreicht. Vorteilhafte Weiterbildungen des erfindungsgemäßen Ver­ fahrens sind Gegenstand der auf den Anspruch 14 unmittelbar oder mittelbar rückbezogenen Ansprüche.
Die Einrichtung gemäß der Erfindung weist vorzugsweise eine funk­ tionelle Logikanordnung, einen Referenz-Takteingang und einen Im­ pulszuordner auf. Die funktionelle Logikanordnung erhält Ein­ gangsdaten synchron mit einem Referenztakt, der an dem Referenz-Takteingang erhalten worden ist, führt algorithmische Berechnun­ gen an den eingegebenen Daten mit einer Maximalrate, welche von dem Impulszuordner festgelegt worden ist, entsprechend den physi­ kalischen Kenndaten der funktionellen Logikanordnung durch, er­ zeugt Ausgangsdaten und überträgt die Ausgangsdaten synchron mit dem Referenztakt. Die Maximalrate, die mittels des Impulszuord­ ners eingestellt worden ist, ist von dem Referenztakt unabhängig.
Das erfindungsgemäße Verfahren für eine selbstgetaktete algorith­ mische Ausführung weist die Schritte auf: Übertragen von eingege­ benen Daten an eine Logikanordnung synchron mit einem Referenz­ takt; Erzeugen einer Impulsfolge mit einer Maximalrate zum An­ steuern der funktionellen Logikanordnung mit einer Rate, die von einer Algorithmus-Ausführungszeit für die funktionelle Logikan­ ordnung abhängt, von dem Referenztakt aber unabhängig ist; Erzeu­ gen von Ausgangsdaten von der funktionellen Logikanordnung aus entsprechend der Impulsfolge mit maximaler Rate, und Übertragen der Ausgangsdaten von der funktionellen Logikanordnung synchron mit dem Referenztakt.
Nachfolgend wird die Erfindung anhand von bevorzugten Ausfüh­ rungsformen unter Bezugnahme auf die anliegenden Zeichnungen im einzelnen erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm einer bevorzugten Ausführungsform einer Einrichtung für eine selbstgetaktete algorithmische Aus­ führung;
Fig. 2A ein Blockdiagramm einer bevorzugten Ausführungsform eines Impulszuordners gemäß der Erfindung;
Fig. 2B ein Blockdiagramm einer bevorzugten Ausführungsform einer Startlogik in dem Impulszuordner;
Fig. 2C ein Blockdiagramm einer bevorzugten Ausführungsform einer Verzögerungseinheit in dem Impulszuordner;
Fig. 2D ein Blockdiagramm einer bevorzugten Ausführungsform eines Impulszählers in dem Impulszuordner;
Fig. 2E ein Blockdiagramm einer bevorzugten Ausführungsform einer Sequenz-Gate-Logik in dem Impulszuordner;
Fig. 3 ein Blockdiagramm einer bevorzugten Ausführungsform einer funktionellen Logik gemäß der Erfindung;
Fig. 4 ein Blockdiagramm einer bevorzugten Ausführungsform eines Multiplexers in der funktionellen Logik;
Fig. 5 ein Blockdiagramm einer bevorzugten Ausführungsform eines partiellen Produktgenerators in der funktionellen Logik;
Fig. 6 ein Blockdiagramm einer bevorzugten Ausführungsform einer partiellen Produktsummiereinheit in der funktionellen Logik;
Fig. 7 ein Blockdiagramm einer bevorzugten Ausführungsform eines Produktakkumulators in der funktionellen Logik;
Fig. 8 ein bevorzugten Zeitsteuerdiagramm, das die Arbeitsweise der Erfindung wiedergibt;
Fig. 9A eine Matrix, die bevorzugte partielle Produktadditionen für eine 16 Bit mal 16 Bit-Multiplikation gemäß der Erfin­ dung wiedergibt;
Fig. 9B eine Matrix, die bevorzugte partielle Produktadditionen für eine 8 Bit mal 8 Bit-Multiplikation der Erfindung wie­ dergibt;
Fig. 10 ein Ablaufdiagramm eines bevorzugten Verfahrens für eine selbstgetaktete algorithmische Ausführung;
Fig. 11 ein Ablaufdiagramm eines bevorzugten Verfahrens zum Erzeu­ gen einer Impulsfolge, und
Fig. 12 ein Ablaufdiagramm eines bevorzugten Verfahrens zum Erzeu­ gen von Ausgangsdaten entsprechend der Impulsfolge.
Die vorliegende Erfindung betrifft eine Verfahren und eine Ein­ richtung für eine selbstgetaktete algorithmische Ausführung. Durch eine Paarbildung einer Verzögerungseinheit mit einer funk­ tionellen Logikanordnung, die ausgelegt ist, um einen ausgewähl­ ten Algorithmus auszuführen, wird gemäß der Erfindung der ausge­ wählte Algorithmus mit der schnellstmöglichen Geschwindigkeit un­ abhängig von irgendwelchen Referenztakten durchgeführt, welche andere funktionelle Logikanordnungen bzw. -gruppen ansteuern. Folglich brauchen im Unterschied zu bekannten Zeitsteuereinrich­ tungen und -Verfahren charakteristische Zeitsteuerkenndaten für eine funktionelle Logikanordnung, welche den Algorithmus durch­ führt, nicht entweder durch eine Referenztakt-Geschwindigkeit eingeschränkt zu werden oder davon abhängig zu sein.
Statt dessen erhält die vorliegende Erfindung erstens Daten von anderen funktionellen Logikanordnungen, arbeitet zweitens an den Daten mit einer selbstgetakteten Rate, die auf einer funktionel­ len Logikanordnung basiert, welche den Algorithmus entsprechend dem Erzeugen eines Satzes von selbstgetakteten Impulsen durch­ führt, und gibt drittens Daten zu einem spezifischen bekannten Zeitpunkt ab, der von den anderen funktionellen Logikanordnungen angenommen wird. Folglich sind die Einrichtung und das Verfahren gemäß der Erfindung insbesondere vorteilhaft gegenüber dem Stand der Technik, da sie eine funktionelle Logikanordnung ermöglicht, mit einer Geschwindigkeit zu arbeiten, die unabhängig von der Operationsgeschwindigkeit anderer funktioneller Logikanordnungen oder von Referenztakten ist; folglich vereinfacht dies die Hard­ ware-Auslegung, während die schnellstmöglichen algorithmischen Ausführungsgeschwindigkeiten erhalten werden.
Gemäß der Erfindung werden diese Vorteile dadurch erreicht, daß funktionelle Logikeinheiten hinsichtlich ihrer meist fundamenta­ len physikalischen Strukturen betrachtet werden. Die vorliegende Erfindung verläßt sich nicht auf ein Register-Transfer-Logik-(RTL-)Paradigma. Vielmehr schafft die Erfindung eine besonders vorteilhafte Zeitsteuerschaltung für eine funktionelle Logikan­ ordnung, welche einen Algorithmus durchführt, so daß die funktio­ nelle Logikanordnung mit ihrer schnellstmöglichen Rate arbeiten kann. Folglich definiert die vorliegende Erfindung ein neues Paradigma zum Ausführen logischer Strukturen in Silizium-Ressourcen, wobei die Silizium-Ressourcen als Incremental-Arbiter nicht nur von der algorithmischen Ausführung, sondern auch von Zeitsteuerraten betrachtet werden.
Bei dem Stand der Technik ist dieses neue Paradigma nicht be­ kannt, da erstens die temporale Auswirkung auf Implementierung von Logik in bekannten Systemen von den Nebenwirkungen abhängt, die nur an den Speichervorrichtungen zu sehen sind; zweitens funktionelle Logikgruppen beim Stand der Technik mechanistisch als Leitungen zum Durchlassen von Daten betrachtet werden, wäh­ rend in Wirklichkeit die funktionelle Logikgruppe auch als eine Möglichkeit betrachtet werden kann, eine Gesamtausführungszeit von funktionellen Logiksätzen zu verringern, drittens das RTL-Paradigma die Analyse von vorteilhaften oder integralen Verbin­ dungswirkungen zwischen der funktionellen Logik und Speichervor­ richtungen beeinträchtigt, und viertens beim Stand der Technik der Nachdruck auf funktionelle Logik Gestaltungen stark beein­ flussen, welche ein lokalisiertes Rückkoppeln einschließen, um individuell gestaltete bzw. Zeitsteuerschaltungen auf dem Niveau einer algorithmischen Implementierung zu erzeugen.
Die Erfindung ist vorzugsweise in einer rekonfigurierbaren Logik­ einheit (RLD) dargestellt, wie beispielsweise eine feldprogram­ mierbaren Gate-Array (FPGA), der Xilinx XC4000-Serie (Xilinx, San Jose, Kalifornien). Rekonfigurierbare Logikeinheiten (RLDs) wei­ sen einen Satz konfigurierbarer Logikblöcke (CLBs) auf. Jeder konfigurierbare Logikblock (CLB) enthält vorzugsweise mindestens einen Funktionsgenerator sowie ein oder mehrere Übertraglogikelemente. Die innere Struktur eines feldprogrammierbaren Gate-Array (FPGA) ist dynamisch rekonfigurierbar durch Verwenden eines Kon­ figurationsdatenbestandes oder eines Konfigurations-Bitstroms. In einem vorgegebenen konfigurierbaren Logikblock (CLB) werden ganz bestimmte logische Funktionen über die Funktionsgeneratoren ent­ sprechend dem Konfigurationsbitstrom erzeugt.
Jeder Funktionsgenerator hat eine charakteristische stabile Signalausbreitungsverzögerung. Beispielsweise haben in einem kon­ figurierbaren Logikblock (CLB) der Xilinx XC4000-Serie jeweils ein erster und ein zweiter Funktionsgenerator (Typ "F" und "G") eine Übertragungsverzögerung von annähernd 4,5 ns, und ein drit­ ter Funktionsgenerator (Typ "H") hat eine Ausbreitungsverzögerung von annähernd 2,5 ns. Die Übertraglogikelemente weisen bekannt­ lich eine Übertrag-Ausbreitungslogik auf, die entsprechend ausge­ legt ist, um sehr kleine stabile Übertragungsverzögerungen zu ha­ ben. Die übertrag-Ausbreitungslogik in einem FPGA der Xilinx XC4000 Serie hat eine Übertragungsverzögerung von 1,5 ns.
Die Erfindung schafft Vielfachrückkopplungspegel bzw. -ebenen, um selektiv Ressourcen in der rekonfigurierbaren Logikeinheit (RLD) zu kombinieren, um verschiedene interne Übertragungsverzögerungen zu erzeugen. Diese Rückkopplung wird verwendet, um individuelle Zeitsteuerschaltungen zu schaffen, um ein oder mehrere funktio­ nelle Logikeinheiten in der RLD-Einheit anzusteuern. Vorzugsweise nutzt die vorliegende Erfindung "Intertial"-Verzögerungen und verläßt sich nicht nur auf "reine" Verzögerungen. Eine Inertial­ verzögerung ist definiert als eine Verzögerung, bei welcher eine Übertragung eine minimale Impulsbreite erfordert, während eine reine Verzögerung eine ist, bei welcher die Verzögerungsübertra­ gung im wesentlichen unabhängig von der Impulsbreite ist. Vor­ teilhafterweise sind Inertialverzögerungen stabile, gut gesteuer­ te Verzögerungen. Der Fachmann erkennt daher, daß die vorliegende Erfindung nicht in einer rekonfigurierbaren Logikeinheit (RLD) ausgeführt zu werden braucht, sondern statt dessen auch in anderen herkömmlichen bekannten Logikeinheiten ausgeführt werden kann.
Obwohl in der vorliegenden Beschreibung eine funktionelle Logik­ einheit beschrieben ist, welche eine X-Bit mal Y-Bit-Multiplika­ tion ausführt, die ein P-Bit-Produkt ergibt, (wobei X, Y und P ganze Zahlen sind), weiß der Fachmann, daß die funktionelle Lo­ gikeinheit auch so ausgelegt sein könnte, um-eine große Anzahl alternativer Algorithmen durchzuführen. Derartige alternative Al­ gorithmen können Schritte aufweisen, um jede Art von arithmeti­ schen, logischen, grafischen, wortverarbeitenden, signalverarbei­ tenden oder Netz-Operationen durchzuführen. Beispielsweise kann diese Erfindung dazu verwendet werden, um Zeitsteuersignale für die effiziente Nutzung eines internen RLD-Randomspeichers (RAM), Vielfachregisterdateien oder eine Datenwegwahl in einer RLD-Ein­ heit zu schaffen (beispielsweise Cross-Barschalter in einem FPGA).
Zur Verdeutlichung zeigen Fig. 3 bis 7 unten Einzelheiten einer beispielshaften 16 Bit mal 16 Bit-Multiplikation, die ein 32 Bit-Produkt ergibt. Der Fachmann erkennt jedoch, daß die Erfindung auch verwendet werden kann, um Multiplikationen mit mehr oder we­ niger als 16 Bits durchzuführen. In der folgenden Beschreibung haben die Signale und Bits, die nachstehend beschrieben sind, vorzugsweise nur zwei Zustände, nämlich logisch "1" und logisch "0". Obwohl die Elemente der Erfindung so beschrieben sind, daß sie nur auf eine Anstiegsflanke eines Zustandsübergangs (d. h. eines Übergangs von logisch "0" auf logisch "1") ansprechen, ist dem Fachmann bekannt, daß die rekonfigurierbare Logikeinheit (RLD) auch entsprechend konfiguriert sein kann, um entweder nur auf Zustandsübergänge mit einer fallenden Flanke oder sowohl auf solche mit einer ansteigenden als auch einer fallenden Flanke an­ zusprechen.
In Fig. 1 ist ein Blockdiagramm einer bevorzugten Ausführungsform einer Einrichtung zur selbstgetakteten algorithmischen Ausführung dargestellt. Die Einrichtung 20 weist einen Eingangspuffer 22, eine funktionelle Logik 24, einen Ausgangspuffer 26, eine syn­ chrone Zustandseinrichtung (state machine) 30 und einen Impulszu­ ordner 34 auf. Der Eingangspuffer 22 ist eine bekannte Einrich­ tung, die entweder einen X Bit-Multiplikanden oder einen Y-Bit-Multiplikator lädt, der über eine Leitung 19 von einer (nicht dargestellten) externen Schaltung jedesmal dann erhalten worden ist, wenn die externe Schaltung ein eingegebenes Freigabesignal auf einer Leitung 29 in einem logischen "1"-Zustand hält, während ein Referenztaktsignal auf einer Leitung 28 erhalten wird. Der Referenztakt wird vorzugsweise mit Hilfe eines Taktmechanismus ausgeführt, der in der US-Patentanmeldung SN 08/501,970 "System und Methode zum phasensynchronen frequenzflexiblen Takten und Nachrichtenübermitteln" beschrieben ist. Selbstverständlich kann der Referenztakt statt dessen auch mit einer bekannten Takterzeu­ gungseinrichtung geschaffen werden.
Der Eingangspuffer 22 gibt den X-Bit-Multiplikanden über eine Leitung 21 und den Y-Bit-Multiplikator über eine Leitung 23 an die funktionelle Logik 24 ab. Die funktionelle Logik 24 erhält den Multiplikanden und den Multiplikator und multipliziert sie entsprechend einem Multiplikationsalgorithmus mit einer Taktrate, die von dem Impulszuordner 34 abhängt, aber nicht von dem Refe­ renztakt abhängig ist. Die Zeit, welche von der funktionellen Logik 24 gefordert wird, um den Multiplikationsalgorithmus durch­ zuführen, ist die Algorithmus-Ausführungszeit.
Die Übertragungsverzögerungen in der funktionellen Logik 24 be­ stimmen deren Algorithmus-Ausführungszeit und werden üblicherwei­ se basierend auf einem Satz von darin enthaltenen Logikvorrich­ tungen berechnet. Die funktionelle Logik 24 gibt ein P-Bit-Pro­ dukt über eine Leitung 25 an den Ausgangspuffer 26 ab. Einzelhei­ ten der funktionellen Logik 24 werden nachstehend anhand von Fig. 3 beschrieben. Der Ausgangspuffer 26 ist ein bekannter Puf­ fer, welcher das P-Bit-Produkt lädt und dann über eine Leitung 27 an die externe Schaltung abgibt, wenn die externe Schaltung einen Ausgabe-Freigabe-Impuls auf einer Leitung 31 in einem logischen "1"-Zustand erhält, während der Referenztakt über die Leitung 28 erhalten wird.
Die synchrone Zustandseinrichtung 30 ist eine bekannte Einrich­ tung, welche ein Startsignal 90 (siehe Fig. 8) in einen logischen "1"-Zustand umwandelt, nachdem der Referenztakt auf der Leitung 28 zweimal gewechselt hat und die externe Schaltung gleichzeitig das eingegebene Freigabesignal auf einer Leitung 29 in einem lo­ gischen "1"-Zustand gehalten hat. Die synchrone Zustandseinrich­ tung 30 wartet zwei Referenztaktwechsel ab, bevor sie das Start­ signal 90 in einen logischen Zustand "1" setzt, so daß der Ein­ gangspuffer 22 fortlaufend sowohl den X-Bit-Multiplikanden als auch den Y-Bit-Multiplikator von der externen Schaltung erhalten kann.
Der Impulszuordner 34 überwacht das Startsignal 90 auf einer Lei­ tung 32 von der synchronen Zustandseinrichtung 30 und erzeugt und sendet seinerseits einen Satz Signale über eine Leitung 33 an die funktionelle Logik 24, wenn das Startsignal 90 auf logisch "1" übergeht. Einzelheiten der Arbeitsweise des Impulszuordners 34 und des Satzes Signale, die er abgibt, werden nachstehend anhand von Fig. 2A beschrieben. Sobald die Einrichtung 20 in einer kon­ kreten Vorrichtung verwirklicht ist oder gemäß den Beschränkungen einer vorgegebenen konkreten Vorrichtung ausgelegt ist, sind die Übertragungsverzögerungen der funktionellen Logik 24 und eine Taktrate des Pulszuordners 34 bekannt. Folglich sind die Ausgabe­ daten an dem Ausgangspuffer 26 in bekannter Zeit vorhanden, wenn die Eingangsdaten in den Eingangspuffer 22 getaktet sind.
Diese bekannte Zeit ändert sich jedoch etwas infolge von normalen Ausführungsschwankungen der konkreten Vorrichtung als Funktion der Temperatur und Alterung der Vorrichtung. Da jedoch der Im­ pulszuordner 34 vorzugsweise ein integraler Bestandteil der funk­ tionalen Logik 24 ist, wie unten noch beschrieben wird, machen sowohl der Impulszuordner 34 als auch die funktionelle Logik 24 dieselben Temperatur- und Zeitschwankungen durch. Folglich sind der Impulszuordner 34 und die funktionelle Logik 24 sehr gut an­ gepaßt und die funktionelle Logik 24 wird von dem Impulszuordner 34 weder "übertaktet" noch "untertaktet".
In Fig. 2A ist ein Blockdiagramm einer bevorzugten Ausführungsform eines Impulszuordners 34 gemäß der Erfindung dargestellt. Der Im­ pulszuordner 34 weist eine Startlogik 36, eine Verzögerungsein­ heit 38, einen Impulszähler 40 und eine Sequenz-Gatelogik 42 auf. Die Impulsrate, -dauer und -periodizität (wenn überhaupt) des Im­ pulszuordners 34 werden vorzugsweise für die funktionelle Logik 24 optimiert, welche er ansteuert. Der Impulszuordner 34 ist ebenfalls vorzugsweise mit Hilfe logischer Einrichtungen ausge­ führt, die der funktionellen Logik 24 angenähert sind, um so in entsprechender Weise auf Temperatur- und Alterungswirkungen anzu­ sprechen, wie oben ausgeführt ist.
Obwohl nur ein Impulszuordner 34 nachstehend beschrieben wird, um die gesamte funktionelle Logik 24 anzusteuern, könnten alternativ hierzu auch mehrere Impulszuordner 34 vorgesehen sein, um spezi­ fische Untergruppen der funktionellen Logik 34 mit verschiedenen Raten und zu verschiedenen Zeiten während der Operation der funk­ tionellen Logik 24 anzusteuern. In einer solchen alternativen Aus­ führungsform würde jeder der Impulszuordner 34 vorzugsweise den Startimpuls 104 erhalten.
Wenn das Startsignal 90 auf der Leitung 32 auf logisch "1" über­ geht, erzeugt die Startlogik 36 einen Rücksetz(1)-Impuls 105 (siehe Fig. 8) auf einer Leitung 48 und einen Startimpuls auf ei­ ner Leitung 35. Der Rücksetz(1)-Impuls 105 initialisiert den Im­ pulszähler 40. Einzelheiten der Startlogik 36 werden nachstehend anhand von Fig. 2B angegeben. Die Verzögerungseinheit 38 erhält den Startimpuls und erzeugt nach einer ersten bekannten Verzöge­ rung ein Ausgangssignal 133 der Verzögerungseinheit (siehe Fig. 8) auf der Leitung 39. Nach einer zweiten bekannten Verzögerung er­ zeugt die Verzögerungseinheit 38 ein Rückkopplungssignal 132 (siehe Fig. 8) auf einer Leitung 37. Einzelheiten der Verzöge­ rungseinheit 38 werden nachstehend anhand von Fig. 2C beschrieben.
Die Startlogik 36 erhält ein Rückkopplungssignal 132 über eine Leitung 37 und erzeugt ihrerseits den nächsten Startimpuls auf der Leitung 35, wodurch eine selbstgetaktete Schwingung erzeugt ist. Die Periode dieser selbstgetakteten Schwingung ist durch die Übertragungsverzögerungen festgelegt, die durch die Startlogik 36, die Verzögerungseinheit 38 und die Leitung 37 bedingt sind.
Vorzugsweise sind die Startlogik 36 und die Verzögerungseinheit 38 in einer RLD-Einheit untergebracht, so daß die Verzögerungs­ zeit, die auf der Leitung 37 beruht, minimiert ist. In einer bei­ spielhaften Ausführungsform mit einer FPGA der Xilinx XC4000-Se­ rie liegt die durch die Leitung 37 bedingte Verzögerung zwischen 1,7 ns und 2,2 ns, wenn übliche Anordnungsvorschriften angewendet werden, um CLB-Anordnungen zu definieren. Bei Erhalt eines Halte­ signals auf einer Leitung 41 von dem Impulszähler 40 stoppt die Startlogik 36 das Erzeugen von Startimpulsen auf der Leitung 35; folglich wird die selbstgetaktete Schwingung angehalten.
Der Impulszähler 40 erhält ein Ausgangssignal 133 von der Verzö­ gerungseinheit 38 auf der Leitung 39 und erzeugt dementsprechend ein Impuls zählen auf der Leitung 44 und das Haltesignal auf der Leitung 41. Der Impulszählstand wird über eine Leitung 43 auf den anfänglichen Impulszählstand (vorzugsweise "1") zurückgesetzt und wird jedesman inkrementiert, wenn das Ausgangssignal 133 von der Verzögerungseinheit wechselt. Sobald der Impulszählstand den größten Impulszählstand erreicht, erzeugt der Impulszähler 40 das Haltesignal auf der Leitung 41. Eine Leitung 44 besteht aus einer Anzahl binärer Bitleitungen, die ausreichen, um den größten Impulszählstand zu übertragen. Beispielsweise erfordert bei einer 16 Bit mal 16 Bit-Multiplikation der Impulszählstand acht Zustän­ de aus Gründen, die nachstehend noch beschrieben werden. Folglich muß die Leitung 44 aus mindestens drei binären Bitleitungen ge­ bildet sein, die hier als MUX(0) 92 (das niedrigstwertige Bit (LSB)), MUX(1) 94 und MUX(2) 96 (das höchstwertige Bit (MSB)) de­ finiert sind (siehe Fig. 8). Einzelheiten des Impulszählers 40 werden nachstehend anhand von Fig. 2D beschrieben.
Die Sequenz-Gate-Logik 42 erhält den Impulszählstand über eine Leitung 44 und das Ausgangssignal 133 der Verzögerungseinheit über die Leitung 39. Dementsprechend erzeugt die Logik 42 ein Rücksetz(2)-Signal 97 (siehe Fig. 8) auf einer Leitung 45, ein Partialprodukt-Summierer-Taktsignal (PPS-CLK) 98 (siehe Fig. 8), ein Produkt-Akkumulator-Takt(1)-Signal (PA-CLK(1)) 99 (siehe Fig. 8) auf einer Leitung 47, ein PA-CLK(2) 100 (siehe Fig. 8) auf einer Leitung 48 und eine PA-CLK(3)101 (siehe Fig. 8) auf einer Leitung 49. Jeder der Takte 98 bis 101 ist vorzugsweise ein Rechtecksignal, das von dem Impulszählstand und dem Ausgangs­ signal 133 der Verzögerungseinheit abgeleitet ist.
Das Impulszählsignal 44, das Rücksetz(2)-Signal 97, der PPS-CLK 46 und die PA-CLKs 47 bis 49 fungieren zusammen als der Satz Signale, die auf einer Leitung 33 an die funktionelle Logik 24 abgegeben worden sind, wie in Fig. 1 dargestellt ist. Gemäß dem selbst-getakteten Paradigma ist absichtlich keines der Signale des Satzes Signale, die an die Leitung 33 abgegeben worden sind, mit dem Referenztakt auf der Leitung 28 synchronisiert. Einzel­ heiten der Sequenz-Gate-Logik 42 werden nachstehend anhand von Fig. 2E beschrieben.
In Fig. 2B ist ein Blockdiagramm einer bevorzugten Ausführungsform der Startlogik 36 gemäß der Erfindung dargestellt. Die Startlogik 36 weist eine Gruppe von Logikeinrichtungen auf, die so, wie in Fig. 2B dargestellt, verbunden sind. In einer beispielhaften Aus­ führungsform, die mit Hilfe einer FPGA der Xilinx XC4000-Serie realisiert ist, weist die Startlogik 36 herkömmliche Xilinx-Pro­ grammelemente FDS, AND2B1, AND2B0 und OR2B1 auf.
In Fig. 2C ist ein Blockdiagramm einer bevorzugten Ausführungsform der Verzögerungseinheit 38 der Erfindung dargestellt. Die Verzö­ gerungseinheit 38 ist vorzugsweise in einer RLD-Einheit unterge­ bracht und besteht aus Übertrag-Logikelementen in einem Satz aus "n" CLBs 138, 144, 150, 154, wobei n eine ganze Zahl ist. Vor­ zugsweise weist jedes Übertraglogikelement eine Hochleistungs­ übertrag-Übertragungsschaltung auf. Die Verzögerungseinheit 38 weist zusätzlich eine Untergruppe der Funktionsgeneratoren in diesem Satz von n CLBs auf, um einen Signalleitweg zwischen der Verzögerungseinheit 38 und der Logik außerhalb der Verzögerungs­ einheit 38, nämlich der Startlogik 36, dem Impulszähler 40 und der Sequenz-Gate-Logik 42, zu erleichtern. In einer beispielhaf­ ten Ausführungsform ist die Verzögerungseinheit 38 in einer FPGA der Xilinx XC4000-Serie durch das Verwenden von Anweisungen "CI PRÜFEN" und "CI FORCIEREN" ausgeführt, was einem Prüfen bzw. For­ cieren eines Übertragsignals von einer vorhergehenden Stelle (carry-in signal) entspricht.
Die Logik, die in jedem CLB 138, 144, 150, 154 verwendet ist, ad­ diert eine bekannte Verzögerung (1,5 ns für ein Xilinx XC4000-Übertrag-Logik-Element und 4,5 ns für einen Xilinx XC4000-Funk­ tionsgenerators des F-Typs) zu derjenigen der Verzögerungseinheit 38. Die Operationsfrequenz der Verzögerungseinheit 38 wird vor­ zugsweise entweder durch Erhöhen oder Erniedrigen der Anzahl von in Reihe geschalteten Übertrag-Logikelementen geändert. In der bevorzugten Ausführungsform wird ein mit maximaler Rate selbst-getakteter Impulszuordner 34 gefordert.
Die Anzahl an CLBs 138, 144, 150, 154, welche die Verzögerungs­ einheit 38 aufweisen, hängt daher von dem langsamsten Teil der funktionellen Logik 24 ab. Wenn der langsamste Teil der funktio­ nellen Logik 24 "t" ns benötigt, dann weist die Verzögerungsein­ heit 38 "n" CLBs mit einer Gesamtverzögerung auf, die gleich ei­ ner Hälfte von "t" ns (d. h. einer halben Periode) ist. Da RLD in Realzeit umzuprogrammieren ist, kann die Verzögerung der Verzöge­ rungseinheit 38 dynamisch während des Verlaufs der Verarbeitungs­ operationen der funktionellen Logik 24 geändert werden. Dadurch kann ein erster Satz von Operationen der funktionellen Logik 24 mit einer ersten selbst-getakteten Rate durchgeführt werden, ein zweiter Satz von anderen Operationen der funktionellen Logik 24 kann mit einer zweiten selbstgetakteten Rate durchgeführt werden, usw.
In einer ersten CLB 138 erhält der Funktionsgenerator(1) 140 den Startimpuls auf der Leitung 35 und läßt den Impuls zu dem Über­ trag-Logikelement(1) 139 durch. Das Übertrag-Logikelement(1) 139 läßt dann den Impuls über eine Übertragleitung 142 zu einem zwei­ ten CLB 144 durch. In der zweiten CLB 144 erhält das Übertrag-Lo­ gikelement(2) 145 den Impuls und läßt ihn zu dem Funktionsgenera­ tor(2) 146 durch und überträgt auch den Impuls über die Austrag­ leitung 148 an einen dritten CLB 150. Nachdem der Impuls den Funktionsgenerator(2) 146 durchlaufen hat, kann der Impuls von der Verzögerungseinheit 38 an dieser Stelle "abgegriffen" werden, um so das Ausgangssignal 133 der Verzögerungseinheit auf der Lei­ tung 39 zu werden. Hierbei ist ein "Abgriff" als eine Verbindung in der Verzögerungseinheit 38 definiert, die einen Signalleitweg extern zu der Verzögerungseinheit 38 erleichtert.
Dieses "Abgreifen" ist als eine Verbindung in der Verzögerungs­ einheit 38 definiert, welche einen Signalleitweg außerhalb der Verzögerungseinheit 38 erleichtert. Dies "Abgeifen" kann auch an einer anderen Stelle in der Verzögerungseinheit 38 erfolgen oder kann an mehreren Stellen in Abhängigkeit von der zu implementie­ renden funktionellen Logik 24 erfolgen. Die genaue Position in der Verzögerungseinheit 38, wo die Leitung 39 abgegriffen wird, wird vorzugsweise so gewählt, daß die Signale, die auf der Lei­ tung 33 von dem Impulszuordner erzeugt worden sind, bezüglich der (nicht dargestellten) externen Schaltung, welche die Arbeitsweise der Einrichtung 20 initiiert, phasenabgeglichen sind, wie anhand von Fig. 1 ausgeführt ist.
In dem dritten konfigurierbaren Logikblock (CLB) 151 erhält das Übertrag-Logikelement(3) 151 den Impuls und läßt ihn zu einem Übertrag-Logikelement in einem nächsten CLB durch, usw., bis der Impuls zu dem Übertrag-Logikelement (n) in einem "n-ten" CLB 154 durchgekommen ist. Konfigurierbare Logikblöcke (CLBs) zwischen dem dritten CLB 150 und dem "n-ten" CLB 154 haben vorzugsweise dieselbe Ausführung und haben vorzugsweise dasselbe Interface, wie der dritte CLB 150. In dem dritten CLB 151 ist der Funktions­ generator(3) 152 für den Betrieb der Verzögerungseinheit 38 nicht erforderlich, da der dritte CLB 151 nicht abgegriffen wird, um den Impuls zu einem Bestimmungsort außerhalb der Verzögerungsein­ heit 38 zu leiten. Folglich kann der Funktionsgenerator(3) 152 vorzugsweise dazu verwendet werden, einen Teil der Operationen der funktionellen Logik 24 auszuführen.
In dem n-ten CLB erhält das Übertrag-Logikelement (n) 155 den Im­ puls und läßt ihn zu dem Funktionsgenerator(n) 156 durch, welcher den Impuls invertiert und den invertierten Impuls auf der Leitung 37 als das Rückkopplungssignal 132 abgibt. Aufgrund dieser Im­ pulsinversion hat der selbstgetaktete Oszillator Übergänge zwi­ schen logisch "1" und logisch "0". Wie dem Fachmann geläufig, könnte der Impuls statt dessen auch von dem Funktionsgenerator(1) 140 invertiert worden sein.
Die Betriebsfrequenz der Verzögerungseinheit 38 kann durch Erhö­ hen oder Erniedrigen der Anzahl an in Reihe geschalteten Über­ trag-Logikelementen (d. h. durch Ändern des Wertes von "n") geän­ dert werden. In einer alternativen Ausführungsform könnte "n" null sein, mit der Folge, daß der Startimpuls, das Rückkopplungs­ signal 132 und das Ausgangssignal 133 der Verzögerungseinheit daßelbe Signal werden. In einer weiteren alternativen Ausfüh­ rungsform könnte die Betriebsfrequenz der Verzögerungseinheit 38 durch einen zusätzlichen Signalweg über einen oder mehrere Funk­ tionsgeneratoren geändert werden.
In noch einer weiteren Ausführungsform könnte die Betriebsfre­ quenz der Verzögerungseinheit 38 mit Hilfe von Signalleitweg-Ressourcen in der RLD einige genau definierte Verzögerungs-Kenn­ daten haben, modifiziert oder eingestellt werden. Dem Fachmann ist bekannt, daß die Verzögerungseinheit 38 auch in nicht-rekon­ figurierbaren Einheiten mit Hilfe einer Logik untergebracht wer­ den könnte, in welcher einzelne Elemente eine bekannte maximale Signalübertragungsverzögerung haben.
In Fig. 2D ist ein Blockdiagramm einer bevorzugten Ausführungsform des Impulszählers 40 der Erfindung dargestellt. Der Impulszähler 40 ist aus einer Anzahl Logikeinheiten 160, 162, 164 gebildet (die vorzugsweise in einem FPGA der Xilinx XC4000-Serie mit Hilfe der Elemente ROM16x1, FDR und AND3B3 gebildet sind), wobei die logischen Einrichtungen 160, 162, 164 so, wie in Fig. 2D darge­ stellt, angeordnet miteinander verbunden sind. Die ROMs 160 sind mit Flip-Flops 162 verbunden, um dadurch das Impulszählen durch­ zuführen. Ein vorliegender Zustandscode Q3, Q2, Q1, Q0 der Flip-Flops 162 wird dazu verwendet, den Impulszählstand zu erzeugen, wobei ein vorliegender Zustandscode dem Haltesignal 134 ent­ spricht. Der Impulszähler 40 inkrementiert, bis der Rücksetz(1)-Impuls 105 auf der Leitung 43 erhalten wird. Die Codes, die in den ROM′s 160 zu speichern sind, werden entsprechend der folgen­ den Tabelle erzeugt, in welcher der vorliegende sowie der nächste Zustand wiedergegeben sind:
In Fig. 2E ist ein Blockdiagramm einer bevorzugten Ausführungsform einer Sequenz-Gate-Logik 42 der Erfindung dargestellt. Die Se­ quenz-Gate-Logik 42 ist durch eine Anzahl Logikeinheiten gebil­ det, die so, wie in Fig. 2E dargestellt, angeordnet und miteinan­ der verbunden sind (die logischen Einheiten sind vorzugsweise partiell in einer FPGA der Xilinx XC4000-Serie mit Hilfe der Ele­ mente D3_8E, AND2B1, FD, FD_1, NOR2, OR8 und OR7) gebildet. Die Sequenz-Gate-Logik 42 decodiert acht Zustände mit Hilfe einer An­ zahl von Störungs-Überwachungsschaltungen 170, wie in Fig. 2E dar­ gestellt ist. Das Decodieren erfolgt zeitlich in der Reihenfolge des Impulszählens auf der Leitung 44. Der letzte Impulszählzu­ stand (d. h. (0,0,0)) wird genau zu einem Zeitpunkt decodiert. Die CLKs 46, 47, 48 werden durch ein "Oder-Schalten" der Ausgänge der Störungsüberwachungsschaltung 170 erzeugt. Fachleuten, die den Aufbau der FPGA kennen, ist bekannt, daß in alternativen Ausfüh­ rungsformen der Sequenz-Gate-Logik 42 die verdrahteten ODER-Glie­ der durch verdrahtete UND-Glieder mit Hilfe einer DeMorganisation der lokalen Zustandsdecodierer ersetzt werden. Die bevorzugten Sequenz-Gate-Logik 42 weist eine gerade Anzahl von durch eine ne­ gative Flanke getriggerten Flip-Flops und von durch eine positive Flanke getriggerten Flip-Flops auf, die ein hocheffizientes dua­ les Flip-Flop pro CLB-Packungsstrategie liefern, wobei gleiche getaktete Flip-Flops verbunden sind.
In Fig. 3 ist ein Blockdiagramm einer bevorzugten Ausführungsform einer funktionellen Logik 24 der Erfindung dargestellt. Die funk­ tionelle Logik 24 weist einen Multiplexer (MUX) 50, einen par­ tiellen Produktgenerator (PPG) 42, einen partiellen Produkt-Sum­ mierer (PPS) 54 und eine Produktakkumulator (PA) 56 auf. Der Mul­ tiplexer 50 erhält einen X-Bit-Multiplikanden auf der Leitung 21 und gibt eine S-Bit-Multiplikanden-Untergruppe entsprechend dem Impulszählen auf der Leitung 44 ab, wie im einzelnen anhand von Fig. 4 nachstehend beschrieben wird. Der PP-Generator 52 multipli­ ziert den Y-Bit-Multiplikator auf der Leitung 23 mit der S-Bit-Multiplikanden-Untergruppe und gibt einen Satz partieller Produk­ te an den PP-Summierer 54 ab, wie im einzelnen nachstehend anhand von Fig. 5 beschrieben wird.
Der PP-Summierer 54 verknüpft den Satz partieller Produkte und gibt eine partielle Produktsumme an den Produktakkumulator 56 entsprechend dem PPS-CLK 98 auf der Leitung 46 ab, wie im einzel­ nen anhand von Fig. 6 nachstehend beschrieben wird. Der P-Akkumu­ lator 56 erhält einen Rücksetz(2)-Impuls 207 (siehe Fig. 8) auf der Leitung 45 von der Startlogik 36 und setzt dementsprechend dessen interne Flip-Flops (FFs) auf null. Vor dem Empfang dieses Rücksetz(2)-Impulses 107 verbleibt ein vorheriges P-Bit-Produkt auf der Leitung 25. Der P-Akkumulator 56 erzeugt eine Produktak­ kumulation, indem die partielle Produktsumme zu einer Untergruppe von Produkt-Akkumulationsbits addiert wird, und gibt ein P-Bit-Produkt auf der Leitung 25 entsprechend dem PA-CLK (1,2,3) 99, 100, 101 (siehe Fig. 8) auf Leitungen 47 bis 49 ab, wie im einzel­ nen anhand von Fig. 7 nachstehend beschrieben wird. Eine vollstän­ dige Multiplikation X-Bit mal Y-Bit wird von der funktionellen Logik 24 durchgeführt, nachdem jede S-Bit-Multiplikanden-Unter­ gruppe mit dem Y-Bit-Multiplikator multipliziert und durch den P-Akkumulator 56 akkumuliert worden ist.
In Fig. 4 ist ein Blockdiagramm einer bevorzugten Ausführungsform des Multiplexers (MUX) 50 in der funktionellen Logik 24 darge­ stellt. Der MUX 50 weist einen ersten MUX 58 und einen zweiten MUX 60 auf. Jeder MUX 58, 60 ist mit dem Eingangspuffer 22 über die Leitung 21 verbunden, so daß jeder eine Hälfte des X-Bit-Mul­ tiplikanden erhält. Der erste MUX 58 erhält die geradzahligen Multiplikanden-Bits (d. h. 2⁰, 2², . . . 2¹⁴ für einen 16 Bit-Multi­ plikanden) während der zweite MUX 60 die ungeradzahligen Multi­ plikanden-Bits (d. h. 2¹, 2³, . . . 2¹⁵ für einen 16-Bit-Multipli­ kanden) erhält. Jeder MUX 58, 60 erhält den Impulszählstand über die Leitungen 44.
Im Verlaufe der Multiplikation von X-Bit mal Y-Bit wird der Im­ pulszählstand von dem Anfangsimpulszählstand bis einschließlich auf den höchsten Impulszählstand inkrementiert. Im Falle eines 16 Bit-Multiplikanden entspricht der Anfangsimpulszählstand vorzugs­ weise (0,0,1) auf der Leitung 44, wobei "1" das niedrigstwertige Bit (LSB) ist, und der höchste Impulszählstand vorzugsweise (0,0,0) entspricht. Der Impulszählstand geht folglich von (0,0,1) auf (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1) und dann (0,0,0).
Die ersten und zweiten Multiplexer 58, 60 geben eine S-Bit-Multi­ plikanden-Untergruppe an den PP-Generator 52 ab. Folglich wird eine 2-Bit-Multiplikanden-Untergruppe (2i und 2i+1) an den PPG 52 gesetzt, wobei das Bit 2i aus dem ersten MLJX 58 und das Bit 2i+1 aus dem zweiten MUX 60 gewählt wird. Für eine Multiplikation 16 Bit mal 16 Bit ist "S" gleich "2" und "i" ist eine ganze Zahl, welche vorzugsweise von null bis vierzehn geht, wenn der Im­ pulszählstand von (0,0,1) bis (0,0,0) reicht.
In Fig. 5 ist ein Blockdiagramm einer bevorzugten Ausführungsform des partiellen Produktgenerators (PPG) 42 in der funktionellen Logik dargestellt. Der PPG 52 weist eine erste Gruppe von par­ tiellen Produktmultiplikatoren (PPMs) 51 und eine zweite Gruppe von PPMs 53 auf, deren Eingänge miteinander verbunden sind, um die S-Bit-Multiplikanden-Untergruppe von den ersten und zweiten Multiplexern 58, 60 und dem Y-Bit-Multilikator auf der Leitung 23 aufzunehmen. Die Ausgänge der ersten und zweiten Gruppe von PPMs 51, 53 sind mit dem PPS 54 verbunden. Für eine Multikplikation 16 Bit mal 16 Bitt weist jede Gruppe von PPMs 51, 53 vier PPMs 2 Bit mal 2 Bit auf, die parallen betrieben werden, so daß folglich insgesamt 32 Bits nach jeder Multiplikation an den PPS 54 abgege­ ben werden.
Jedes 2 Bit-Multiplikatorpaar von dem 16 Bit-Multiplikator auf der Leitung 23 wird zu einem der acht PPMs geleitet und während jeder partiellen Produkt-Multiplikationsoperation konstant gehal­ ten. Für jeden Impulszählstand wird eine 2-Bit-Multiplikanden-Un­ tergruppe (d. h. 2i und 2i+1) zu jedem der acht PPMs geleitet, wo­ bei mit einem ersten 2-Bit-Multiplikandenpaar (2⁰ und 2¹) begon­ nen wird, wenn der Impulszählstand auf eins gesetzt ist, und en­ det mit einem letzten 2-Bit-Multiplikandenpaar (2¹⁴ und 2¹⁵), wenn der Impulszählstand auf null gesetzt ist.
Wie in Fig. 5 zur Verdeutlichung dargestellt ist, sind die Spal­ tenpositionen der zwei 16-Bit-Partialprodukte von der ersten und zweiten Gruppe von PPMs 51, 53 vertikal ausgerichtet, wenn deren Bits von dem PPS 54 addiert werden, wie es im Stand der Technik bekannt ist. Das Bit 2° ist das niedrigswertige Bit (LSB) und das Bit 2¹⁷ ist das höchstwertige Bit (MSB). Obwohl eine 16 Bit mal 16 Bit-Partialproduktgeneration beschrieben worden ist, weiß der Fachmann, daß dieselbe Beschreibung analog auch bei dem allgemei­ nen Fall einer Partialproduktgeneration von X-Bit mal Y-Bit gilt.
In Fig. 6 ist ein Blockdiagramm einer bevorzugten Ausführungsform des PPS 54 in der funktionellen Logik 24 dargestellt. Der PPS 54 weist einen PPS-Addierer 24, eine PPS-Inkrementiereinheit 66 und einen Satz PPS-Flip-Flops 68 auf. Der PPS 54 ist entsprechend ge­ schaltet, um die zwei Partialprodukte zu erhalten, die von dem PPG 52 erzeugt worden sind. Der PPS 54 addiert die zwei Partial­ produkte und erzeugt eine Partialproduktsumme. Im Falle einer Multiplikation 16 Bit mal 16 Bit werden die zwei LBSs (2⁰ bis 2¹) von dem ersten Satz PPMs 51 unmittelbar von den PPS-Flip-Flops 68 aufgenommen; der PPS-Addierer 64 addiert 14 Bit (2² bis 2¹⁵) so­ wohl von dem ersten als auch von dem zweiten Satz PPMs 51, 52; die PPS-Inkrementiereinheit 66 nimmt die zwei MSBs (2¹⁶ bis 2¹⁶) von dem zweiten Satz PPMs 53 und einen Übertrag von dem 14 Bit-PPS-Addierer 64 an; eine 18-Bit-Partialproduktsumme (2° bis 2¹⁷) wird erzeugt und abgegeben. Die Partialproduktsumme, die sich aus der Addition ergibt, wird in den PPS-Flip-Flops 68 entsprechend einem PPS-CLK 98 auf der Leitung 46 gespeichert.
In Fig. 7 ist ein Blockdiagramm einer bevorzugten Ausführungsform des P-Akkumulators (PA) 58 in der funktionellen Logik 24 darge­ stellt. Der PA 56 weist einen PA-Addierer 70, der entsprechend geschaltet ist, um die Partialproduktsumme von dem PPS 54 aufzu­ nehmen und um Akkumulationen durchzuführen, eine PA-Inkrementier­ einheit 71, und eine Gruppe von PA-Flip-Flops 72 bis 88 auf, um schließlich das P-Bit-Produkt zu speichern.
Für eine Multiplikation 16 Bit mal 16 Bit ist der PA-Addierer 70 ein 16 Bit-Addierer; die PA-Inkrementiereinheit 71 ist eine 2 Bit-Inkrementiereinheit und der Satz PA-Flip-Flops 72 bis 88 weist einen ersten Flip-Flop-Satz 72, einen zweiten Flip-Flop-Satz 74, einen dritten Flip-Flop-Satz 76, einen vierten Flip-Flop-Satz 78, einen fünften Flip-Flop-Satz 80, einen sechsten Flip-Flop-Satz 82, einen siebten Flip-Flop-Satz 84, einen achten Flip-Flop-Satz 86 und einen neunten Flip-Flop-Satz 88 auf, um ein 32 Bit-Produkt (p⁰ bis p³¹, wobei p⁰ das LSB und p³¹ das MSB ist) zu speichern.
Die zwei LSBs 2⁰ bis 2¹ von einer ersten Partialproduktsumme, die von dem PPS 54 erhalten worden sind, werden in dem zweiten Flip- Flop-Satz 74 entsprechend der Anstiegsflanke des PA-CLK(1) 99 auf der Leitung 47 gespeichert, wodurch die zwei LSBs (p⁰ bis p¹) des 32 Bit-Produkts entstehen. Eine 16 Bit-Produktakkumulations-Un­ tergruppe (Bits 22 bis 217 von dem Ausgang des 16 Bit-Addierers 70 und der 2 Bit-Inkrementiereinheit 71) wird in dem ersten Flip-Flop-Satz 72 entsprechend der Vorderflanke des PA-CLK(2) 100 auf der Leitung 48 gespeichert. Der 16 Bit-Addierer 70 addiert Bits 20 bis 215 jeder Partialproduktsumme, die von dem PPS 54 erhalten worden ist, zu der 16 Bit-Produktakkumulations-Untergruppe, um eine Produktakkumulation zu erzeugen (Bits 20 bis 216 von dem Ausgang des 16 Bit-Addierers 70 und der 2 Bit-Inkrementiereinheit 71).
Die Bits 22 bis 217 jeder Produktakkumulation werden dann die Produktakkumulations-Untergruppe, welche zu dem ersten Flip-Flop-Satz 72 rückgekoppelt wird, während Produktakkumulationsbits 2⁰ und 2¹ sequentiell nach jeder Produktakkumulation über die drit­ ten bis neunten Flip-Flop-Sätze 76 bis 88 entsprechend einer An­ stiegsflanke des PA-CLK(3) 101 auf der Leitung 49 verschoben wer­ den. Folglich werden nach einem PA-CLK(1) 99-Wechsel Bits p⁰ und p¹ in dem zweiten Flip-Flop-Satz 74 gespeichert. Nach acht PA-CLK(2) 100-Wechsel werden Bits p¹⁶ bis p³¹ in dem ersten Flip-Flop-Satz 72 gespeichert und nach sieben PA-CLK(3) 101-Wechsel werden Bits p² und p³ in dem neunten Flip-Flop-Satz 88, Bits p⁴ und p⁵ in dem achten Flip-Flop-Satz 86, Bits p⁶ und p⁷ in dem siebten Flip-Flop-Satz 84, Bits p⁸ und p⁹ in dem sechsten Flip- Flop-Satz 82, Bits p¹⁰ und p¹¹ in dem fünften Flip-Flop-Satz 80, Bits p¹² und p¹³ in dem vierten Flip-Flop-Satz 78 und Bits p¹⁴ und p¹⁵ werden in dem dritten Flip-Flop-Satz 76 gespeichert. Das 32 Bit-Produkt (Bit p⁰ bis p³¹) wird dann an den Ausgangspuffer 26 über die Leitung 25 abgegeben.
In Fig. 8 ist ein bevorzugtes Zeitdiagramm 89 der Arbeitsweise der Erfindung dargestellt. Die in Fig. 8 dargestellten Wellenformen sind idealisiert und folglich werden logische Wirkungen betrach­ tet, die im Augenblick eines Zustandsübergangs auftreten. Das Zeitdiagramm 89 weist ein Startsignal 90, ein Q-Startsignal 128, ein Start-Impulssignal 130, ein Rückkopplungssignal 132, ein Aus­ gangssignal 133 der Verzögerungseinheit, ein Haltesignal 134, ein Rücksetz(1)-Signal 91, ein MuX(0)-Signal 92, ein MUX(1)-Signal 94, ein MUX(2)-Signal 96, ein PPS-CLK-Signal 98, ein Rücksetz(2)-Signal 97, ein PA-CLK(1)-Signal 99, ein PA-CLK(2)-Signal 100, ein PA-CLK(3)-Signal 101, ein Produktsignal 102, ein erstes Start­ signal 104, ein nächstes Startsignal (106) ein erstes PPS-CLK-Signal 108, ein ersten PA-CLK(1)-Signal 109, ein erstes PA-CLK(2)-Signal 110, ein erstes PA-CLK(3)-Signal 112 und eine Pro­ duktberechnungszeit 114 auf.
Das erste Startsignal 104 wird von dem Impulszuordner 34 über die Leitung 32 erhalten, wie in Fig. 2A dargestellt ist. Entsprechend dem ersten Startsignal 104 initialisiert die Startlogik 36 das MUX(0) 92 (das LSB)-, das MUX(1) 94- und das MUX(2) 96 (das MSB)-Signal bei (0,0,1), indem der Rücksetz(1)-Impuls 105 über die Leitung 143 und die MUX(0) 92-, MUX(1) 94- und die MUX(2)96-Signale an den MUX 50 über die Leitung 44 gesendet werden. Dementspre­ chend wählt der MUX 50 das erste 2 Bit-Multiplikandenpaar (2⁰ bis 2¹) für eine Multiplikation 16 Bit mals 16 Bit aus, wie oben er­ örtert ist. Die Sequenz-Gate-Logik 72 verzögert das Abgeben des ersten PPS-CLK-Signals 108 an den PPS 54, bis eine erste 18 Bit-Partialproduktsumme an den Eingängen der PPS-Flip-Flops 68 vor­ handen ist.
Nachdem die ersten 18 Bit-Partialproduktsumme in den PPS-Flip-Flops 68 gespeichert worden ist, werden die MUX(0) 92-, MUX(1) 94- und die MUX(2)-Signale in einen nächsten Zustand (d. h. (0,1,0)) in Vorbereitung einer nächsten 18 Bit-Partialproduktsum­ me inkrementiert. Die Sequenz-Gate-Logik 42 verzögert auch das Aussenden des ersten PA-CLK(1)-Signals 109 über die Leitung 47, bis die erste 18 Bit-Partialproduktsumme an den Eingängen des zweiten Flip-Flop-Satzes 74 anliegt. Unmittelbar bevor der PA-CLK(1)-Impuls 109 über die Leitung 47 abgegeben wird, erzeugt die Startlogik 36 den Rücksetz(2)-Impuls 107 über die Leitung 45, um das vorherige P-Bit-Produkt 102 zu löschen.
Der PA-CLK(1) 99 wird einmal bei jeder vollständigen 16 Bit mal 16 Bit-Multiplikationsoperation gewechselt bzw. umgeschaltet. Das erste PA-CLK(2)-Signal 110 auf der Leitung 48 wird nur erzeugt, nachdem eine erste 16 Bit-Produktakkumulations-Untergruppe an den Eingängen 72 des ersten Flip-Flop-Satzes 72 anliegt, worauf der PA-CLK(2) 100 geschaltet wird, jedesmal wenn eine nächste 16 Bit-Produktakkumulations-Untergruppe an den Eingängen des ersten Flip-Flop-Satzes 72 anliegt. Der PA-CLK(2) 100 wird acht mal pro jeder vollständigen 16 Bit mal 16 Bit-Multiplikationsoperation umgeschaltet. Das erste PA-CLK(3)-Signal 112 auf der Leitung 49 wird nur erzeugt, nachdem eine zweite 18 Bit-Produktakkumulation an den Eingängen des dritten Flip-Flop-Satzes 76 anliegt, worauf der PA-CLK(3) 101 umgeschaltet wird, jedesmal, wenn eine nächste 18 Bit-Produktakkumulation an den Eingängen des dritten Flip-Flop-Satzes 72 anliegt.
Der PA-CLK(3) 101 wird sieben mal für jede vollständige 16 Bit mal 16 Bit-Multiplikationsoperation umgeschaltet. Infolge der be­ kannten Übertragungsverzögerungen, die in einer konkreten Ein­ richtung vorliegen, die in der vorliegenden Erfindung verwendet wird, ist das Produkt 102 bekannt, das in der Produktberechnungs­ zeit 114 zu berechnen ist. Folglich gibt es einen ersten Zeit­ punkt nach dem ersten Startsignal 104, an welchem das zweite Startsignal 106 an den Impulszuordner 34 abgegeben werden kann, nachdem sich das Produktsignal 102 stabilisiert hat. Obwohl nur eine 16 Bit mal 16 Bit-Multiplikation beschrieben worden ist, weiß der Fachmann, daß in entsprechender Weise eine X-Bit mal Y-Bit-Multiplikation durchgeführt werden kann.
In Fig. 9A ist eine Matrix von bevorzugten Partialproduktadditio­ nen für eine 16 Bit mal 16 Bit-Multiplikation dargestellt, die gemäß der Erfindung durchgeführt worden ist. Für diese 16 Bit mal 16 Bit-Multiplikation geht der PPS 54 über acht Summiervorgänge und der PA 56 geht über sieben Akkumulationen, so daß sich schließlich ein 32 Bit-Produktausgangssignal auf der Leitung 25 an dem Ausgangspuffer 26 ergibt, wie vorstehend ausgeführt ist. In der obersten Zeile der Matrix ist eine Spalte für jedes Bit des 32 Bit-Produkts dargestellt, wobei das niedrigistwertige Bit (LSB) 2⁰ und das höchstwertige Bit (MSB) 2³¹ ist. Bezüglich der Teile der Matrix, die mit "I" bis "VIII" bezeichnet sind, ist ein Abgleich der acht Partialprodukt-Multiplikatoren 62 in dem PPG 52 dargestellt. Im Teil "I" werden Bits 2⁰ und 2¹ der 16 Bit-Multi­ plikanden mit dem 16 Bit-Multiplikator multipliziert; im Teil "II" werden Bits 2² und 2³ des 16 Bit-Multiplikanden mit dem 16 Bit-Multiplikator multipliziert, und so weiter, bis im Teil "VIII" Bits 2¹⁴ und 2¹⁵ der 16 Bit-Multiplikanden mit dem 16 Bit-Multiplikator multipliziert werden. Der P-Akkumulator 56 addiert alle acht Teil in der Weise, die in der Matrix wiedergegeben ist, wodurch sich das 32 Bit-Produkt ergibt.
In Fig. 9B ist eine Matrix von bevorzugten Partialprodukt-Additio­ nen für eine gemäß der Erfindung durchgeführte 8 Bit mal 8 Bit-Multiplikation dargestellt. Für die 8 Bit mal 8 Bit-Multiplika­ tion würde der PPS 54 entsprechend ausgelegt, um über vier Sum­ mierungen zu gehen und der PR 56 würde über drei Akkumulationen gehen, so daß sich schließlich ein 16 Bit-Produkt ergibt, das über die Leitung 25 an den Aufgabepuffer 26 abgegeben wird, wie oben ausgeführt ist. In der obersten Zeile der Matrix ist eine Spalte für jedes Bit des 16 Bit-Produkts dargestellt, wobei das LSB 2⁰ und MSB 2¹⁵ ist. An den Teilen der Matrix, die mit "1" bis "IV" bezeichnet sind, ist ein Abgleich der nunmehr vier Par­ tialprodukt-Multiplikatoren 62 in dem PPG 52 dargestellt. Im Teil"I" werden Bits 2⁰ und 2¹ des 8 Bit-Multiplikanden mit dem 8 Bit-Multiplikator multipliziert; in Teil "II" werden Bits 2² und 2³ des 8 Bit-Multiplikanden mit dem 8 Bit-Multiplikator multipli­ ziert, usw., bis im Teil "IV" Bits 2⁶ und 2⁷ des 8 Bit-Multipli­ kanden mit dem 8 Bit-Multiplikator multipliziert werden. Der PA 56 addiert vier Teile in der in der Matrix angegebenen Weise, wo­ durch sich dann das 16 Bit-Produkt ergibt.
In Fig. 10 ist ein Ablaufdiagramm eines bevorzugten Verfahrens für eine selbst-getaktete algorithmische Ausführung dargestellt. Das bevorzugte Verfahren beginnt beim Schritt 200, bei welchem ein Wechsel des Referenztaktes, während das eingegebene Freigabe­ signal auf der Leitung 29 logisch "1" gesetzt wird, bewirkt, daß der Eingangspuffer 22 die Eingangsdaten über Leitungen 21 und 23 an die Eingänge der funktionellen Logik 24 synchron mit dem Refe­ renztakt-Umschalten in der vorstehend beschriebenen Weise über­ trägt. Als nächstes erzeugt beim Schritt 202 und entsprechend dem Übergang des Startsignals 30 von logisch "0" auf logisch "1" auf der Leitung 32 der Impulszuordner 34 eine Maximalraten-Impulsfol­ ge über die Leitung 33, um die funktionelle Logik 24 mit einer Rate in Abhängigkeit von der Algorithmus-Ausführungszeit für die funktionelle Logik 24, aber unabhängig von dem Referenztakt auf der Leitung 28 anzusteuern.
Schritt 202 wird im einzelnen anhand von Fig. 11 beschrieben. Beim Schritt 204 erzeugt die funktionelle Logik 24 Ausgangsdaten auf der Leitung 25 entsprechend der Maximalraten-Impulsfolge auf der Leitung 33. Schritt 204 wird im einzelnen anhand von Fig. 12 be­ schrieben. Beim Schritt 206 werden die Ausgangsdaten von der funktionellen Logik 24 über die Leitung 25 und in den Ausgang­ spuffer 26 synchron mit und entsprechend einem Umschalten des Re­ ferenztaktes auf der Leitung 28 übertragen, während das Ausgangs­ freigabesignal auf der Leitung 31 auf logisch "1" gesetzt wird, wie vorstehend beschrieben ist. Nach dem Schritt 206 endet das bevorzugte Verfahren.
In Fig. 11 ist ein Ablaufdiagramm eines bevorzugten Verfahrens zum Erzeugen einer Impulsfolge (Schritt 202 der Fig. 10) dargestellt. Das bevorzugte Verfahren beginnt bei Schritt 250, wobei die Startlogik 36 den Zustand des Startsignals auf der Leitung 32 und des Haltesignals auf der Leitung 41 überwacht. Bei Schritt 252 geht, wenn das Startsignal 90 auf logisch "1" übergeht, während das Haltesignal auf logisch "0" gesetzt bleibt, das Verfahren auf Schritt 254 über; sonst geht das Verfahren auf Schritt 250 zu­ rück. Beim Schritt 254 initialisiert die Startlogik 36 den Im­ pulszähler 40, wie oben ausgeführt ist. Beim Schritt 255 über­ trägt die Startlogik 36 einen Startimpuls an die Verzögerungsein­ heit 38, wie oben beschrieben ist.
Als nächstes inkrementiert beim Schritt 256 der Impulszähler 40 das Impulszählsignal (d. h. MUX(0) 92, MUX(1) 94 und MUX(2) 96 für eine 16 Bit mal 16 Bit-Multiplikation) entsprechend dem Aus­ gangssignal 133 der Verzögerungseinheit, wie oben beschrieben ist. Die Stelle in der Verzögerungseinheit 38, an welcher das Ausgangssignal 133 der Verzögerungseinheit abgegriffen wird, kann geändert werden, um die Zeitsteuerimpulse des Impulszuordners 34 bezüglich einer externen Schaltungsanordnung, die mit der Ein­ richtung 20 verbunden ist, in der Phase abzugleichen.
Beim Schritt 258 erzeugt die Sequenz-Gate-Logik 42 das PPS-CLK-Signal 98 und die PA-CLK-Signale 99 bis 101 entsprechend dem Im­ pulszählsignal in der vorstehend beschriebenen Weise. Beim Schritt 260 geht, wenn das Impulszählsignal gleich dem größten Impulszählsignal ist, das Verfahren auf Schritt 262 über; andern­ falls geht das Verfahren auf Schritt 256 zurück. Beim Schritt 262 stoppt der Impulszähler 40 mit dem Übertragen von Startimpulsen an die Verzögerungseinheit 38, indem das Haltesignal auf Leitung 41 auf logisch "1" gesetzt wird. Nach dem Schritt 262 endet das bevorzugte Verfahren.
In Fig. 12 ist ein Ablaufdiagramm eines bevorzugten Verfahrens zum Erzeugen von Ausgangsdaten entsprechend der Impulsfolge (Schritt 204 in Fig. 12) dargestellt. Das bevorzugte Verfahren beginnt bei Schritt 300, wobei der MUX 50 den X-Bit-Multiplikanden eingibt, der PPG 52 den Y-Bit-Multiplikator eingibt und die Startlogik 36 die Partialproduktsumme und die Produktakkumulation auf null ini­ tialisiert, wie oben beschrieben ist. Beim Schritt 302 wählt der MUX 50 eine nächste S-Bit-Multiplikanden-Untergruppe in der vor­ beschriebenen Weise aus. Beim Schritt 304 multipliziert der PPG 52 eine aktuelle S-Bit-Multiplikanden-Untergruppe (d. h. die ak­ tuelle Untergruppe ist die nächste Untergruppe, die beim Schritt 302 gewählt wurde) mit dem Y-Bit-Multiplikator, um die an den PPS 54 abgegebenen Partialprodukte zu erzeugen, wie vorstehend be­ schrieben ist.
Als nächstes erzeugt beim Schritt 306 der PPS 54 die Partialpro­ duktsumme und gibt sie in der vorbeschriebenen Weise an den PA 56 ab. Beim Schritt 308 addiert der PA 56 die Partialproduktsumme zu der Produktakkumulation, wie oben beschrieben ist. Beim Schritt 310 kehrt, wenn eine nächste, S-Bit-Multiplikanden-Untergruppe noch mit dem Y-Bit-Multiplikator zu multiplizieren ist, das Ver­ fahren auf Schritt 302 zurück; andernfalls geht das Verfahren auf Schritt 312 über. Beim Schritt 312 gibt der PA 56 ein P-Bit-Pro­ dukt an den Ausgangspuffer 26 ab. Nach dem Schritt 312 endet das bevorzugte Verfahren.
Die Erfindung wird vorzugsweise in Verbindung mit einem Rechensy­ stem verwendet. Beim Stand der Technik sind Schaltungen, die ent­ sprechend ausgelegt sind, um hochschnelle Implementierungen von ganz speziellen Algorithmen durchzuführen, aus mehreren Schal­ tungsschichten gebildet. Jede Schaltungsschicht erhält einen Satz Signale, führt ganz bestimmte Operationen durch und gibt einen Satz Ergebnisse synchron mit einem Taktimpuls ab. Signale werden von einer Schaltungsschicht zur anderen übertragen. Solche bekann­ ten Schaltungsausführungen erfordern oft viele Schaltungsschich­ ten, wozu eine große Anzahl von Hardware-Ressourcen verwendet werden müssen, was unerwünscht ist.
Im Unterschied zum Stand der Technik wird bei der Erfindung ein Algorithmus ausgeführt, indem eine minimale Anzahl von Hardware-Ressourcen immer wieder mit einer maximalen selbstgetakteten Rate verwendet wird, um ein Ergebnis zu erhalten. Das heißt, dieselbe Menge an Hardware-Ressourcen wird wiederholt nach Empfang des Startsignals bis zum Vorliegen des Haltesignals verwendet, um ein Ergebnis zu erzielen. Gemäß der Erfindung ist ein Mittel geschaf­ fen, um einen Algorithmus mit Hilfe erheblich weniger Hardware-Ressourcen durchzuführen, als sie bei den bekannten Hochlei­ stungsschaltungen erforderlich sind. Dies ist insbesondere vor­ teilhaft, wenn ein oder mehrere Versionen der Erfindung in einer RLD implementiert werden.
Die vorstehend beschriebene Erfindung liefert viele weitere Vor­ teile gegenüber den derzeit existierenden logischen Konzeptionen. Die Erfindung ist insbesondere vorteilhaft im Hinblick auf ak­ tuelle asynchrone Logikkonzeptionen. Beispielsweise erfordert die vorliegende Erfindung nicht das Erzeugen von "Abschlußsignalen" bei Beenden von operationellen Aufgaben; sie hat bekannte und voraussagbare Abschlußzeiten; sie erfordert keine externen Takt­ elemente, sondern hat statt dessen ihr eigenes integrales Impuls­ zuordner-Zeitsteuerelement; sie hat Abschlußzeiten, welche daten­ unabhängig sind; sie kann sich synchron mit einer externen Schal­ tungsanordnung kombinieren lassen; sie kann kohärent Phasendaten mit einer externen Schaltungsanordnung austauschen; sie erhöht nur eine zusätzliche örtlich festgelegte Schaltungskomplexität, wenn die Verzögerung in dem Zeitsteuerelement zunimmt; sie ist sehr leicht in einer synchronen externen Schaltungsanordnung un­ terzubringen und sie beeinflußt das Leistungsvermögen nur einer örtlich begrenzten Schaltungsgruppe statt eines ganzen Systems einer externen Schaltungsanordnung.
Modifikationen der Erfindung können alternative Ausführungsformen ergeben. Beispielsweise könnte die Verzögerungseinheit 28 ent­ sprechend ausgelegt werden, damit ein Impuls entsprechend der RDL-Konfiguration kontinuierlich zurückgeführt wird; dadurch ent­ fällt die Startlogik 36. In einer derartigen Ausführungsform könnte ein RS-Flip-Flop einen Multiplexer freigeben, damit er das Ausgangssignal der Verzögerungseinheit zu dem Impulszähler und der Sequenz-Gate-Logik 32 entsprechend dem Startsignal passieren läßt. Somit ist die funktionelle Logik nicht auf den Fall einer selbst getakteten Multipliziereinheit beschränkt. Die funktionel­ le Logik kann entsprechend modifiziert werden, um Funktionen ein­ schließlich eines selbstgetakteten Teilers, eines selbstgetakte­ ten Convolvers oder eines selbst getakteten Signalprozessors zu schaffen, ohne hierauf beschränkt zu werden.

Claims (21)

1. Einrichtung für eine selbstgetaktete algorithmische Ausführung mit
einer funktionellen Logikeinheit, die vorgesehen ist, um Ein­ gangsdaten mit einer ersten Rate zu erhalten, um Ausgangsdaten mit einer zweiten Rate unabhängig von der ersten Rate zu erzeu­ gen, und welche ferner vorgesehen ist, um die Ausgangsdaten mit der ersten Rate zu übertragen, und
einem Impulszuordner zum Erzeugen einer selbstgetakteten Impuls­ folge, welche der zweiten Rate entspricht, wobei der Impulszuord­ ner entsprechend geschaltet ist, um die funktionelle Logik zu steuern.
2. Einrichtung nach Anspruch 1, bei welcher die funktionelle Lo­ gikeinheit eine vorausgesagte Ausführungszeit hat und die zweite Rate eine maximale Rate ist, die auf der vorausgesagten Ausfüh­ rungszeit basiert.
3. Einrichtung nach Anspruch 1, bei welcher die funktionelle Lo­ gikeinheit und der Impulszuordner in einer Gruppe von Hardware-Ressourcen festgelegt sind, um sympathetisch auf Betriebsparame­ terschwankungen der Hardware-Ressourcen anzusprechen.
4. Einrichtung nach Anspruch 1, bei welcher der Impulszuordner eine Verzögerungseinheit aufweist, welche eine selbstgetaktete Schwingung erzeugt.
5. Einrichtung nach Anspruch 4, bei welcher die Verzögerungsein­ richtung eine Gruppe von in Reihe geschalteter Logikeinheiten aufweist, wobei jede Logikeinheit eine vorhersehbare Übertra­ gungszeit hat.
6. Einrichtung nach Anspruch 5, bei welcher die Gruppe in Reihe geschalteter Logikeinheiten eine Gruppe von Übertrag-Logikelemen­ ten aufweist.
7. Einrichtung nach Anspruch 5, bei welcher die Gruppe Übertrag-Logikelemente eine Übertrag-Übertragungslogik in einer rekonfigu­ rierbaren Logikeinheit aufweist.
8. Einrichtung nach Anspruch 4, bei welcher der Impulszuordner ferner eine Sequenz-Gate-Logik zum Erzeugen von Taktsignalen auf­ weist, wobei die Sequenz-Gate-Logik entsprechend geschaltet ist, um ein Ausgangssignal der Verzögerungseinheit aufzunehmen und entsprechend geschaltet ist, um einen Satz Taktsignale an die funktionale Logik zu liefern, um dadurch eine zweite Rate zu schaffen.
9. Einrichtung nach Anspruch 8, bei welcher der Impulszuordner ferner einen Impulszähler zum Erzeugen eines Impulszählsignals aufweist, wobei der Impulszähler entsprechend geschaltet ist, um das Ausgangssignal der Verzögerungseinheit zu erhalten.
10. Einrichtung nach Anspruch 9, bei welcher der Impulszuordner ferner eine Startlogik zum Erzeugen eines Startimpulses aufweist, um den Betrieb der Verzögerungseinheit zu initiieren.
11. Einrichtung nach Anspruch 4, bei welcher die funktionelle Logik eine Multipliziereinheit aufweist, welche aufweist:
einen Multiplexer, der entsprechend geschaltet ist, um einen Mul­ tiplikanden zu erhalten;
einen Partialprodukt-Generator, der entsprechend geschaltet ist, um einen Multiplikator und eine Untergruppe von Bits in dem Mul­ tiplikanden zu erhalten, um einen Satz Partialprodukte zu erzeu­ gen;
einen Partialproduktsummierer, der entsprechend geschaltet ist, um den Satz Partialprodukte zu erhalten, um eine Partialprodukt­ summe zu erzeugen, und
einen Produktakkumulator, der entsprechend geschaltet ist, um die Partialproduktsumme zu erhalten, um die Partialproduktsummen zu akkumulieren, um ein Produkt zu erzeugen,
wobei die Multipliziereinheit entsprechend der selbstgetakteten Schwingung, die von der Verzögerungseinheit erzeugt worden ist, gesteuert wird.
12. Impulszuordner in einer rekonfigurierbaren Logikeinheit, wo­ bei der Impulszuordner eine Gruppe von Übertrag-Logikelementen aufweist, die entsprechend geschaltet sind, um eine selbstgetak­ tete Schwingung zu erzeugen.
13. Einrichtung zum Steuern eines selbstgetakteten algorithmi­ schen Ausführungssystems, welches eine funktionelle Logik auf­ weist, die Eingangsdaten erhält und Ausgangsdaten entsprechend einem Satz von Steuersignalen erzeugt, wobei die Einrichtung auf­ weist:
eine Startlogik, die geschaltet ist, um ein Startsignal zu erhal­ ten und dementsprechend einen Startimpuls zu erzeugen;
eine Verzögerungseinheit, die geschaltet ist, um den Startimpuls zu erhalten und um dementsprechend ein Ausgangssignal an der Ver­ zögerungseinheit und ein Rückkopplungssignal zu erzeugen;
einen Impulszähler, der geschaltet ist, um das Ausgangssignal der Verzögerungseinheit zu erhalten und um ein Impulszählsignal zu erzeugen und um selektiv ein Haltesignal zu erzeugen, und
eine Sequenz-Gate-Logik, die entsprechend geschaltet ist, um ein Impulszählsignal zu erhalten und um dementsprechend den Satz Steuersignale zu erzeugen,
wobei die Startlogik entsprechend geschaltet ist, um das Rück­ kopplungssignal zu erhalten und um dementsprechend den Startim­ puls zu regenieren, wenn das Haltesignal nicht erzeugt worden ist.
14. Verfahren für eine selbstgetaktete algorithmische Ausführung bei einer Einrichtung, die eine Gruppe funktioneller Logikeinhei­ ten und einen Impulszuordner aufweist, wobei das Verfahren die Schritte aufweist:
Erhalten von Eingangsdaten mit einer ersten Rate;
Erzeugen einer selbstgetakteten Impulsfolge mit einer zweiten Ra­ te, die von der ersten Rate unabhängig ist;
Verarbeiten der Eingangsdaten der zweiten Rate entsprechend der Impulsfolge und
Ausgeben der Ausgangsdaten mit der ersten Rate.
15. Verfahren nach Anspruch 14, bei welchem der Schritt, Erzeugen der Impulsfolge, mit einer maximalen Rate durchgeführt ist, die von einer Ausführungszeit abhängt, die der Gruppe funktionaler Logikeinheiten zugeordnet ist.
16. Verfahren nach Anspruch 14, bei welchem der Schritt, Erhalten von Eingangssignalen, synchron mit einem Referenztakt durchge­ führt wird;
der Schritt Erzeugen mit einer selbst-getakteten Rate durchge­ führt wird, die von dem Referenztakt unabhängig ist, und der Schritt Ausgeben synchron mit dem Referenztakt durchgeführt wird.
17. Verfahren nach Anspruch 16, bei welchem der Schritt, Erzeugen die Schritte aufweist:
Erzeugen einer selbstgetakteten Schwingung entsprechend einem Taktsignal und
Aufrechterhalten der selbstgetakteten Schwingung, bis ein Halte­ signal erhalten wird.
18. Verfahren nach Anspruch 17, bei welchem der Schritt Erzeugen ferner die Schritte aufweist:
Erzeugen eines Impulszählsignals und
Erzeugen eines Satzes von Steuersignalen, um das Verarbeiten der Eingangsdaten mit einer Rate zu steuern, welche der Periode der selbstgetakteten Schwingung entspricht.
19. Verfahren nach Anspruch 14, bei welchem der Schritt Verarbei­ ten die Unterschritte aufweist:
Erzeugen einer Gruppe von Partialprodukten, indem ein Multiplika­ tor und eine Untergruppe von Bits in einem Multiplikandem multi­ pliziert werden;
Erzeugen einer Partialproduktsumme durch Addieren der Gruppe Par­ tialprodukte;
Akkumulieren der Partialproduktsumme mit einer vorherigen Par­ tialproduktsumme und
Wiederholen jedes Unterschritts in dem Verarbeitungsschritt, bis ein Multiplikationsprodukt erzeugt ist.
20. Einrichtung für eine selbstgetaktete algorithmische Ausfüh­ rung mit
einer Einrichtung zum Erhalten von Eingangsdaten mit einer ersten Rate;
einer Einrichtung zum Erzeugen einer selbstgetakteten Impulsfolge mit einer zweiten Rate, wobei die zweite Rate unabhängig von der ersten Rate ist;
einer Einrichtung zum Verarbeiten der Eingangsdaten mit der zwei­ ten Rate, um Ausgangsdaten entsprechend der selbst-getakteten Im­ pulsfolge zu erzeugen, und eine Einrichtung zum Abgeben der Ausgangsdaten mit der ersten Ra­ te.
21. Einrichtung nach Anspruch 20, bei welcher die Erzeugungsein­ richtung eine Einrichtung zum Erzeugen einer selbstgetakteten Schwingung aufweist.
DE19702326A 1996-01-24 1997-01-23 Einrichtung und Verfahren für eine selbstgetaktete algorithmische Ausführung Expired - Fee Related DE19702326B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/590,499 US5854918A (en) 1996-01-24 1996-01-24 Apparatus and method for self-timed algorithmic execution
US590499 2000-06-09

Publications (2)

Publication Number Publication Date
DE19702326A1 true DE19702326A1 (de) 1997-07-31
DE19702326B4 DE19702326B4 (de) 2005-02-24

Family

ID=24362511

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19702326A Expired - Fee Related DE19702326B4 (de) 1996-01-24 1997-01-23 Einrichtung und Verfahren für eine selbstgetaktete algorithmische Ausführung

Country Status (4)

Country Link
US (1) US5854918A (de)
JP (1) JP3784476B2 (de)
CN (1) CN1103951C (de)
DE (1) DE19702326B4 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE19654846A1 (de) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
JP3961028B2 (ja) 1996-12-27 2007-08-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データフロープロセッサ(dfp)の自動的なダイナミックアンロード方法並びに2次元または3次元のプログラミング可能なセルストラクチャを有するモジュール(fpga,dpga等)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6317842B1 (en) * 1999-02-16 2001-11-13 Qlogic Corporation Method and circuit for receiving dual edge clocked data
CN1378665A (zh) 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
US6675306B1 (en) 2000-03-10 2004-01-06 Ricoh Company Ltd. Method and apparatus for phase-lock in a field programmable gate array (FPGA)
JP2004506261A (ja) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト パイプラインctプロトコルおよびct通信
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
ATE478381T1 (de) 2001-06-20 2010-09-15 Richter Thomas Verfahren zur bearbeitung von daten
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
WO2003060747A2 (de) 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurierbarer prozessor
WO2003071432A2 (de) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
WO2004038599A1 (de) 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Rekonfigurierbare sequenzerstruktur
US7007114B1 (en) 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7870346B2 (en) 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7457903B2 (en) 2003-03-10 2008-11-25 Marvell International Ltd. Interrupt controller for processing fast and regular interrupts
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7139150B2 (en) 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US8166217B2 (en) 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
US9201599B2 (en) 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US7757009B2 (en) 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US8032674B2 (en) 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7609468B2 (en) 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US8473911B1 (en) 2010-07-23 2013-06-25 Xilinx, Inc. Documentation generation from a computer readable symbolic representation
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory
US9768762B2 (en) 2014-09-25 2017-09-19 Taiwan Semiconductor Manufacturing Company, Ltd. Integrated circuit and method of testing
US10579492B2 (en) * 2017-12-29 2020-03-03 Intel Corporation Device, system and method for identifying a source of latency in pipeline circuitry

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3222536A (en) * 1961-02-02 1965-12-07 Burroughs Corp Time-controlled logical circuit
US3358128A (en) * 1964-08-31 1967-12-12 Burroughs Corp Delay line arithmetic circuit
US3553446A (en) * 1966-08-04 1971-01-05 Honeywell Inc Carry determination logic
US4322643A (en) * 1980-04-28 1982-03-30 Rca Corporation Digital phase comparator with improved sensitivity for small phase differences
JPS6055438A (ja) * 1983-09-05 1985-03-30 Matsushita Electric Ind Co Ltd 2入力加算器
NL8401308A (nl) * 1984-04-24 1985-11-18 Philips Nv Voloptelschakeling.
US4707800A (en) * 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
US4737926A (en) * 1986-01-21 1988-04-12 Intel Corporation Optimally partitioned regenerative carry lookahead adder
US4876660A (en) * 1987-03-20 1989-10-24 Bipolar Integrated Technology, Inc. Fixed-point multiplier-accumulator architecture
US4841468A (en) * 1987-03-20 1989-06-20 Bipolar Integrated Technology, Inc. High-speed digital multiplier architecture
US5047975A (en) * 1987-11-16 1991-09-10 Intel Corporation Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode
US5153848A (en) * 1988-06-17 1992-10-06 Bipolar Integrated Technology, Inc. Floating point processor with internal free-running clock
US4982352A (en) * 1988-06-17 1991-01-01 Bipolar Integrated Technology, Inc. Methods and apparatus for determining the absolute value of the difference between binary operands
US4972362A (en) * 1988-06-17 1990-11-20 Bipolar Integrated Technology, Inc. Method and apparatus for implementing binary multiplication using booth type multiplication
US5173617A (en) * 1988-06-27 1992-12-22 Motorola, Inc. Digital phase lock clock generator without local oscillator
JP2968289B2 (ja) * 1989-11-08 1999-10-25 株式会社リコー 中央演算処理装置
US5018093A (en) * 1990-01-02 1991-05-21 Ibm Corporation High performance self-checking adder having small circuit area
US5038117A (en) * 1990-01-23 1991-08-06 Hewlett-Packard Company Multiple-modulator fractional-N divider
US5175453A (en) * 1990-08-15 1992-12-29 Lsi Logic Corporation Configurable pulse generator, especially for implementing signal delays in semiconductor devices
US5109394A (en) * 1990-12-24 1992-04-28 Ncr Corporation All digital phase locked loop
US5483478A (en) * 1992-10-16 1996-01-09 Xilinx, Inc. Method and structure for reducing carry delay for a programmable carry chain
US5566079A (en) * 1992-11-12 1996-10-15 Vlsi Technology, Inc. Parameterized generic multiplier complier
US5511181A (en) * 1993-04-26 1996-04-23 Apple Computer, Inc. Polycyclic timing system and apparatus for pipelined computer operation
US5450607A (en) * 1993-05-17 1995-09-12 Mips Technologies Inc. Unified floating point and integer datapath for a RISC processor
US5553276A (en) * 1993-06-30 1996-09-03 International Business Machines Corporation Self-time processor with dynamic clock generator having plurality of tracking elements for outputting sequencing signals to functional units
JPH0738423A (ja) * 1993-07-23 1995-02-07 Mitsubishi Electric Corp 分周回路
US5710910A (en) * 1994-09-30 1998-01-20 University Of Washington Asynchronous self-tuning clock domains and method for transferring data among domains
US5576982A (en) * 1994-10-17 1996-11-19 Unisys Corporation Fast significant bit calculator and its application to integer multiplication and division
US5502403A (en) * 1994-12-20 1996-03-26 Cypress Semiconductor Corp. High speed configuration independent programmable macrocell
US5566123A (en) * 1995-02-10 1996-10-15 Xilinx, Inc. Synchronous dual port ram

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NOVAK, J.H., BRUNVALD, E.: Using FFGAs to Prototypw a Self-Timed Floating Point Co- Processor. In: Proceedings of the IEEE 1994 Custom Integrated Circuits Conference, 1994, S. 85-88 *
ROSENBERGER, F.U. (u.a.): Q-Modules: Internally Clocked Delay-Insensitive Modules. In: IEEE Transactions on Computers, Vol. 37, No. 9, 1988, S. 1005-1018 *

Also Published As

Publication number Publication date
JPH09204236A (ja) 1997-08-05
DE19702326B4 (de) 2005-02-24
CN1162153A (zh) 1997-10-15
CN1103951C (zh) 2003-03-26
US5854918A (en) 1998-12-29
JP3784476B2 (ja) 2006-06-14

Similar Documents

Publication Publication Date Title
DE19702326A1 (de) Einrichtung und Verfahren für eine selbstgetaktete algorithmische Ausführung
DE102005051478B4 (de) Flashdatenspeichervorrichtung
EP0010173B1 (de) Halbleiterplättchen mit verbesserter Prüfbarkeit der monolithisch hochintegrierten Schaltungen
DE69534812T2 (de) Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration
DE60202749T2 (de) Schnittstelle von synchron zu asynchron zu synchron
DE19839627B4 (de) Digitaler Signalprozessor
DE60002571T2 (de) Elastische schnittstelleanornung und verfahren dafür
DE2658248C2 (de)
DE69435034T2 (de) Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform
DE102005010779B4 (de) Schlüsseldispositionsvorrichtung und System zur Ver-/Entschlüsselung von Daten
WO2006092448A2 (de) Verfahren und vorrichtung zum berechnen einer polynom-multiplikation, insbesondere für die elliptische kurven-kryptographie
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
DE10124351B4 (de) Verfahren und Vorrichtung zum Verarbeiten zweier Datenoperanden in einem Prozessor
DE2457553A1 (de) Asynchroner taktgeber
DE4129657C2 (de) Programmierbare Frequenzteiler-Einrichtung
DE60118815T2 (de) Schaltung zur Regenerierung von einem Taktsignal aus mindestens zwei Synchronisierungsbits
DE60101169T2 (de) Logikschaltkreis mit Pipeline-Struktur
DE3138698C2 (de)
DE10016611A1 (de) Prüfsystem
DE102004013480A1 (de) Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
CH657487A5 (de) Funktionsgenerator zur erzeugung einer anzahl von sich wiederholenden digitalen wellenformen.
DE10018988B4 (de) Hochgeschwindigkeits-Pipelinevorrichtung und Verfahren zum Erzeugen von Steuersignalen dafür
DE60219155T2 (de) Verfahren und Einrichtung zur Phasenjustierung zweier Taktsignale
WO2006029986A1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
DE19803216C2 (de) Mikrocomputer, der zur Ausgabe von Impulsen in der Lage ist

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee