Chip Aufbau

[ASICs]  [Chip Typen]  [Chip Aufbau]  [Entwicklung]  [Schnittstellen]  [Glossar]
 
     [Chip-Gehäuse]  [IO-Bereich]  [Spannungsversorgung]  [Core Area]  [Taksignale]  [Makros]  [Verdrahtung]  [Wafer]

Taktsignale und Clock Trees

Eine besonderes Element in einer logischen Schaltung mit einer wichtigen Funktion ist der sogenannte Clock Tree. Dieser versorgt einen bestimmten Bereich der ASIC-Schaltung mit einem gemeinsamen und zeitlich ausbalancierten Taktsignal. Ein Bereich mit einem eigenen Takt wird auch als Clock Domain bezeichnet.
Wie der Name schon sagt ist ein Clock Tree eine baumartig aufgebaute Struktur, die von einem gemeinsamen Root Buffer mehr und mehr bis zu den Blättern (Leaf Cells) verzweigt. Meistens bestehen die Leaf Cells aus Flipflops oder anderen sequentiellen Elementen (z.B. synchrone RAMs). Da der gesamte Clock Tree mit z.T. tausenden von Leaf Cells nicht von einem einzelnen Root Buffer alleine versorgt werden kann, ist vor jeder weiteren Gruppe von Baumverzweigung ein weiterer Buffer geschaltet.
Im einfachsten Fall wird einer Clock Domain das Taktsignal von außen zugeführt. Hier ist dem Root Buffer ein ganz normaler Input-Buffer vorgeschaltet (s. Abbildung oben). Andere Takte für andere Domänen können u.U. von diesem Takt z.B. über einen Teiler abgeleitet werden (s.u.). i.A. werden folgende Erwartungen an einen Clock Tree und den Taktsignalen in seinen Zweigen gestellt:

  • Die High-Phase des Taktsignals soll gleich lang wie die Low-Phase sein (Verhältnis 50:50).
  • Die Flanken des Taksignals - insbesondere die aktive steigende Flanke - soll eine definierte Signalsteilheit durch eine zu hohe Last nicht unterschreiten um definierte Schaltzeiten der Flipflops zu gewährleisten.
  • Die Flanken des Taktsignals sollen bei allen Flipflops und den anderen angeschlossenen sequentiellen Bauelementen (z.B. synchrone RAMs) möglichst gleichzeitig und unabhängig von der Tiefe des Clock Trees ankommen. Daher ist ein Clock Tree immer regelmäßig aufgebaut und die Anzahl der Buffer-Stufen ist für jede Leaf Cell gleich.
  • Der Clock Delay - die Signalverzögerung von der Taktquelle bis zur Leaf Cell - soll möglichst klein sein. Diese Verzögerung muß insbesondere einem Eingangsdatenstrom angepaßt werden. Daher muß die Anzahl der Buffer-Stufen im Clock Tree möglichst klein sein. Ist der Clock Delay für eine Applikation zu groß, kann dieser mit einer Skew-kompensierenden PLL nahezu vollständig ausgeglichen werden (s. PLL).
  • Die Differenz zwischen der am schnellsten ankommenden Flanke und der spätesten Flanke wird Clock Skew genannt und muß möglichst klein sein. Je kleiner der Clock Skew um so besser kann die Zeit der Taktperiode für die Kombinatorik ausgenutzt werden. Typische Werte für Clock Skews liegen im Bereich unterhalb einer Nanosekunde.
  • Da das Taktsignal innerhalb einer Clock Domain das Signal mit der höchsten Frequenz ist, müssen bestimmte Maßnahmen ergriffen werden, um ein Übersprechen des Taktes auf andere Signale zu verhindern. Die wichtigste Maßnahme insbesondere bei den feinsten Strukturen neuerer Technologien ist die Abschirmung durch beidseitig zum Takt parallel verlaufende Leitungen, die fest auf GND-Potential geklemmt sind (Clock Shielding).

Allgemein kann bei der Implementierung des Clock Trees im Layout der Clock Skew um so kleiner gehalten werden, je kleiner die Clock Domain ist und je lokaler die Domain-Elemente plaziert werden können. Eine Justierung des Clock Trees im Layout auf einen minimalen Clock Skew wird Clock Balancing genannt.

