Das große All-in-All CPLD/FPGA Tutorial



Ähnliche Dokumente
Einführung in. Logische Schaltungen

Übung 1 RS-FFs mit NOR- oder NAND-Gattern

Technische Informatik Basispraktikum Sommersemester 2001

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

Versuch 3: Sequenzielle Logik

Praktikum Grundlagen der Elektronik

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Praktikum Digitaltechnik

Zu DT Übung 11.1 FF oben links. (Lösungsvorschlag)

Elektrische Logigsystem mit Rückführung

13 Programmierbare Speicher- und Logikbausteine

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

9 Multiplexer und Code-Umsetzer

1 Mathematische Grundlagen

Schaltungen Jörg Roth 197

Simulation LIF5000. Abbildung 1

1 Anmerkungen zur Entwicklung von GALs mit LOG/iC

Wintersemester 2001/2002. Hardwarepraktikum. Versuch 4: Sequentielle Systeme 1. - Toralf Zemlin - Swen Steinmann - Sebastian Neubert

Tietze, Schenk: Halbleiterschaltungstechnik (Kap. 10) Keller / Paul: Hardwaredesign (Kap. 5) L. Borucki: Digitaltechnik (Kap.

Anleitung über den Umgang mit Schildern

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Professionelle Seminare im Bereich MS-Office

Grundtypen Flip-Flops

1. Speicherbausteine JK-RS-Master-Slave-Flip-Flop

Informationen zum neuen Studmail häufige Fragen

Dennis S. Weiß & Christian Niederhöfer. Versuchsprotokoll. (Fortgeschrittenen-Praktikum) zu Versuch 15. Digitalelektronik

Grundlagen der Informatik

Oliver Liebold. NAND (negierte Undverknüpfung) L L H L H H H L H H H L

1 topologisches Sortieren

Informationsblatt Induktionsbeweis

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Aufgabensammlung. a) Berechnen Sie den Basis- und Kollektorstrom des Transistors T 4. b) Welche Transistoren leiten, welche sperren?

Erstellen von x-y-diagrammen in OpenOffice.calc

Grundlagen der Theoretischen Informatik, SoSe 2008

Rechnerarchitektur. Zustand Anzeige Untergeschoss U Erdgeschoss E 1. Stock 1

9 Flipflops (FF) Basis-FF. (Auffang-FF, Latch) praxis verstehen chancen erkennen zukunft gestalten 9-1

GEVITAS Farben-Reaktionstest

Arbeiten mit UMLed und Delphi

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Eigenschaften von Zählerschaltungen (1) 1 1. Richtung

Local Control Network

Bedienung des Web-Portales der Sportbergbetriebe

Nutzung von GiS BasePac 8 im Netzwerk

1. Kennlinien. 2. Stabilisierung der Emitterschaltung. Schaltungstechnik 2 Übung 4

Protokoll zum Praktikum des Moduls Technische Informatik an der JLU Gießen

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

V o r w o r t. A n l e i t u n g

Gezielt über Folien hinweg springen

Labor Grundlagen der Elektrotechnik

10. Elektrische Logiksysteme mit

Zeichen bei Zahlen entschlüsseln

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Primzahlen und RSA-Verschlüsselung

Fachbereich Physik Dr. Wolfgang Bodenberger

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Technical Note Nr. 101

Eine Logikschaltung zur Addition zweier Zahlen

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Der Leverage-Effekt wirkt sich unter verschiedenen Umständen auf die Eigenkapitalrendite aus.

Protokoll zu Grundelemente der Digitaltechnik

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

Versuch Nr. 8c Digitale Elektronik I

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Dokumentenverwaltung im Internet

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Hardware - Software - Net zwerke

Hinweise zum elektronischen Meldeformular

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Versuch 3. Frequenzgang eines Verstärkers

Mobile Intranet in Unternehmen

BFI Industrie-Elektronik GmbH + Co. KG

