Chip Aufbau

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

Makros: Serial/De-serial Converter (SerDes)

Unter einem SerDes Makro (Serial/De-serializer) wird allgemein eine logische Schaltung verstanden, die aus einem mehreren Bit breiten Datenstrom (meistens sind es Bytes) einen sequentiellen Bitstrom erzeugt und versendet (Serializer, Transmitter) und in der Gegenrichtung aus dem versendeten Bitstrom wieder einen entsprechenden parallelen Datenstrom erzeugt (De-serializer, Receiver). Generell unterscheidet man hier zwischen einer synchronen und einer asynchrone Übertragung. Bei einer synchronen Übertragung wird parallel zu denSerDes Transmitter Daten ein zusätzliches Taktsignal mitgeführt, mit dem man auf der Empfängerseite den seriellen Datenstrom synchron abtasten kann. Dieses Prinzip ist aufgrund der zwei Leitungen und dem problematischen Skew-Verhalten zwischen Daten- und Taktsignal für hohe Datenraten für weite Übertragungsstrecken nicht geeignet.
Bei einer asynchronen Übertragung wird der Sendetakt in Senderichtung nicht mit einer eigenen Taktleitung übertragen, sondern muß auf der Empfängerseite entweder bekannt sein (mit einer gewissen maximalen Abweichung) oder er aus der Charakteristik des Bitstroms zurückgewonnen werden. Das erste Prinzip wird z.B. bei der guten alten seriellen Schnittstelle beim PCs verwendet und funktioniert nur mit einem nichtkontinuierlichen Datenstrom, dessen Rahmen mit einem Stop-Bit eingeleitet werden. Der Empfänger synchronisiert sich so bei jedem übertragenen Rahmen aufs neue auf den jeweils aktuell anliegenden Datenrahmen. Ein entsprechendes Makro ist nicht sehr komplex und benötigt keine analogen Komponenten.

Im Folgenden sollen daher nur die SerDes Makros betrachtet werden, die mit einem kontinuierlichen seriellen Datenstrom und mit deutlich höheren Datenraten von Megabit (Mbps oder Mb/s) aufwärts bis in den mehrstelligen Gigabit (Gbps oder Gb/s) Bereich arbeiten. Dazu wird i.d.R. der zu sendende Datenstrom nach bestimmten Mechanismen kodiert, z.B. mit einem 8B10B Encoder (der nicht als fester Bestandteil des SerDes zu sehen ist). Neben anderen Funktionen wie Wortsynchronisierung mit so genannten Komma-Charaktern, Rahmenbildung, Fehlererkennung und der Erzeugung eines Gleichanteil-freien Signals (durchschnittlich gleich viele Nullen wie Einsen) wandelt dieser vor der Serialisierung die zu übertragenen 8-bit Worte in 10-bit Worte um. Diese enthalten dann für alle 256 möglichen 8-bit Worte mindestens eine Flanke (z.B. "00000000" in "1001110100" bzw. "0110001011" und "11111111" in "1010110001" bzw. "0101001110"). Auf der Gegenseite werden die 10-bit Worte nach der De-serialisierung entsprechend wieder in die ursprünglichen 8-bit Worte rückkonvertiert. Mit dieser 8B10B Codierung ist eine Rückgewinnung des Taktes auch bei z.B. gleichförmigen Daten mit langen 0- bzw. 1-Folgen ohne Probleme möglich. Der Empfänger (Rx) eines SerDes fällt aufgrund der hohen Qualitätsanforderungen zur Rückgewinnung des Taktes (s.u Clock Recovery) ungleich komplexer aus als der Sendeteil (Tx).

Kanäle eines SerDes Makros
Einer dieser seriellen Datenströme wird häufig auch als ein Kanal bzw. Datenkanal bezeichnet. Da in bestimmten Applikationen - insbesondere im Bereich der Kommunikationstechnik - häufig viele solcher Kanäle mit gleicher Übertragungsrate benötigt werden, sind in SerDes Makros mehrere dieser seriellen Kanäle integriert. Der Vorteil dieses Zusammenschlusses besteht darin, daß bestimmte Teile des Makros von allen Kanälen genutzt werden können und so die Gesamtfläche für mehrere Kanäle insgesamt kleiner gehalten werden kann. Hier fällt insbesondere die relativ große PLLs ins Gewicht, die neben ihrem reinen Flächenanteil in der Core Area noch eine Anzahl von Pads für die Spannungsversorgung benötigt. Die Anzahl der Empfangs- bzw. Sendekanäle kann je nach SerDes Konfiguration unterschiedlich sein (s.u.).

