-
Die
vorliegende Erfindung bezieht sich auf Halbleiterschaltkreise und
auf die Taktverteilung auf unterschiedliche Gebiete eines integrierten
Schaltkreises. Die Erfindung bezieht sich ferner auf Taktstrategien
zum Optimieren eines Taktgleichgewichts zwischen Blöcken, für die Inter-Block-Synchronisation
nötig ist.
-
In
hochintegrierten Schaltkreisen (ICs) besteht die Tendenz zu einer
Erhöhung
der Chipfläche und
der Taktfrequenz. ICs sind mit Elementen wie Flip-Flop-Zellen aufgebaut,
deren Funktionen und deren Schalten immer schneller werden, wobei
die Anzahl der Punkte, die im Gleichgewicht sein müssen, exponentiell
mit der Größe des Chips
zunimmt. Eine Folge dieser beiden Entwicklungen ist eine Verschlechterung
des Taktversatzes, wobei sich die Industrie bemüht, die Qualität des gesamten
Taktbaumes neuer Schaltkreisentwürfe
auf einem annehmbaren Niveau zu halten. Es wurden somit Lösungen in
Erwägung
gezogen, die Taktversätze
verkürzen, jedoch
müssen
die Entwickler speziell dem Energieverbrauch Aufmerksamkeit schenken,
der mit einigen der entwickelten Techniken tendenziell ansteigen kann.
-
US 202/0060595 offenbart
ein Verfahren zum Verringern von Taktversätzen von hochintegrierten Schaltkreisen.
Dieses Dokument schlägt
einen Halbleiter-IC vor, der mehrere Gebiete enthält, die
mit unabhängigen
Takten arbeiten, sowie ein Phasentrennelement, das die Phase eines
der Takte von den Phasen der anderen Takte unterscheidet und die
Takte jeweils auf die Gebiete verteilt. Im offenbarten Schaltkreis
verteilt ein Phasentrennelement einen Takt auf einen Takttreiber
jedes Gebietes. Das Phasentrennelement weist ein Element auf, das
die Phase jedes Takts so festlegt und verteilt, dass Startpunkte
jedes Zyklus der Takte, die jeweils auf die Gebiete zu verteilen
sind, für
jedes der Gebiete auf unterschiedliche Zeitpunkte fallen. Bei dieser
Lösung beruht
die Verteilung des Takts auf ein gegebenes Gebiet weiterhin auf
Verteilungspfaden vom Phasentrennelement, wobei diese Pfade vom
Haupttaktgenerator oder Phasentrennelement zu den Gebieten, die
zu versorgen sind, groß werden
können,
wenn die Anzahl der Punkte in den Schaltkreisen zunimmt. Die Tiefe
des gesamten Takt baumes des Schaltkreises kann groß werden,
wobei die Verteilungspfade somit unzuverlässig werden und Problemen durch
externe Störungen
unterliegen.
-
US-A-5528638 offenbart
einen Taktverteilungsschaltkreis, wie im Oberbegriff des Anspruchs
1 spezifiziert ist.
-
Die
Erfinder haben eine Lösung
für die
Taktverteilung auf Logikblöcke
gesucht, die die Mängel der
bestehenden Entwürfe
mindert.
-
Es
wird ein Schaltkreis vorgeschlagen, der mehrere verbundene Logikblöcke enthält. Ein
Referenz-Taktgenerator erzeugt ein Referenz-Taktsignal, das an alle
Logikblöcke
verteilt wird. Jeder Block enthält
wenigstens einen lokalen Taktgenerator, der einen entsprechenden
Satz von synchronisierten lokalen Taktsignalen erzeugt. Der Generator
erzeugt die lokalen Taktsignale aus dem Referenz-Taktsignal und stellt diese den jeweiligen
Elementen des Logikblocks zur Verfügung. Der Schaltkreis ist so
beschaffen, dass ein Satz von lokalen Taktsignalen eines ersten
Blocks relativ zu einem Satz lokaler Taktsignale eines weiteren
Blocks phasenverschoben ist.
-
Die
Erfindung führt
Taktgeneratoren in jedem Block ein, so dass die Takterzeugung lokal
gemanagt werden kann, im Vergleich zu einem Entwurf, in dem die
Erzeugung und die Verteilung von Takten innerhalb der Blöcke zentral
gemanagt wird. Das lokale Managen von Takten erlaubt, das Ausmaß der Schaltung
auf Blockebene zu reduzieren und somit Probleme mit dem Taktgleichgewicht
und Taktversätzen
von großen
Chipentwürfen
zu vermeiden. Indem lokalen Takten erlaubt wird, von einem Block
zu einem weiteren unabhängig
zu sein, wird ermöglicht,
die Taktversätze
zu reduzieren, wobei die Gesamtqualität des Taktbaumes erhöht wird.
Die Phasenverschiebung, die zwischen bestimmten Logikblöcken des
Schaltkreises eingeführt
wird, hindert alle lokalen Takte daran, gleichzeitig zu schalten,
was bekanntermaßen einen
Leistungsabfluss hervorruft. Wenn nämlich alle lokalen Takte im
Schaltkreis phasensynchron und mit dem Referenztakt synchronisiert
wären,
könnte
man auf der Ebene des Referenztakts Spitzen des Leistungsabflusses
um die Taktflanken beobachten. Eine solche Erscheinung erfordert
eine starke chipeigene Stromversorgung, die häufig mit einem Ausbeuteverlust
einhergeht. Die in der Erfindung eingeführte Phasenver schiebung glättet somit
diese Leistungsspitzen. Ein weiterer Vorteil einer oder mehrerer
Ausführungsformen
der Erfindung besteht darin, dass die Anzahl der Schaltkreispunkte
reduziert wird, die im Gleichgewicht sein müssen.
-
Der
Schaltkreis der Erfindung ist im unabhängigen Anspruch 1 definiert.
Weitere Ausführungsformen
der Erfindung sind in den jeweils angefügten abhängigen Ansprüchen spezifiziert.
-
Diese
und andere Aspekte der Erfindung werden mit Bezug auf die im Folgenden
beschriebenen Ausführungsformen
deutlich und werden erläutert.
Die vorliegende Erfindung wird im Folgenden beispielhaft mit Bezug
auf die beigefügten
Zeichnungen genaue beschrieben, in welchen:
-
1 ein
Blockdiagramm einer beispielhaften Ausführungsform von Logikblöcken in
einem Schaltkreis ist;
-
2 ein
Zeitablaufdiagramm ist, das lokale Takte der Logikblöcke der 1 zeigt;
-
3 ein
Blockdiagramm einer weiteren beispielhaften Ausführungsform von Logikblöcken in
einem weiteren Schaltkreis ist;
-
4 ein
Zeitablaufdiagramm von lokalen Takten der Logikblöcke der 3 ist;
-
5 ein
Blockdiagramm einer beispielhaften Ausführungsform von Logikblöcken in
einem Schaltkreis der Erfindung ist;
-
6 ein
Blockdiagramm einer weiteren beispielhaften Ausführungsform von Logikblöcken in
einem Schaltkreis ist; und
-
7 ein
Zeitablaufdiagramm der lokalen Takte der Logikblöcke der 6 ist.
-
1 ist
ein Blockdiagramm einer beispielhaften Ausführungsform eines Abschnitts
eines Schaltkreises, der in der Erfindung verwendet wird und die
Logikblöcke 100 und 200 umfasst.
Der Schaltkreis kann irgendein Typ von integrier tem Schaltkreis
sein, wie z. B. ein HF-Schaltkreis oder ein Verarbeitungsschaltkreis.
In dieser Ausführungsform enthält der Block 100 z.
B. eine Taktgeneratoreinheit 110, Flip-Flop-Zellen 120 und 130 und
kombinatorische Zellen 140 zwischen dem Datenausgang der Zelle 120 und
dem Dateneingang der Zelle 130. Die Taktgeneratoreinheit 110 erzeugt
lokale Taktsignale clk1_phi1 und clk2_phi1 aus einem Referenztakt clk_ref,
der von einem Referenz-Taktgenerator eines Schaltkreises empfangen
wird; z. B. können
die internen Taktsignale clk1_phi1 und clk2_phi1 durch Taktteilung
und Phasenverschiebung des empfangenen Referenztakts clk_ref erhalten
werden. Die Takte clk1_phi1 und clk2_phi1 sind mit dem Referenztakt clk_ref
synchronisiert. Der Referenz-Taktgenerator des Schaltkreises ist
in 1 nicht gezeigt und kann als Ausführung eines
Phasenverriegelungsschleifenblocks implementiert sein. Der Block 200 ist
dem Block 100 ähnlich
und umfasst ähnliche
Elemente: Eine lokale Taktgeneratoreinheit 210, die lokale
Taktsignale clk2_phi2 und clk1_phi2 erzeugt, die den jeweiligen
Freigabeeingängen
der Flip-Flop-Zellen 220 und 230 über den
Speicher 240 zugeführt
werden.
-
In
dieser Ausführungsform
arbeiten die Blöcke 100 und 200 unabhängig voneinander,
wobei kein Datenaustausch zwischen den zwei Blöcken stattfindet. Es besteht
daher keine Notwendigkeit, beide Blöcke zu synchronisieren. Im
Gegenteil wird in dieser Ausführungsform
eine Phasenverschiebung willkürlich
zwischen dem Satz der Takte, die im Block 100 erzeugt werden,
d. h. clk1_phi1 und clk2_phi1, und dem Satz der im Block 200 erzeugten
Takte, d. h. clk1_phi2 und clk2_phi2 eingeführt. Jeweilige lokale Takte
der Blöcke 100 und 200 sind
im Zeitablaufdiagramm der 2 gezeigt, wobei wie gezeigt
eine Phasenverschiebung von einem Taktzyklus des Referenztakts clk_ref
von den Taktgeneratoreinheiten 110 und 210 eingeführt wird.
Außerdem
kann ein Taktbaum für
jeden unabhängigen
Block 100 und 200 aufgebaut werden, wobei jeder
Block unabhängig
im Gleichgewicht ist, um, dass kein Spielraum zwischen den Taktflanken
der internen Taktsignale vorhanden ist. Ein Ergebnis hiervon ist,
dass alle lokalen Taktsignale des jeweiligen Blocks für synchrone
interne Operationen der Elemente in einem gegebenen Block synchronisiert
sind.
-
3 ist
eine weitere beispielhafte Ausführungsform
eines Abschnitts eines Schaltkreises, der in der Erfindung verwendet
wird. Die Blöcke 100 und 200 kommunizieren
in dieser Ausführungsform über einen
Datenpfad 400. Der Datenpfad 400 kann ein Einweg-Einzeldatenpfad
sein. Der Datenausgang der Zelle 130 ist mit einem Dateneingang
der Flip-Flop-Zelle 250 des Blocks 200 verbunden.
Der Freigabeeingang der Zelle 250 wird mittels des Takts clk_phi2,
der von der Taktgeneratoreinheit 210 erzeugt wird, getriggert.
Wie in 4 gezeigt ist, ist jeder Block 100 und 200 intern
im Gleichgewicht, wobei interne Takte des Blocks 100, z.
B. die Taktsignale clk1_phi1 und clk2_phi1, somit miteinander synchronisiert
sind und ferner mit dem Referenztakt clk_ref, von dem sie abgeleitet
werden, synchronisiert sind. In ähnlicher
Weise sind im Block 200 die Taktsignale clk1_phi2 und clk2_phi2
und clk3_phi2 ebenfalls miteinander und mit dem Referenztakt clk_ref,
von dem sie ebenfalls abgeleitet sind, synchronisiert. In dieser Ausführungsform
wird ebenfalls eine Phasenverschiebung in einem Referenztaktzyklus
zwischen dem Satz der internen Takte des Blocks 100 und
dem Satz der internen Takte des Blocks 200 eingeführt. Allerdings
werden Daten von der Zelle 130 des Blocks 100 zur
Zelle 250 des Blocks 200 über den Datenpfad 400 übertragen.
Die Daten werden am Datenpfad 400 angelegt, wenn der Freigabeeingang der
Zelle 130 aktiviert wird, d. h. wenn das dem Freigabeeingang
der Zelle 130 zugeführte
Taktsignal clk1_phi des Blocks 100 kippt. Die Daten werden
von der Zelle 250 vom Datenpfad 400 entnommen,
wenn der Freigabeeingang der Zelle 250 aktiviert wird,
d. h. wenn das dem Freigabeeingang der Zelle 250 zugeführte Taktsignal
clk3_phi2 des Blocks 200 kippt. In dieser beispielhaften
Ausführungsform
kippt das Taktsignal clk3_phi2 einen Taktzyklus später als
der interne Takt clk1_phi1 des Blocks 1, wobei die aktuellen Daten
somit am Dateneingang der Zelle 250 anliegen, wenn die
Zelle 250 aktiviert wird.
-
In
der beispielhaften Ausführungsform
gemäß der Erfindung,
die in 5 dargestellt ist, wird das Schalten der Zelle 250 mittels
des Referenztakts clk_ref gesteuert, der am Freigabeeingang der
Zelle 250 bereitgestellt wird. Da jedoch der Block 100 intern
im Gleichgewicht ist, sind die folgenden zwei Signale miteinander
synchronisiert:
- – das Taktsignal clk1_phi,
das die Aktivierung der Zelle 130 und folglich das Schreiben
von Daten auf den Datenpfad 400 veranlasst, und
- – das
Referenz-Taktsignal clk_ref.
-
Außerdem liest
die Zelle 250 den Datenpfad 400 aus, wenn das
Referenz-Taktsignal
clk_ref kippt. Eine Datenstörung
kann dann auftreten, wenn die Zelle 250 Daten vom Datenpfad 400 liest,
die noch nicht präsent
und stabil sind, da sie gleichzeitig von der Zelle 130 ausgegeben
werden. Zu diesem Zweck wird die Flip-Flop-Zelle 260 mit
einem invertierten Freigabeeingang am Datenpfad 400 zwischen
der Zelle 130 und der Zelle 250 platziert, um
das Lesen von Daten auf dem Pfad 400 zu dem Zeitpunkt des Herunterschaltens
des Referenz-Taktsignals
clk_ref zu erlauben. Die von der Zelle 130 bereitgestellten Daten
sind daher auf dem Datenpfad 400 stabil, wenn die Zelle 260 die
auf dem Datenpfad 400 beförderten Daten liest. Die Daten
können
anschließend der
Zelle 250 zur Verfügung
gestellt werden, wenn der Referenztakt clk_ref nach oben kippt.
-
6 schlägt eine
weitere Ausführungsform eines
Abschnitts eines Schaltkreises vor, der die Blöcke 100, 200 und 300 enthält. In dieser
besonderen beispielhaften Ausführungsform
der Blöcke 100, 200 und 300 verbindet
ein Datenbus 400 den Ausgang des Blocks 100 mit
dem Eingang der Blöcke 200 und 300.
Im Gegensatz zu den mit Bezug auf die 3 und 5 präsentierten
Ausführungsformen,
in denen der Datenpfad 400 eine Einweg-Datenverbindung
ist, bewirkt der Datenbus 400 aufgrund seiner Eigenart
eine zusätzliche
Randbedingung für
die Entwürfe
der Blöcke 100, 200 und 300.
In der Tat kann der Datenbus 400 ein bidirektionaler Kommunikationsbus
sein, und erfordert, dass Daten in synchroner Weise geschrieben
und gelesen werden. Somit müssen
die Blöcke 100, 200 und 300 miteinander
in ihrem internen Taktgleichgewicht im Gleichgewicht sein. Die Taktgeneratoren 110, 210 und 310 werden somit
zuerst so eingestellt, dass sie einen synchronisierten Satz interner
Takte innerhalb der Blöcke 100, 200 und 300 erzeugen,
d. h. die Blöcke
sind intern im Gleichgewicht. Anschließend wird auch ein Taktbaum
für die
drei Blöcke
gemeinsam ins Gleichgewicht gebracht, wobei alle internen Takte
synchronisiert werden.