Grundlagen der Informatik 2. Grundlagen der Digitaltechnik. 5. Digitale Speicherbausteine

Verwalten und Organisieren von Fotos,

Schaltwerke Schaltwerk

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Anleitung SEPA-Lastschriften mit VR-NetWorld Software 5

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

BaseCamp OS X, Zümo 590 und die unterschiedliche Punkte in einer Route:

Erstellen einer GoTalk-Auflage

Terminabgleich mit Mobiltelefonen

Festigkeit von FDM-3D-Druckteilen

Win-Digipet V 9.2 Premium Edition Wie bastele ich mir steuerbare Kontakte. Wie bastele ich mir steuerbare Kontakte? -Quick-And-Dirty-Lösung-

s.beat DAP-10X White Paper USB Stromversorgung am Apple Macintosh und deren Auswirkung

Einteilung der Kippschaltungen (Schaltwerke) (=Flipflops)

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Speicher in der Cloud

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

5. Schaltwerke und Speicherelemente S Q

BILDER TEILEN MIT DROPBOX

Erstellen der Barcode-Etiketten:

5. Schaltwerke und Speicherelemente

Anwendungshinweise zur Anwendung der Soziometrie

Kondensatoren ( Verdichter, von lat.: condensus: dichtgedrängt, bezogen auf die elektrischen Ladungen)

Inventur. Bemerkung. / Inventur

Daten verarbeiten. Binärzahlen

Programmierung von Konturzügen aus Geraden und Kreisbögen

Bedienungsanleitung Anrufbeantworter für digitale Telefone Alcatel 4039

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Transkript:

Das große All-in-All CPLD/FPGA Tutorial Mit diesem Tutorial sollen die ersten Schritte in die Welt der programmierbaren Logik vereinfacht werden. Es werden sowohl die Grundlagen der Logik, die benötigte Hardware als auch Software beschrieben. Für Fragen und Anmerkungen stehe ich gerne zu Verfügung. Thomas Unmuth, den 8.September.25

Inhaltsverzeichnis.Die Geschichte der programmierbaren Logikbausteine...3 2.Digitale Schaltungen und Logik...3 2..Zahlendarstellungen...4 2.2.Logikbausteine...5 2.3.Kombinatorische Netzwerke...6 2.4.Flip-Flops...7 2.5.Automaten...8 3. Hardware... 3.. CPLD XC9536 von Xilinx... 3.2.Entwicklungsboard und Programmieradapter des XC9536...2 3.3.Der XC9536 für eigene Projekte...5 4.Software... 6 4..Einführung in VHDL...6 4...Prozesse...7 4..2.Aufbau eines VHDL Programmes...8-2 -