IO-Buffer eines SerDes Makros
Aufgrund der hohen Datenraten, für die diese Makros ausgelegt sind, werden für die seriellen Datenein- bzw. -ausgänge i.d.R. keine herkömmlichen IO-Buffer sondern differentielle LVDS (Low Voltage Differential Signal) benutzt, die mit ihren zwei gegeneinander arbeitenden Datenleitungen ein besseres Übertragungsverhalten aufweisen (Störsicherheit, Signalhub; s. IO-Buffer).

Nutzdaten- und Leitungsrate eines SerDes Makros
Neben den naheliegenden 8-bit Worten ist im Bereich der 8B10B Leitungskodierung 10 Bit eine häufig auftretende Basiswortbreite (s. oben). Dieses ist der Grund dafür, daß die serielle Datenrate entweder aus einem Vielfachen von 8 (ATM: 19,44MBps -> 155,52Mbps) oder aus einem Vielfachen von 10 (SATA: 150MBps -> 1,5Gbps) gebildet wird. Letztere erlaubt daher nur eine Transferrate der Nutzdaten von 80% der angegebenen Leitungsgeschwindigkeit.
Typische Datenraten für SerDes Makros sind im Laufe der Zeit mit den Möglichkeiten der Technologien und den Anforderungen der Applikationen gestiegen. Typische an Standards der Telekommunikation angelehnte Datenraten sind 155Mbit/s, 622Mbit/s, 1,25Gbit/s, 2,5Gbit/s, 3,125Gbit/s und zahlreiche andere. Eine entsprechende Übersicht gibt es hier.

Arbeitspunkt eines SerDes Makros
SerDes-Makros können i.A. abhängig von ihrer Implementation in einem bestimmten Bereich um eine mittlere Datenrate herum betrieben werden, z.B. zwischen 200Mbit/s und 800Mbit/s und sind nicht auf eine konkrete feste Datenrate fixiert. Der Betriebspunkt wird einerseits durch einen von außen zugeführten Referenztakt und andererseits durch programmierbare Zähler innerhalb der integrierten PLL definiert.

Details über den Aufbau

In den folgenden Beispielen soll von einem 8-bit breiten Datenstrom ausgegangen werden, der Übertragen werden soll. Eine Umsetzung der jeweiligen Berechnung auf andere Wortbreiten - insbesondere auf die 8B10B Bedingungen - kann leicht durchgeführt werden.

Transmitter und parallel-zu-seriell Konverter
Der Transmitter (s. Bild oben) besteht im Wesentlichen aus einem parallel-zu-seriell Konverter und benötigt gegenüber dem Bytestrom eine um 8-fach erhöhte Taktfrequenz. Bei der 8B10B Kodierung wird entsprechend der Konvertierung eines Bytes zu einem 10-Bit Wort eine 10-fache erhöhte Taktfrequenz benötigt. Diese wird bei den meisten Makros bereits durch eine in das Makro integrierte PLL erzeugt und dem Konverter bereitgestellt. Die Referenzfrequenz der PLL ist dabei häufig der Takt, mit dem die Bytes an den Transmitter nacheinander angelegt werden. Die Multiplikation der PLL-Zählerstruktur ist auf 8 eingestellt, da mit jedem Referenztakt genau 8 Bits anliegen, die einzeln verschickt werden. Der eigentliche Konverter ist vom Prinzip her ein 8 Bit Schieberegister, das alle 8 Takte ein neues Byte einläd und die Bits nacheinander an seinem Ausgang herausschiebt. Prinzipiell kann entweder zuerst das niederwertige Bit (LSB, Least Significant Bit) oder das höchstwertige Bit (MSB, Most Significant Bit) hinausgeschoben werden. In der Realität wird die Struktur des Schieberegisters in mehreren Stufen aufgebaut in der nur die letzte Stufe und damit nur ein einzelnes Fipflop mit der höchsten Frequenz des Datenkanals arbeitet. Die Taktstruktur nach der PLL muß den einzelnen Stufen des Schieberegisters entsprechend heruntergeteilte Takte zu Verfügung stellen.