Synchronisierung zwischen den Clock Domains
Insbesondere in Kommunikationsapplikationen, in denen zahlreiche Datenströme mit ähnlichen aber voneinander als unabhängig zu betrachtenden Datenraten auf dem ASIC zusammenlaufen, wird für jeden Datenstrom ein eigener Takt benötigt, der entweder zu Verfügung gestellt wird oder aus einem seriellen Datenstrom zurück gewonnen wird (Clock Recovery). Dieser Takt baut einen Clock Tree auf und definiert entsprechend eine Clock Domain. Werden Daten und/oder Informationssignale zwischen den Domänen unterschiedlicher Taktsignale ausgetauscht, müssen diese über spezielle Schaltungen zur Synchronisierung geführt werden.Synchronisierungen
Datensignale, die in Paketen aus mehreren Worten organisiert sind, werden häufig über Dual-Port RAMs geführt (s. auch RAMs). Bei diesen RAMs werden die Daten der sendenden Domäne mit dem entsprechenden Takt in den einen RAM-Port hinein geschrieben und über den anderen RAM-Port mit dem anderen Takt der zweiten Domäne ausgelesen (Bild unten). Das Frequenzverhältnis der beiden Taktsignale ist dabei beliebig solange ein Voll- oder Leerlaufen des RAMs durch entsprechende Maßnahmen verhindert wird.
Asynchrone 1-Bit breite Informations- bzw. Kontrollsignale können über eine einfache zweistufige Synchronisierung von der einen in die andere Domäne geführt werden (Bild unten). Hier wird ein möglicher instabiler Zustand in die erste Flipflop-Stufe durch die zweite Flipflop-Stufe ausgefiltert.
Sollen Daten von einer langsamen Domäne in eine schnelle Domäne transferiert werden, kann eine einfache Registerstufe mit einem synchronisierten Kontrollsignal verwendet werden.

Andere Takterzeugungen
Neben Taktsignalen, die dem ASIC von außen direkt zugeführt werden, können Taktsignale mit anderen Frequenzen aus einem zugeführten Referenztakt intern erzeugt werden. Im folgenden sind einige Möglichkeiten aufgeführt:

  • PLL (Phase Locked Loop)
    In vielen Applikationen erzeugt eine PLL aus einem Referenztakt FRef einen Takt FPLL mit einer zum Referenztakt erhöhten oder reduzierten Frequenz. Das Verhältnis der Frequenzen bestimmt sich dabei aus zwei internen Teilern m und n zu FPLL = FRef * m/n
    Eine vertiefende Beschreibung der PLL befindet sich hier.
  • Gated Clock
    Gated Clocks sind im eigentlichen Sinn keine erzeugten Taktsignale. Über ein Gate wie z.B. einem AND-Gatter, kann der an dem einem Eingang des Gatters anliegenden Takt am Ausgang des Gatters ein- bzw. ausgeschaltet werden. Zum Ein- und Ausschalten wird der zweite Eingang des Gatters benutzt (1=Ein; 0=Aus). Das Gate einer Gated Clock kann jedoch nicht als Root Buffer betrachtet werden. Daher muß im Anschluß an das Gate zunächst ein eigener Root-Buffer plaziert werden.
    Um Spikes, also kurze Störpulse, auf dem Ausgangssignal des Gates zu vermeiden, muß das Steuersignal synchron zu dem gesteuerten Takt angelegt werden und darf nicht während der geschalteten Clock-Pulse ein- oder ausgeschaltet werden.
  • Teiler (Divider)
    Wird ein binärer Zähler mit seinem Takt kontinuierlich erhöht, entstehen an seinen Zählerausgängen Signale, die eine aus dem Taktsignal geteilte Frequenz darstellen. Mit solchen Zählern kann aus einer Basisfrequenz durch ganzzahlige Teilung eine neue Frequenz erzeugt werden, die wiederum eine eigene Clock Domain speisen kann.
    Der kleinste mögliche Teiler besteht aus einem einzelnen Flipflop, das bei jedem Takt den Zustand seines Ausgangs ändert (Toggle Flipflop). Dieses stellt so einen Teiler durch 2 dar und ein angeschlossener Takt einer bestimmten Frequenz liegt an seinem Ausgang entsprechend halbiert vor.

 

Weiter zum Aufbau von verschiedenen Makros

top 

[Home] [ASICs] [Selbstmanagement] [Inselmeer] [Spiele]
[Ich über mich] [Links] [SiteMap] [Disclaimer]