.Die Geschichte der programmierbaren Logikbausteine Die Ursprünge der digitalen Elektronik liegen bereits in der Mitte des 9 Jahrhunderts. Zu dieser Zeit wurde das Morsen erstmals eingesetzt. Das Morsen basiert auf digitaler Elektronik, da der Morser nur oder senden kann. Digitale Elektronik im heutigen Sinne, bei der auch logische Verknüpfungen möglich sind, wird seit Mitte des 2. Jahrhunderts verwendet. Zu dieser Zeit wurden große komplexe digitale Schaltungen komplett mit Logik ICs aufgebaut. Die dabei entstandenen Schaltungen waren viele Leiterplatten groß, bei nur bescheidenem Funktionsumfang. So hat zum Beispiel Motorola eine seiner ersten Mikrocontroller in der Entwicklung komplett mit einzelnen Logik-ICs aufgebaut. Um dieser Komplexität Herr zu werden, wurde 978 der erste frei konfigurierbare Logikbaustein auf den Markt gebracht. Mit diesem war es erstmals möglich digitale Elektronik auf einem Baustein zu erstellen. Diese Systeme wurden weiterentwickelt, und heute stellen CPLD(Complex Programmable Logic Device) und FPGA(Field Programmable Gate Array) den Stand der Technik dar. Der Unterschied von CPLDs und FPGAs ist im Wesentlichen der, dass FPGAs bei jedem Neustart konfiguriert werden müssen, da der interne Aufbau auf SRAM basiert. Die Logikinformation von CPLDs wird auf EEPROM gespeichert, deshalb bleibt die Information auch ohne Versorgungsspannung erhalten. Um Logikbausteine programmieren zu können, wurde VHDL(Very High Speed Integrated Circuit Hardware Description Language), eine speziell dafür zugeschnittene Software entwickelt. Mit dieser Software ist es möglich Logik auf einer höheren Abstrakten Ebene zu beschreiben. Der große Unterschied zum Programmieren von Mikrocontrollern ist, dass mit VHDL wirklich Hardware designt wird. Alle Prozesse laufen parallel ab. Dieser Unterschied macht vor allem eingefleischten Programmierern große Probleme. Im Folgenden wird anhand eines einfachen Beispieles die Welt der digitalen Logikbausteine erklärt. Dabei wird sowohl die Hardware beschrieben, die benötigt wird um einen CPLD zu programmieren als auch die Software vom programmieren, über das Simulieren bis zum Programmieren auf den Baustein. Dabei ist wichtig zu beachten, dass dies ein Einsteiger-Tutorial ist. Die verwendeten Tools sind extrem komplex. Deshalb werden nur die wichtigsten Funktionen erklärt um einfache Projekte zu realisieren. 2.Digitale Schaltungen und Logik Digitale Schaltungen sind Schaltungen, bei denen jede Art von Information nur über und übertragen werden. Bei der positiven Logik, welche in der Regel verwendet wird, entspricht eine dem Massezustand, eine entspricht der Versorgungsspannung. Versorgungsspannungen sind bei herkömmlichen Systemen 5V oder 3,3V, bei moderneren Schaltungen sind auch geringere Logik- - 3 -

spannungen möglich. Um mit Nullen und Einsen ganze Systeme darstellen zu können, sind einige theoretische Grundlagen notwendig. 2..Zahlendarstellungen Will man Zahlen mit Nullen und Einsen darstellen, wird die binäre Zahlendarstellung benötigt. Zahlendarstellungen Dezimaldarstellung 3 2 3 5 7 + 3 + 5 + 7 = 357 Binärdarstellung 2 7 2 6 2 5 2 4 2 3 2 2 2 2 28 + 64 + + + 8 + 4 + + = 25 Abb. - Dezimale und Binäre Zahlendarstellung In unserem Alltag verwenden wir das dezimale Zahlensystem. In diesem Zahlensystem entspricht die letzte Stelle dem vielfachen von, die nächste Stelle entspricht dem vielfachen von usw. Dieser Zusammenhang ist in Abb. zu sehen. Die Basis dieses Zahlensystems ist dabei. In der binären Zahlendarstellung können die Zahlen nur durch und dargestellt werden. Mathematisch betrachtet wird eine binäre Zahl i =n Z= B i 2 i, n N ; B {,} i= dargestellt. B ist dabei die Basis, und i steht für die i-te Stelle von rechts. Bildlich gesprochen steht die rechte Stelle für, die 2-te Stelle von rechts für 2, dann 4, 8, 6, 32, usw. Wie in Abb. zu sehen lässt sich aus dieser Summe jede positive ganze Zahl darstellen. Neben den ganzen positiven Zahlen lassen sich auch sowohl negative als auch gebrochen rationale Zahlen in mehreren Formen darstellen. Da diese Darstellungen für dieses Tutorial nicht notwendig sind, werden sie hier nicht näher ausgeführt. Eine weitere wichtige Darstellung ist die hexadezimale Zahlendarstellung. Bei dieser wird im Vergleich zu der dezimalen Darstellung nicht mit der Basis, sondern mit der Basis 6 gerechnet. Das heißt, dass mit der letzten Ziffer ein vielfaches von, mit der nächsten ein vielfaches von 6, dann ein vielfaches von 256 dargestellt wird, u.s.w.. Um Zahlen von bis 5 darstellen zu können, reichen die Ziffern unseres Zahlensystems nicht aus. Deshalb wird dieses auf folgende Werte ergänzt:,,2,3,4,5,6,7,8,9,a,b,c,d,e,f. Diese Zahlendarstellung wird häufig dazu genutzt, binäre Zahlen in Blöcken zu je 4 Bit zusammenzufassen. - 4 -

