7 Entwurf komplexer synchroner Digitalschaltungen
Transcription
7 Entwurf komplexer synchroner Digitalschaltungen
university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz 7 DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Entwurf komplexer synchroner Digitalschaltungen • Synchrone Digitalschaltungen werden auf "Register Transfer Level" (RTL) beschrieben. Dies bedeutet, dass logische Signale in Registern gespeichert werden. Zwischen den Registern existieren Blöcke mit kombinatorischer Logik. • In einem synchronen System werden alle Flipflops mit dem gleichen Takt angesteuert. • Asynchrone Preset- und Reset-Signale werden nur zur Initialisierung / Power-On verwendet. • Das sonstige Löschen von Registern erfolgt nahezu synchron (FSM-Ausgänge) über den asynchronen Eingang der D-FFs. DIGITALE SYSTEME 7-1 university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Derartig aufgebaute Digitalsysteme arbeiten stabil und sind insbesondere bzgl. Hazards unproblematisch da: 1. Die verwendeten Flipflops frei von Hazards sind (durch den Hersteller garantiert). 2. Davon auszugehen ist, dass die durch kombinatorische Schaltungen entstandenen Hazards bis zur nächsten Taktflanke abgeklungen sind. Der Designer hat neben dem korrekten funktionalen Entwurf des Zustandsautomaten die folgenden Entwurfsaufgaben: 1. Bestimme und minimiere die gesamte Taktverzögerung (Clock Skew) innerhalb des Systems. 2. Stelle sicher, dass die Setup- und Hold-Zeiten der Flipflops auch unter Berücksichtigung der Taktverzögerung noch eingehalten werden. 3. Identifiziere asynchrone Eingangssignale, synchronisiere diese und stelle sicher, dass die Synchronationsflipflops nicht in den metastabilen Zustand gehen. DIGITALE SYSTEME 7-2 university of applied sciences hamburg Prof. Dr. J. Reichardt DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Prof. Dr. B. Schwarz 7.1 Struktur und Timing komplexer synchroner Systeme Übliche Strukturierung eines digitalen Systems in Funktionsblöcke, die von einem gemeinsamen Takt gesteuert werden: • Die Steuereinheit erhält externe "Kommandos" sowie Statussignale von den Datenpfadkomponenten. Sie selbst erzeugt für diese Komponenten die Steuersignale • Der Datenpfad verarbeitet Daten. Er erhält Signale von der Steuereinheit und erzeugt Statussignale für die Steuereinheit. Dateneingang Takt Kommando Steuereinheit (Zustandsautomat) Steuersignale Datenpfad Input Steuersignale Datenprozessor Steuersignale Datenpfad Output Statussignale DIGITALE SYSTEME Datenausgang 7-3 university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Als Datenpfadkomponenten werden verwendet: • Kombinatorische Logik wie z.B. Code-Umsetzer, Multiplexer, Addierer, ALUs • Getaktete Logik wie z.B. ladbare (Schiebe-) Register • Externe RAM- und ROM-Speicher Typisches Zeitverhalten eines digitalen Systems 1. Kurz nach der steigenden Flanke geht die FSM in den neuen Zustand. Die Datenpfadregister übernehmen die neuen Statussignale nach der Flipflop-Verzögerungszeit (360 ns). 2. Etwas später werden durch das Ausgangsschaltnetz die Moore-Ausgänge des Steuerautomaten aktualisiert. Diese steuern die Datenpfadaktionen des nachfolgenden Takts (380 ns). 3. Deutlich später werden die Ausgänge der Datenpfadkomponenten aktualisiert (400 ns). 4. Etwas später wird durch das Übergangsschaltnetz der Folgezustand berechnet (430 ns). Alle Aktionen müssen vor der Setup-Zeit der Flipflops beendet sein! DIGITALE SYSTEME 7-4 university of applied sciences hamburg Prof. Dr. J. Reichardt DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Prof. Dr. B. Schwarz Typisches Zeitverhalten eines digitalen Systems Taktreserve Wegen der Flipflop-Verzögerungszeit sind alle Signale noch etwas über die zweite Taktflanke hinaus gültig. Sie sind somit Vorbereitungssignale für die Aktionen des zweiten Taktes. DIGITALE SYSTEME 7-5 university of applied sciences hamburg Prof. Dr. J. Reichardt DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Prof. Dr. B. Schwarz 7.2 Clock-Konzepte 7.2.1 Clock-Skew (Taktverzögerung) In synchronen VLSI Entwürfen sind Clock-Signale mit tausenden von D-FFs und synchronen RAMs verbunden und die Verdrahtungslänge der Clock-Leitungen kann mehrere Meter betragen. Zur Steigerung der Systemgeschwindigkeit ist die max. Taktfrequenz durch Optimierung der kombinatorischen Laufzeitpfade in der Regel auf ein Maximum gesteigert. Diese Kombination aus großem Fan-out der Clock-Treiber und hoher Taktfrequenz verursacht Taktverzögerungen zwischen den einzelnen D-FFs relativ zueinander: Clock Skew. CLK Clock skew has to be less than the sum of all other data signal delays! DIGITALE SYSTEME CLK_D 7-6 university of applied sciences hamburg Prof. Dr. J. Reichardt DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Prof. Dr. B. Schwarz Fehlverhalten durch zu großen Clock-Skew • Das zweite Flipflop erzeugt ein fehlerhaftes Ausgangssignal q2='1', da der ClockSkew (20ns) länger ist, als die Verzögerung auf dem Datenpfad (10ns). • Da in der Praxis die Signalverzögerung auf dem Datenpfad nicht vorherzusagen ist, wird in FPGAs und ASICs ein besonderes Taktverteilungsnetzwerk für die Taktverdrahtung verwendet. • Im "Balanced Clock Tree" erhalten alle Flipflops das Taktsignal zum gleichen Zeitpunkt. DIGITALE SYSTEME Fehler! TSkew Korrekt 7-7 university of applied sciences hamburg Prof. Dr. J. Reichardt DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Prof. Dr. B. Schwarz Balanced Clock-Tree • Der Clock-Routing Baum ist so ausgelegt, dass die Verzeigungen gleich belastet sind: die Clock-Verdrahtung muss symmetrisch und niederohmig sein, spezielle Global ClockBuffer (BUFG) sind starke Stromtreiber, die für steile Clock-Flanken sorgen. • FPGA-Designs werden durch eine automatische Clock-Tree Synthese unterstützt. • An den Verzweigungen werden spezielle Takttreiber verwendet da ein einziger Treiber überlastet wäre. Auch hier ist darauf zu achten, dass kein Clock-Skew auftritt: 7.2.2 Falsch Richtig Auf einem Chip DIGITALE SYSTEME 7-8 university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Gated Clocks Insbesondere in Low-Power Schaltungen müssen Teilfunktionen zeitweise abgeschaltet werden. Dies geschieht über Gated Clocks. Wenn die taktflankengesteuerte Bausteine keinen Freigabe-Eingang besitzen, ist eine Gated-Clock erforderlich. Diese neue Clock-Domäne kann auf verschiedene Weise gewonnen werden: • CLK_EN2: NAND_Gatter, welches mit der invertierten Clock angesteuert wird → Problem: Hazards im Enable-Signal werden bei CLK='0' an den Taktausgang invertiert weitergereicht. • CLK_EN1: Ein D-Latch zeigt dieses Verhalten nicht, es muss jedoch initialisiert werden. DIGITALE SYSTEME 7-9 university of applied sciences hamburg Prof. Dr. J. Reichardt DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Prof. Dr. B. Schwarz 7.2.3 Mehrere Clock Domänen In komplexen Schaltungen existieren für unterschiedliche Funktionen verschiedene Takte (ClockDomänen). Diese müssen aus einer Master-Clock abgeleitet werden, um asynchrone Schnittstellensignale und damit metastabile Zustände (s.u.) zu vermeiden. Wegen der Signalverzögerung der Taktteiler sind die Taktsignale gegeneinander phasenverschoben! • Im einfachsten Fall werden reduzierte Taktfrequenzen durch Taktteiler erzeugt. Clock-Domänen mit Vielfachen der Master-Clock lassen sich mit einer PLL und Frequenzteilern erzeugen fi = fin • n • mi (n, mi > 1) [H.V.] [H.V.] H. Veendrick: Deep-Submicron CMOS ICs. From Basics to ASICs. Kluwer academic publishers, 2nd edition 2000 DIGITALE SYSTEME 7-10 university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz 7.2.4 DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Taktphasen-Synchronisation Wegen der unterschiedlichen Laufzeiten in einem Taktbaum kann es erforderlich sein, die Phasenverschiebung, die durch verschiedene Takttreiberstufen entsteht, zu kompensieren. Damit wird die phasensynchrone Kommunikation zwischen verschiedenen Schaltungsgruppen (Cores) ermöglicht. • Am einfachsten erfolgt dies über eine nachträglich eingefügte Inverterkette im Datenpfad. Der Clock-Skew wird in jedem Core auf den Wert des worst-case Delays angehoben (adaptive skew control). • PLL Blöcke zur Phasenkompensation von unterschiedlichen Signalen regeln den Clock-Skew aus. Die Clock-Phase zwischen Knoten B und der Eingangfrequenz wird ausgeregelt. [H.V.]. DIGITALE SYSTEME 7-11 university of applied sciences hamburg Prof. Dr. J. Reichardt DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Prof. Dr. B. Schwarz 7.3 Asynchrone Eingangssignale • Asynchron sind alle Eingangssignale einer synchronen Schaltung, die nicht mit dem Sys- temtakt synchronisiert sind, deren Pegeländerung also irgendwann während des Taktzyklus erfolgen kann, also auch während des Entscheidungsintervalls tE = tS + th der abtastenden Clock. Dazu gehören z.B.: • Anforderungen externer Geräte (z.B. Tastatureingaben, Interrupts, serielle schnittstellen, ...) • Der Datenaustausch zwischen zwei synchronen Systemen, die jedoch mit unterschiedlicher Frequenz betrieben werden (Rechnerkopplungen, USBInterfaces zum FPGA-Processor. DIGITALE SYSTEME 7-12 university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE • Alle asynchronen Eingangssignale, die auf Flipflop-, Zähler- oder Schieberegister- Eingänge geführt werden, müssen über eine spezielle Synchronisationsschaltung geführt werden. • Diese stellt sicher, dass sich das Eingangssignal nicht während des Entscheidungsintervalls verändert. Andernfalls würden die Register- bzw. Zählerausgänge in den metastabilen Zustand gehen, in dem die Flipflop-Ausgänge eine gewisse Zeit tr (resolution time) verbleiben und sogar oszillieren können. • Der metastabile Zustand liegt im Bereich zwischen dem Set- und Reset-Zustand bei „midsupply“. Es ist nicht vorhersehbar, welcher Logikpegel sich im Anschluss an tr am DFF Ausgang einstellt. DIGITALE SYSTEME 7-13 university of applied sciences hamburg Prof. Dr. J. Reichardt DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Prof. Dr. B. Schwarz 7.3.1 Synchronisationsschaltung für lange Impulse • An einem vorgeschaltetes Synchronistions- Flipflop selbst können die Setupund Hold-Zeiten verletzt werden. • Die im Folgenden dargestellte Situation zeigt, dass sofern das 1. SynchronisationsD-FF in den metastabilen Zustand übergegangen ist, dieser Zustand sich jedoch im Laufe der Taktperiode aufgelöst hat (tr < TCLK) und damit das 2. D-FF einen korrekten Logikpegel übernehmen kann. Damit wäre die Wahrscheinlichkeit, dass die angeschlossene FSM mit undefinierten Pegeln angesteuert wird erheblich reduziert. • Es ist allerdings zu beachten, dass das Signal q_int ebenso den Wert ¬e = 0 hätte annehmen können. Entscheidend dabei ist die Tatsache, dass nur eins der EingangsFlipflops metastabil wird und nicht der Zustandsspeicher und/oder andere Datenpfadregister. DIGITALE SYSTEME 7-14 university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE • Das Signal E wird durch das Synchronisationsflipflop um bis zu zwei Takte verzögert! • Die Wahrscheinlichkeit für das Auftreten eines Fehlers wird durch eine mittlere Zeit zwischen auftretenden Fehlern MTBF (mean time between failure) beschrieben. Set-Up Time verletzt DIGITALE SYSTEME 7-15 university of applied sciences hamburg Prof. Dr. J. Reichardt DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Prof. Dr. B. Schwarz 7.3.2 Synchronisationsschaltung für kurze Impulse • Das asynchrone Eingangssignal liegt am Takteingang des Synchronisationsflipflops. Dessen Dateneingang liegt immer auf '1'. • Das Synchronistions-Flipflop wird durch das zweite Flipflop asynchron zurückgesetzt. • Unabhängig von der Impulsdauer des Eingangssignals erzeugt die Schaltung immer einen Impuls für die Länge eines Taktes! • Der Ausgang Q1 ist nicht frei von metastabilen Zuständen, ggf. muss die Schaltung um ein weiteres Flipflop ergänzt werden. DIGITALE SYSTEME 7-16 university of applied sciences hamburg Prof. Dr. J. Reichardt DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Prof. Dr. B. Schwarz 7.3.3 Berechnung der Fehlerhäufigkeit MTBF von Flipflops Synchronisationsfehler treten auf, wenn der metastabile Zustand länger andauert, als die vom Hersteller angegeben Zeit tr. Die mittlere Zeit MTBF zwischen zwei Synchronisationsfehlern ist abhängig von: • f: Taktfrequenz mit der die Flipflops betrieben werden. • a: Frequenz mit der sich das asynchrone Signal ändert. • T0: D-FF Konstante gibt das Zeitfenster an, in dem Pegelwechsel einen Fehler erzeugen. • τ: D-FF Konstante des Übergangsverhaltens von metastabilen Zuständen. MTBF( tr ) = Familie 74LS74 74HCxx XC95108-20 τ(ns) 1.5 1.82 0.17 exp( tr / τ ) T0 ⋅ f ⋅ a T0 (s) 4.0•10-1 1.5•10-6 9.6•10-18 tr (ns) 77.71 71.55 2.3 DIGITALE SYSTEME tSU (ns) 20 25 10 7-17 university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Beispiel: • Das Interruptsignal eines Mikroprozessor, der mit f = 10 MHz Taktfrequenz arbeitet • • • • wird mit einem 74LS74 Flipflop synchronisiert. Der asynchrone Interrupt tritt mit einer Interruptrate von 105 1/s auf. Die verfügbare Zeit zum Abklingen des metastabilen Zustands ist tr = 1/f - tSU = 80ns. Fehler treten auf mit MTBF(80 ns) = 3.6•1011 s, sodass fehlerhafte Übergänge etwa alle 100 Jahrhunderte auftreten! Falls der Prozessor jedoch mit 16MHz getaktet werden soll, ergibt sich: tr = 42.5 ns → MTBF(42.5 ns) =3.1 s. Dieser Wert ist unakzeptabel! Berechnen Sie die MTBF für den Baustein XC95108-20 jeweils bei f=16MHz und f=50MHz! DIGITALE SYSTEME 7-18 university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz 7.3.4 DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Entprellen von Schaltern • Mechanische Schalter neigen zum Prellen (d.h. der Kontakt wird nach dem Umschalten mehrmals kurzzeitig unterbrochen). • Als Taktsignal für Flipflops und Zähler sind nur prellfreie Schalter geeignet! • Durch ein RS-Latch in Zusammenhang mit Pull-up-Widerständen läßt sich ein mechanischer Schalter entprellen. Prellender Schalter DIGITALE SYSTEME 7-19 university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE 7.4 Die 10 Gebote einer vorbildlichen Schaltungsentwicklung (nach J.F. Wakerly, Digital Design Principles; Prentice Hall 1990) 1. 2. 3. 4. 5. 6. All state-machine outputs shall always be registered. Alle Ausgangssignale eines Automaten sollten stets über Register geführt werden! Use clock edge triggered registers never latches. Verwende (flankengesteuerte) Register anstatt von Latches! Inputs to FSMs including resets shall be synchronous Halte Deine Schaltwerkseingänge, einschließlich der Rücksetzeingänge synchron! Beware of fast paths, because of delayed clock signal waveform. Hüte Dich vor schnellen Pfaden, sie könnten Dich in die Hacken beißen! Minimise skew of clock signals. Minimiere die internen Verzögerungen Deiner Taktsignale! Cross clock domains with the greatest caution, Synchronize the signals Vermische Entwurfsgebiete mit unterschiedlichem Taktraster nur mit größter Vorsicht und synchronisiere Deine Signale an den Schnittstellen! DIGITALE SYSTEME 7-20 university of applied sciences hamburg Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE 7. Have no dead states in state-machines. Du sollst keine undefinierten Zustände in Deinem Schaltwerk haben! 8. Have no logic with unbroken-asynchronous feedback, in order to avoid the malfunction reports from myriad of test engineers. Du sollst keine Logik mit nicht durch den Takt unterbrochener, asynchroner Rückführung verwenden, wenn Dich die Fehlermeldungen unzähliger Testingenieure nicht heimsuchen sollen! 9. All decode logic must be crafted carefully - avoid asynchronicity Du sollst jede Dekodierlogik sorgfältig entwickeln - vermeide asynchrones Verhalten! 10. Trust not the simulator - it may be cheating with correct looking results. Traue Deinem Simulator nicht - er könnte Dir etwas vorgaukeln, auch wenn Dein Entwurf nichts taugt! DIGITALE SYSTEME 7-21