Receiver und seriell-zu-parallel Konverter
Der Empfänger besteht funktional gesehen ebenso aus einem Schieberegister, das lediglich in der entgegengesetzten Richtung arbeitet. An seinem Eingang liegt ein kontinuierlicher Bitstrom an, aus dem in einem Schieberegister 8 aufeinanderfolgende Bits zu einem Byte zusammengefaßt. Wie im Sendeteil auch wird die Struktur des Schieberegisters häufig in mehreren Stufen aufgebaut, damit nur das allererste Flipflop mit der SerDes Receivermaximalen Frequenz des seriellen Datenstroms läuft. Nach jeweils 8 aufeinander folgenden Bits liegt am Ausgang des seriell-zu-parallel Konverters ein neues Byte an und kann parallel an die dem Makro nachfolgende Schaltung weitergereicht werden.
Allgemein müssen neben dieser Funktion drei weitere Dinge bei dem Empfang eines asynchronen seriellen Datenstromes in einer seriellen Empfangsschaltung durchgeführt werden:

  • Wiederherstellung des Sendetaktes aus der Charakteristik des Datenstroms
    Dieses wird i.d.R. erst mit einer entsprechenden Leitungskodierung ermöglicht (s. 8B10B). Dieser Punkt ist der weitaus kritischere Vorgang da hier zwecks Fehlervermeidung im Empfänger sehr hohe Maßstäbe bzgl. der Qualität des gewonnenen Taktes gestellt werden (s.u. Clock Recovery). Wird ein Byte-Strom seriell übertragen, liegen sämtliche Bits aller übertragener Bytes sequentiell hintereinander.
  • Eintakten der einzelnen Bits möglichst genau in der Mitte eines Bit-Zyklusses
    Hier liegt der größte Signalabstand zwischen einem Low- und einem High-Pegel vor und damit die geringste Fehlerwahrscheinlichkeit (s. Augendiagramm unten).
  • Herausfinden der Grenzen der seriell versendeten Worte (Word Alignment)
    Aus der Sicht eines Empfängers liegen die Bits an seinem Eingang zwar in der richtigen Reihenfolge an, jedoch ist die Grenze eines Bytes - also wo ist das erste Bit und wo ist das letzte Bit eines Bytes - zunächst unbekannt. Eine eigene Information zu Bestimmung der Byte-Grenze liegt nicht vor und kann nur aufgrund der Charakteristik der übertragenen Daten zurückgewonnen werden. Dazu gibt es mehrere Möglichkeiten und Übertragungsstandards, weshalb dieses der Hauptgrund dafür ist, daß die Funktion des Word Alignment häufig nicht in den SerDes-Makros integriert ist und in einem eigenen nachgeschalteten Funktionsblock realisiert werden muß. Als ein Beispiel für die Wiederherstellung des Word Alignments kann die bereits erwähnte 8B10B Leitungskodierung angesehen werden. Hier werden über auffällige Bitmuster bestimmter Synchronisierungsworte (z.B. der Komma-Charakter K28.5, "001111 1010" bzw. "110000 0101") die 10-bit Grenzen und damit letztendlich auch die der übertragenen Byte-Grenzen (nach der 10-zu-8 Bit Konvertierung) erkannt.

Clock Recovery
Ähnlich wie bei den Wortgrenzen wird auch die Frequenz des Datenstromes nicht direkt vom Sender hin zum Empfänger übertragen und muß erst aus dem am Empfänger anliegenden Datenstrom zurückgewonnen werden. Zwar ist die definierte Datenrate der Übertragung bekannt, z.B 622Mbit/s, jedoch kann ein Taktgenerator auf der Empfängerseite nie genau mit der exakt gleichen Frequenz laufen wie der Taktgenerator des Senders und damit auch nicht mit dem seriellen Datenstrom. Selbst wenn diese zu einem bestimmten Zeitpunkt 'ausreichend' identisch sind, kann aufgrund thermischer Prozesse, Schwingverhalten von PLLs und unterschiedlichen Spannungsschwankungen auf Sender- und Empfangsseite davon ausgegangen werden, daß sich diese zwei Frequenzen früher oder später gegeneinander verschieben werden und damit Übertragungsfehler entstehen. Die Frequenzdifferenz kann zwar gering sein, ist jedoch prinzipiell unbekannt und muß daher auf der Empfängerseite als asynchroner Datensignal betrachtet und dementsprechend behandelt werden.
Zur Erzeugung einer zum hereinkommenden Datenstrom synchronen Frequenz wird eine abgewandelte PLL-Schaltung benutzt. Diese erzeugt aus einem Referenztakt mit einer passender Multiplikation die Basisdatenrate des empfangenen Datensignals. Hier ein Beispiel:

  • Die Datenrate gemäß STM4 Standard aus der Telekommunikation ist 622,08Mbit/s. Die PLL eines SerDes Empfängers kann diesen Basistakt aus einer Referenzfrequenz von 77,76MHz und einer Multiplikation von 8 erzeugen.