Weiterführende Links: www.wikipedia.de/dualsystem 2.2.Logikbausteine Eine Haupteigenschaft von programmierbaren Logikbausteinen sind Logikelemente. Diese verknüpfen einen oder mehrere Eingänge zu einem Ausgang. Dabei sind mehrere Grundverknüpfungen möglich. Gebräuchliche logische Operationen AND OR NOT NAND NOR EXOR Äquivalenz Wahrheitstabelle Schaltzeichen X X X X X X X X X X X X = X X = Mathem. Notation X X X X X X X Abb. 2 - Gebräuchliche logische Operationen In Abb.2 sind alle logischen Grundoperationen, deren Schaltzeichen, Wahrheitstabellen und mathematische Notationen dargestellt. Diese logischen Grundoperationen lassen sich anhand eines Beispieles besser verstehen. Bei einer Tastatur werden unter anderem die logische UND und die logische ODER Funktionen verwendet. Das große A lässt sich mit einer Tastatur schreiben, wenn man Die Shift-Taste und die A-Taste gleichzeitig drückt. Wenn man sich die Wahrheitstabelle der UND Funktion anschaut, wird klar, dass nur für den Fall dass beide Eingänge aktiv sind, der Ausgang auch aktiv wird. Bei der ODER Funktion ist der Ausgang immer dann aktiv, wenn ein oder beide Eingänge aktiv sind. Bei der Tastatur sind die beiden Shift-Tasten mit dieser Funktion verknüpft. Sobald eine der beiden, oder beide Shift-Tasten gedrückt werden, ist die Funktion aktiv. Mit diesen beiden, und den fünf anderen Logikfunktionen lassen sich alle logischen Kombinationen darstellen. - 5 -

2.3.Kombinatorische Netzwerke Mehrere der in Kapitel 2.2 beschriebenen Logikelemente bilden zusammen kombinatorische Netzwerke. Diese besitzen eine gewisse Anzahl an Ein- und Ausgängen, die auf jede beliebige Art miteinander verknüpft sein können. 7-Segment-Anzeige Abb. 3-7-Segment-Anzeige Der Aufbau eines solchen kombinatorischen Netzwerkes soll an einem Beispiel verdeutlicht werden. Ziel ist es eine 7-Segment (vgl. Abb.3) Anzeige anhand einer 4-Bit binär-kodierten Zahl darzustellen. Diese Umsetzung kann rein kombinatorisch erfolgen. Da die komplette Umsetzung zu Aufwändig wäre, beschränken wir uns hier auf den obersten Anzeigebalken. Dieser Balken ist aktiv für die Fälle: LED oben = 2 3 5 6 7 8 9 A C E F Einfacher kann man die Fälle betrachten, für die der oberste Balken nicht leuchtet, und das Ergebnis dann verneinen. Auch auf diese Weise kann der Balken dargestellt werden. LED oben = 4 B D Werden die Zahlen Binär Codiert, folgt folgende Gleichung: LED oben = Wie solche Gleichungen weiter vereinfacht werden, wird in diesem Tutorial nicht behandelt, da es sehr viele verschiedene Verfahren gibt, die zu komplex sind um sie kurz zu beschreiben. Außerdem übernimmt diese Vereinfachung später die Software mit der die Logikbausteine programmiert werden. Die zuletzt beschriebene Gleichung kann dann mit Logikbausteinen realisiert werden. Dieses kombinatorische Netzwerk ist in Abb. 4 dargestellt - 6 -

Logische Verknüpfung der 7-Segment-Anzeige d 3 d 2 d d Abb. 4 - Diese logische Verknüpfung erzeugt das oberste Element der 7-Segment-Anzeige 2.4.Flip-Flops Um kompliziertere Abläufe in einem Logikbaustein zu realisieren, genügt es nicht Eingänge mit Ausgängen logisch zu verknüpfen. Es müssen auch Zustände und Zustandsübergänge realisiert werden. Dazu ist ein Element nötig, das einzelne Zustände speichern kann. Diese Elemente heißen Flip-Flops. Die verschiedenen Ausführungen der Flip-Flops sind in Abb. 5 dargestellt. Die einfachste Ausführung ist die des D-Flip-Flops. Um Zustandsübergänge und damit Programmabläufe zu realisieren, ist ein zentraler Takt nötig. Das D-Flip-Flop übernimmt bei jeder steigenden Taktflanke des zentralen Taktes den Wert, der am Eingang D anliegt. Ändert sich der Wert am Eingang während eines Taktes, hat dies keine Auswirkung auf den Ausgang. Der Wert, der an der letzen steigenden Takflanke des Taktes am Eingang anlag ist somit gespeichert. Ein einfaches, praktisches Beispiel um zu verstehen wie Flip-Flops eingesetzt werden, ist das Entprellen eines Tasters. Wird ein normaler Taster gedrückt, ändert sich der Wert nicht sofort von Aus auf Ein, bzw. von auf, sondern er prellt. Das bedeutet, das für den Zeitraum von wenigen Millisekunden der Wert zwischen und hin- und herspringt. Um dieses Problem bei Mikrocontrollern zu umgehen, wird meistens nach dem ersten Sprung von auf der Eingang erst nach ms wieder abgefragt. Nach dieser Zeit kann sichergestellt werden, dass sich der Wert des Tasters stabilisiert hat, er somit entprellt ist. - 7 -

Flip-Flops D-FF T-FF SR-FF JK-FF Wahrheitstabelle Schaltzeichen D Clk D n n+ T Clk T n n+ n n S Clk R S n R n n+ n X J Clk K J n K n n+ n n Abb. 5 - Ausführungen von Flip-Flops Bei digitaler Logik wird eine andere Methode verwendet. Dazu wird ein Set-Reset-FF (SR-FF) verwendet. Dieses FF speichert seinen aktuellen Wert für den Fall, dass beide Eingänge sind. Wird der Eingang S auf gesetzt, wird der Ausgang auch auf gesetzt. Wird der Eingang R aktiv, wird das FF wieder auf zurückgesetzt. Diese Eigenschaft wird zum entprellen eines Tasters verwendet. Dazu wird ein Taster benötigt, der nicht nur öffnet und schließt, sondern einer der zwischen zwei Ausgängen hin- und herschaltet vgl. Abb. 6. Entprellen eines Tasters R Clk S Taster geprellte Signale RS-FF entprelltes Ausgangssignal Abb. 6 - Entprellen eines Tasters mit einem RS-FF Wird dieser Taster betätigt, kommt ein geprelltes Signal auf den Set-Eingang des Flip-Flops. Da dieser Eingang den Ausgang aber nur setzen kann, macht das geprellte Signal kein Problem. Erst wenn der Taster wieder losgelassen wird, und ein aktives Signal auf den Reset-Eingang des Flip-Flops setzt, wird der Ausgang wieder zu. Somit kann ein sauber entprelltes Signal am Ausgang des RS-FF erzeugt werden. 2.5.Automaten Mit den eben beschriebenen Flip-Flops können Werte gespeichert werden, und damit kleine Programme auf Logikebene realisiert werden. Diese Programme werden als Automaten dargestellt. Da Automatentheorie ein eigenes Buch füllen würde, beschränkt sich dieses Tutorial auf die Grundlagen des Moore-Automaten. - 8 -