Die Frequenzunterschiede zwischen der Datenrate und dem Basistakt der PLL werden durch kontinuierliche Phasenverschiebungen des generierten Taktes innerhalb der PLL ausgeglichen. Dazu werden Phasenlage zwischen den hereinkommen Flankenwechseln Augendiagrammdes Datensignals und des erzeugten Taktes herangezogen. Liegen die Phasen auseinander wird der PLL Takt entweder erhöht oder erniedrigt, bis der Takt synchron zum Sendetakt liegt und die Bitstrom im SerDes Empfänger in der Mitte des Augendiagramms (Bild) synchron eingetaktet werden kann. Anhand dieser funktionalen Beschreibung wird jetzt deutlich, daß das Datensignal über eine bestimmte Anzahl von übertragenen Bits Signalwechsel aufführen muß, damit die Übertragung auch über den Zeitraum "zahlreicher" Bits funktionieren kann. Ohne solche Signalwechsel kann die PLL nicht gegensteuern und die Phasendifferenz zwischen Sender und Empfänger würde irgendwann zu groß werden. Das Ergebnis wäre ein erhöhter bzw. eine hohe Bitfehlerrate.

SerDes Konfigurationen
Von der Sende- und Empfängerkonfiguration her betrachtet gibt es zwei Möglichkeiten eine SerDes Funktion aufzubauen:

  • SerDes Transceiver Makro
    Sender und Empfänger sind im gleichen Makro implementiert und können so die gleiche PLL mit den erzeugten Takten nutzen. Die Sende- und Empfangsdatenraten sind dabei auf die gleichen Werte eingestellt. Die relativ große Fläche, die für die PLL benötigt wird, kann so effizienter genutzt werden.
    Häufig ist in einem SerDes Transceiver ein Loop-Back Pfad integriert (LLB, Local Loop Back), über den die serialisierten Daten direkt auf den Eingang des jeweiligen Empfängers zurück gekoppelt werden. Mit dieser Funktion kann man im Problemfall den seriellen Datenpfad testen, ohne außen ein Kabel anschließen zu müssen. Das Gegenstück zum LLB auf der parallelen Seite des Transceivers wird Far End Loop Back (FELB) bezeichnet und muß bei vielen SerDes Implementationen in der Core Area außerhalb des Makros quasi “manuell” aufgebaut werden.
  • Getrennte Serializer- und De-serializer Makros
    Sind im anderen Fall Sender und Empfänger in zwei verschiedenen Makros implementiert, können diese entsprechend der ASIC-Struktur an unterschiedlichen Stellen des Chips plaziert werden. Dieses resultiert zwar bezogen auf ein einzelnes Makro in einen Mehrverbrauch an Chipfläche, kann aber u.U. aufgrund der unabhängigen Plazierungsmöglichkeit an die Datenpfadstruktur des ASICs angepaßt werden und so den Flächenmehrverbrauch wieder wett machen. Ein weiterer Vorteil separater Makros ist, daß auf einem Chip unterschiedlich viele Sende- und Empfangskanäle integriert werden können . Bezogen auf das PCB und dessen Signalführung können beide Varianten je nach PCB-Aufbau von Vor- oder von Nachteil sein.

Weiterführende SerDes-Links
     www.us.design-reuse.com/articles/article10541.html


Zurück zur Makro-Übersicht
Weiter zum Aufbau der Chip-Verdrahtung

top 

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