Zum Einen weil dieser einfach verständlich ist und für die allermeisten Fälle ausreicht, zum Anderen weil der andere Automatentyp (Mealy-Automat) Tücken mit sich bringt, auf die geachtet werden muss. Moore-Automat Zustandsübergangsdiagramm Zustandsübergangstabelle x q x 2 y q 2 y 2 x2 Istzustand Folgezustand x x 2 Ausgangszeichen x 2 x x q q q 2 y q 3 y 3 q 2 q 3 q 2 y 2 q 3 q 2 q y 3 Abb. 7 - Moore-Automat Der Moore-Automat wird in aller Regel in einem Zustandsübergangsdiagramm dargestellt. In diesem Diagramm sind die Zustände, in dem sich der Automat befindet als Kreise dargestellt, die Zustandsübergänge als Pfeile. Die Bezeichnung der Zustände steht in dem Kreis über der Linie, in Abb. 7 z.b. q. Der Wert, der in diesem Zustand am Ausgang anliegt, wird in dem Kreis unter der Linie dargestellt. Um von einem Zustand in den nächsten zu kommen, ist eine Zustandsübergangsbedingung erforderlich. Dieser am Eingang anliegende Wert wird über dem Pfeil dargestellt. In dem Moore-Automaten in Abb. 7 bedeutet das konkret: befindet sich der Automat im Zustand q, liegt am Ausgang der Wert y an. Liegt am Eingang der Wert x an, verbleibt der Automat im Zustand q. Liegt am Eingang der Wert x 2 an, so wechselt der Automat in den Zustand q 2. In diesem Zustand liegt dann der Wert y 2 am Ausgang an. Moore Automaten werden immer synchron betrieben, d.h. der Automat funktioniert mit dem zentralen Takt des Automaten. Ein Zustandsübergang kann so nur mit jeder steigenden Taktflanke erfolgen. Die Funktionsweise der Moore Automaten kann wieder am besten mit einem konkreten Beispiel veranschaulicht werden. Ziel soll es sein, ein einfaches Zahlenschloss mit Hilfe eines Moore-Automaten zu realisieren. Dieses besonders einfache Zahlenschloss besteht aus zwei Tasten, T und T 2 und einem Schloss S. Dieses Schloss kann mit der Kombination T, T, T 2 geöffnet werden. Der Moore-Automat dieses Schlosses ist in Abb. 8 dargestellt. - 9 -

Zu Beginn befindet sich der Automat im Zustand Idle. Wird die Taste T 2 gedrückt, verbleibt der Automat in diesem Zustand. Erst wenn die Taste T gedrückt wird, wechselt der Automat in den Zustand Z 2. Auch in diesem Zustand muss die richtige Taste T gedrückt werden damit der Automat in den Zustand Z 3 wechselt, sonst wechselt er wieder in den Zustand Idle. Sobald nun die Taste T 2 gedrückt wird, geht der Automat in den Zustand offen über und das Schloss öffnet sich mit S=. Bei einer beliebigen Taste geht der Automat wieder in den Startzustand Idle über. Auf diese Weise kann sehr einfach ein Automat für ein Zahlenschloss realisiert. werden. Dieser ist natürlich absolut minimalistisch, bei einem richtigen Zahlenschloss müsste es mehrere Tasten und eine Zahlenschloss-Automat S= Abb. 8 - Zahlenschloss-Automat längere Kombination geben. Aber zur Anschauung, wie solch ein Automat funktioniert, ist dieser ideal. Mit den in diesem Kapitel beschriebenen Grundlagen der Logik können bereits sehr komplexe Schaltungen realisiert werden. Welche Hard- und Software dazu benötigt wird, wird in den folgenden Kapiteln beschrieben. T 2 T,T 2 offen S= Idle T S= Z 2 T 2 S= T T T 2 Z 3 - -