-
Allgemeines
zur Erfindung
-
Die
Erfindung bezieht sich auf das Gebiet der Taktauswahl und insbesondere
auf eine störimpulsfreie
Taktauswahl.
-
Digitale
elektronische Systeme sind häufig auf
einem Taktsignal aufgebaut, welches den Betrieb der verschiedenen
Schaltungselemente synchronisiert und steuert (z.B. Logikschaltungen,
Flipflops, Sperrschaltungen, usw.). In vielen heutigen digitalen elektronischen
Systemen, wie zum Beispiel Bauelementen, die auf einem Mikroprozessor
aufgebaut sind, sind mehrere Taktquellen vorhanden; mit diesen geht
die Notwendigkeit einher, zwischen diesen Quellen umzuschalten.
-
Wenn
zwischen Takten umgeschaltet wird, sollten vorzugsweise Störimpulse
und ein Übergangsverhalten
des Takts am Taktausgang der Auswahlschaltung vermieden werden. 1a und 1b tragen
zur Veranschaulichung des Auftretens eines Störimpulses beim Umschalten zwischen
Taktquellen bei. 1a zeigt dabei eine typische
Schaltung zum Umschalten zwischen Taktquellen. Gemäß der Darstellung
in 1a sind zwei Taktsignale, CLOCK_1 und CLOCK_2
als Eingangssignale für
einen Umschalt-Schaltkreis 100 wie zum Beispiel eine Multiplexerschaltung
vorgesehen. Die Multiplexerschaltung 100 empfängt außerdem ein
Auswahlsignal, welches das Ausgangssignal CLOCK_OUT zwischen den
Eingangssignalen CLOCK_1 und CLOCK_1 umschaltet. Wenn zum Beispiel
das Auswahlsignal auf hohem Pegel liegt, wird bei CLOCK_OUT das
Signal CLOCK_1 ausgegeben, und wenn das Auswahlsignal auf niedrigem
Pegel liegt, wird am Ausgang CLOCK_OUT das Signal CLOCK_2 ausgegeben. 1b stellt
eine zeitliche Beziehung zwischen dem Auswahlsignal, dem Signal CLOCK_1
und dem Signal CLOCK_2 dar, die zu einem Störimpuls am Ausgang CLOCK_OUT
führt. Entsprechend
der Darstellung ist das Auswahlsignal anfänglich auf hohem Pegel, was
dazu führt,
dass das Signal CLOCK_1 am Ausgang CLOCK_OUT ausgegeben wird. Dann
schaltet das Auswahlsignal auf niedrigen Pegel um, während das
Signal CLOCK_1 auf hohem Pegel liegt und das Signal CLOCK_2 auf
niedrigem Pegel ist. Dies führt
dazu dass am Ausgang CLOCK_OUT ein verkürzter Impuls 102,
d.h. ein Störimpuls,
ausgegeben wird.
-
Ganz
allgemein führt
ein Störsignal
während des
Betriebs eines Mikroprozessors und anderer Bauelemente zu Fehlern,
weil ein Störimpuls
eventuell nachfolgende Flipflops, Sperrschaltungen, usw. erratisch
taktet. Deshalb besteht Bedarf an einem Umschalt-Schaltkreis, der
eine dynamische und saubere Umschaltung der Taktquelle ohne jeden
Störimpuls
an der mit dem Takt angesteuerten Logik ermöglicht.
-
In
der US-Patentschrift 6107841 wird ein Taktschaltsystem beschrieben,
welches eine synchrone störimpulsfreie
Umschaltung einer Taktquelle von einer oder mehreren asynchronen
Taktquellen vorsieht und welches ein Multiplexer-Element aufweist,
um ein Systemtakt-Ausgangssignal zu liefern, welches einem ersten
asynchronen Taktquelleneingang entspricht, sowie eine Schaltung
zur Steuerung der Umschaltung, welche ein erstes und ein zweites Steuersignal
erzeugt. Im Ansprechen auf das erste Steuersignal lässt das
Multiplexer-Element eine gleichzeitige Ankopplung einer zu der Multiplexer-Schaltung
umzuschaltenden ausgewählten
zweiten asynchronen Taktquelle zu sowie die Abkopplung des ersten
asynchronen Taktquellen-Eingangs. Außerdem wird im Ansprechen auf
das erste Steuersignal der Systemtaktausgang auf einem ersten Ausgangspegel
gehalten. Im Ansprechen auf das zweite Steuersignal wird die zweite
asynchrone Taktquelle an den Systemtaktausgang angekoppelt, während sich
beide Signale auf dem ersten Ausgangspegel befinden. Das Systemtakt-Ausgangssignal, welches der
zweiten asynchronen Taktquelle entspricht, ist nun synchron zu einem
nachfolgenden Übergang
der zweiten asynchronen Taktquelle von dem ersten Spannungspegel
auf einen zweiten Ausgangspegel.
-
Die
US-Patentschrift 5811995 beschreibt eine Schaltung sowie ein Verfahren
zum Umschalten zwischen unterschiedlichen Frequenztaktbereichen, die
nicht phasengleich sind. Die Schaltung weist einen Auswahleingang
zum Auswählen
des speziellen Frequenzbereichs auf, der auszugeben ist, ferner eine
erste Schaltung, welche dem ersten Taktbereich zugeordnet ist, und
eine zweite Schaltung, die dem zweiten Taktbereich zugeordnet ist.
Die Schaltungen sprechen auf das Auswahl-Eingangssignal an und arbeiten zusammen,
um den ersten Takt zu deaktivieren, ehe der zweite Takt freigegeben
wird.
-
Die
US-Patentschrift 6292044 bezieht sich auf eine Schaltung zur Taktumschaltung
für eine
integrierte Schaltung mit einer Vielzahl asynchroner Takte, bei
welcher jeweils nur ein Takt zu einem bestimmten Zeitpunkt ausgewählt wird
und bei welcher die Taktumschalt-Schaltungen zum Umschalten von einem
aktuell ausgewählten
Takt zu einem inaktiven Takt, der als nächstes auszuwählen ist,
nur dann für die
Zeitdauer aktiviert werden, die zum Abschließen des Umschaltvorgangs benötigt wird.
-
Eine
Vielzahl von Logikschaltungen schaltet den von dem ausgewählten Taktgeber
ausgegebenen Takt auf den Takt um, der mittels des Taktauswahlsignals
als nächstes
auszuwählen
ist. Eine Rücksetzschaltung
schaltet die Taktgeberschaltungen ab, sobald der Taktausgang von
dem ausgewählten
Takt auf den als nächstes
auszuwählenden
Takt umgeschaltet worden ist. Die Taktgebertreiber für Taktgeber,
die nicht ausgewählt
wurden, werden während
des Zeitraums, in dem der ausgewählte
Takt zu dem als nächstes
auszuwählenden
Takt umgeschaltet wird, und danach nicht ausgewählt. Sobald der Umschaltvorgang
abgeschlossen ist, wird die gesamte Schaltung zur Taktumschaltung
so lange abgeschaltet, bis es zu einer weiteren Taktumschaltung kommt.
-
Kurzbeschreibung
der Erfindung
-
Gemäß der vorliegenden
Erfindung ist eine Taktauswahlschaltung zum Umschalten zwischen
einer Vielzahl möglicher
Takte vorgesehen, wie sie in dem beiliegenden Anspruch 1 umrissen
wird. Dabei erfolgt eine Umschaltung von einem vorhandenen Takt
auf einen neuen Frequenztakt mit Synchronisierung mit dem vorhandenen
und dem neuen Frequenztakt. Die Taktauswahlschaltung weist dabei
einen ersten Takteingang zum Empfangen des vorhandenen Takts als
Eingangssignal und einen Takteingang für einen neuen Frequenztakt
zum Empfangen des neuen Frequenztakts auf. Die Schaltung umfasst außerdem eine
erste Synchronisierlogik, die dem ersten Takteingang in der Weise
zugeordnet ist, dass sie die Ausgabe des vorhandenen Taktes aktiviert/deaktiviert,
sowie eine zweite Synchronisierlogik, welche dem neuen Frequenztakt
in der Weise zugeordnet ist, dass sie die Ausgabe des neuen Frequenztaktes
aktiviert/deaktiviert. Die erste Synchronisierlogik und die zweite
Synchronisierlogik wirken zusammen, um so die Ausgabe des vorhandenen Taktes
synchron mit dem vorhandenen zu deaktivieren.
-
Des
Weiteren ist eine Taktauswahlschaltung zur Ausgabe eines Eingangs-Taktsignals
vorgesehen, das aus einer Vielzahl von Eingangstakten ausgewählt wird.
Die Schaltung umfasst eine auf ein Taktauswahl-Eingangssignal ansprechende
Aktivierungslogik, um für
jeden Eingangstakt ein zugehöriges
Auswahlsignal zu erzeugen. Jedes Auswahlsignal liefert dabei einen
Hinweis darauf, ob der ihm zugeordnete Eingangstakt zur Ausgabe
ausgewählt wurde
oder nicht. Für
jedes Auswahlsignal ist eine Synchronisierlogik vorgesehen, die
auf das Auswahlsignal in der Weise anspricht, dass sie synchron
mit dem Eingangstakt, der dem Auswahlsignal zugeordnet ist, ein
Aktivierungssignal erzeugt. Das Aktivierungssignal liefert dabei
einen Hinweis darauf, ob der dem Auswahlsignal zugeordnete Takt
ausgegeben werden soll oder nicht. Die Ausgabelogik spricht auf die
Aktivierungssignale in der Weise an, dass sie den ausgewählten Eingangstakt
ausgibt.
-
Außerdem ist
eine Taktauswahlschaltung zum Umschalten von einem ersten Taktsignal,
das an einen Ausgang angekoppelt ist, zu einem zweiten Taktsignal
vorgesehen, das an den Ausgang angekoppelt ist. Die Schaltung umfasst
eine Aktivierungslogik, die auf ein Taktauswahlsignal in der Weise
anspricht, dass sie ein erstes Auswahlsignal erzeugt, das einen
Hinweis darauf liefert, dass der erste Takt von dem Ausgang abzukoppeln
ist, sowie ein zweites Auswahlsignal, das einen Hinweis darauf liefert,
dass das zweite Taktsignal an den Ausgang anzukoppeln ist. Eine
erste Synchronisierlogik spricht dabei auf das erste Auswahlsignal
in der Weise an, dass sie ein erstes Aktivierungssignal synchron
mit dem ersten Takt erzeugt. Das erste Aktivierungssignal liefert
einen Hinweis darauf, dass der erste Takt von dem Ausgang abgekoppelt
werden soll. Eine zweite Synchronisierlogik spricht dabei auf das
zweite Auswahlsignal in der Weise an, dass sie ein zweites Aktivierungssignal
synchron mit dem zweiten Takt erzeugt. Das zweite Aktivierungssignal
zeigt an, dass das zweite Taktsignal an den Ausgang anzukoppeln
ist. Das erste Aktivierungssignal wird vor der Erzeugung des zweiten
Aktivierungssignals erzeugt. Die Ausgangslogik spricht hier auf
das erste Aktivierungssignal in der Weise an, dass sie das erste
Taktsignal von dem Ausgang abkoppelt, und spricht auf das zweite Aktivierungssignal
in der Form an, dass sie das zweite Taktsignal an den Ausgang ankoppelt.
-
Kurzbeschreibung
der Zeichnungen
-
1a stellt
eine typische Schaltung zum Umschalten zwischen Taktquellen dar;
-
1b veranschaulicht
eine zeitliche Beziehung zwischen dem Auswahlsignal, dem Signal CLOCK_1
und dem Signal CLOCK_2, die zu einem Störimpuls am Ausgang CLOCK_OUT
für die
Schaltung gemäß 1a führt;
-
2a zeigt
eine Taktauswahlschaltung gemäß den Grundsätzen der
vorliegenden Erfindung;
-
2b stellt
ein Zeitsteuerschema für
die Schaltung gemäß 2a dar;
-
2c zeigt
eine Taktauswahlschaltung gemäß 2a,
welche eine synchrone Rücksetzung der
Synchronisierlogik ermöglicht;
-
2d stellt
eine Taktauswahlschaltung gemäß 2a dar,
welche eine asynchrone Rücksetzung
der Synchronisierlogik ermöglicht;
-
2e zeigt
die Taktauswahlschaltung nach 2a, die
in der Weise erweitert wurde, dass sie zwischen drei Taktquellen
eine Auswahl vornimmt;
-
3 veranschaulicht
die Verwendung einer Taktauswahlschaltung für die Auswahl zwischen einem
Grundtakt und einen Takt mit höherer
Frequenz, der aus einem Frequenzvervielfacher gebildet wurde, welcher
auf einem Phasenregelkreis (PLL) aufgebaut ist;
-
4a zeigt
eine Taktauswahlschaltung 400, die sich besonders gut für die Auswahl
zwischen einem Grundtakt und einem Takt mit höherer Frequenz eignet, der
aus einem auf einem Phasenregelkreis (PLL) aufgebauten Frequenzvervielfacher
gebildet wurde;
-
4a–4c stellen
Zeitsteuerschemata für
die Auswahlschaltung gemäß 4a dar;
-
4d zeigt
die Taktauswahlschaltung gemäß 4a ohne
Anlegung der internen Aktivierungssignale an Rücksetzeingänge der Flipflops;
-
4e stellt
die Taktauswahlschaltung gemäß 4a ohne
Anlegung der internen Aktivierungssignale an Rücksetzeingänge der Flipflops dar;
-
5a zeigt
eine Anordnung, bei welcher die Taktauswahlschaltung gemäß den Grundsätzen der
vorliegenden Erfindung dazu verwendet wird, einen Prozessor zu takten,
der die Steuer-Eingangssignale der Taktauswahlschaltung ausgibt;
-
5b zeigt
eine Taktauswahlschaltung, die sich besonders gut für Steuersignale
eignet, welche sich synchron mit dem ausgewählten Takt verändern; und
-
5c–5f stellen
Zeitsteuerschemata für
die Auswahlschaltung gemäß 5b dar.
-
Beschreibung
der Erfindung
-
2a stellt
eine Taktauswahlschaltung 200 gemäß den Grundsätzen der
vorliegenden Erfindung dar. Die Auswahlschaltung 200 weist
eine Aktivierungslogik 203, eine Synchronisierlogik 204a,
die mit dem Takt CLOCK_1 getaktet ist, eine Synchronisierlogik 204b,
die mit dem Takt CLOCK_2 getaktet ist, und eine Ausgabelogik 202 auf.
-
Die
Aktivierungslogik 203 erzeugt interne Auswahlsignale SEL1
und SEL2, denen das Auswahl-Eingangssignal und der aktuelle Zustand
der Taktauswahl zugrunde liegen, d.h. ob das Signal CLOCK_1 ausgegeben
wird oder nicht und ob das Signal CLOCK_2 ausgegeben wird oder nicht.
Interne Auswahlsignale liefern einen Hinweis darauf, welcher Takt,
CLOCK_1 oder CLOCK_2, am Ausgang CLOCK_OUT ausgegeben werden soll.
Das interne Auswahlsignal SEL1 wird als Eingang der Synchronisierlogik 204a zugeführt, wohingegen
das interne Auswahlsignal SEL2 der Synchronisierlogik 204b als Eingangssignal
zugeführt
wird. Die Synchronisierlogik 204a erzeugt ein internes
Aktivierungssignal EN1 synchron mit dem Taktsignal CLOCK_1, dem
das interne Auswahlsignal SEL1 zugrunde liegt. Ebenso erzeugt die
Synchronisierlogik 204b ein internes Aktivierungssignal
EN2 synchron mit dem Taktsignal CLOCK_2, dem das interne Auswahlsignal
SEL2 zugrunde liegt. Die internen Aktivierungssignale EN1 und EN2
werden zusätzlich
zu den Signalen CLOCK_1 und CLOCK_2 der Ausgangslogik 202 als Eingang
zugeführt.
Die Zustände
der Aktivierungssignal EN1 und EN2 legen fest, welches Taktsignal, d.h.
CLOCK_1 oder CLOCK_2, mittels der Ausgabelogik 202 ausgegeben
werden soll. Die Aktivierungssignale EN1 und EN2 werden außerdem über jeweilige
Wechselrichter zur Aktivierungslogik 203 zurückgeführt.
-
Gemäß der Darstellung
weist die Aktivierungslogik 202 UND-Schaltungen 218 und 216 sowie den
Wechselrichter 212 auf. Das Ausgangssignal aus der UND-Schaltung 218 ist
SEL1 und das Ausgangssignal aus der UND-Schaltung 216 ist
SEL2. Einer der Eingänge
der UND-Schaltung 218 ist direkt mit dem Auswahl-Eingang
verbunden, während
einer der Eingänge
der UND-Schaltung 216 über
den Wechselrichter 220 mit dem Auswahl-Eingang verbunden
ist. Der andere Eingang der UND-Schaltung 216 ist über den
Wechselrichter 212 mit EN1 verbunden. In gleicher Weise
ist der andere Eingang der UND-Schaltung 218 über den
Wechselrichter 214 mit EN2 verbunden.
-
Die
Synchronisierlogik 204a umfasst eine Vielzahl von Speicherelementen
bzw. Flipflops in Kaskadenschaltung, zum Beispiel D-Flipflops. Das zugehörige Eingangs-Taktsignal, d.h.
CLOCK_1, taktet jeden der Flipflops, zum Beispiel an der negativen Flanke
des Eingangs-Taktsignals. Der Eingang an dem ersten Flipflop in
der Kaskade ist mit SEL1 verbunden, und der Ausgang des letzten
Flipflops in der Kaskade ist EN1. In gleicher Weise weist die Synchronisierlogik 204b eine
Vielzahl von Flipflops in Kaskadenschaltung auf, zum Beispiel D-Flipflops. Das
zugehörige
Takt-Eingangssignal,
d.h. CLOCK_2, taktet jeden der Flipflops, zum Beispiel an der negativen
Flanke des Eingangs-Taktsignals. Der Eingang an dem ersten Flipflop
in der Kaskade ist mit SEL2 verbunden und der Ausgang des letzten
Flipflops in der Kaskade ist EN2.
-
Die
Ausgangslogik 202 weist eine ODER-Schaltung 206 mit
einem Eingang auf, der mit dem Ausgang einer UND-Schaltung 208 verbunden ist,
während
der andere Eingang mit dem Ausgang einer zweiten UND-Schaltung 210 verbunden
ist. Die UND-Schaltung 208 weist einen Eingang auf, der
mit CLOCK_1 verbunden ist, während
der andere Eingang mit EN1 verbunden ist. In gleicher Weise ist
einer der Eingänge
der UND-Schaltung 210 mit CLOCK_2 verbunden, während der
andere Eingang mit EN2 verbunden ist. Der Ausgang der ODER-Schaltung 206 wird
als CLOCK_OUT bezeichnet.
-
In
Verbindung mit dem Zeitsteuerdiagramm aus 2b wird
nun die Funktionsweise der Auswahlschaltung 200 zur Auswahl
zwischen CLOCK_1 und CLOCK_2 beschrieben, und zwar ausgehend von
einem Zustand, in dem das Signal CLOCK_1 am Ausgang CLOCK_OUT ausgegeben
wird. Des Weiteren wird die Funktionsweise der Auswahlschaltung 200 zwar
unter Bezugnahme auf einen aktiven hohen Pegel beschrieben, doch
ist es auch möglich,
mit einem aktiven niedrigen Pegelwert zu arbeiten.
-
Anfänglich wird
das Signal CLOCK_1 am Ausgang CLOCK_OUT ausgegeben, wobei das Signal
EN1 auf hohem Pegel liegt, EN2 auf niedrigem Pegelwert ist und das
Auswahlsignal Select auf hohem Pegel liegt. Das Signal CLOCK_2 wird
als Ausgangstakt gewählt,
indem das Auswahlsignal Select vom hohen auf den niedrigen Pegelwert
umgeschaltet wird. Wenn das Auswahlsignal Select auf den niedrigen
Pegelwert umgeschaltet wird, wird SEL1 damit zur Umschaltung auf
den niedrigen Pegelwert veranlasst. Die Flipflops 204a werden
mit dem Signal CLOCK_1 getaktet, wobei das Eingangssignal SEL1 auf
niedrigem Pegelwert dazu veranlasst wird, zum Ausgang der Synchronisier-Flipflops 204a,
d.h. zu EN1, synchron mit dem Signal CLOCK_1 zu laufen. Die Umschaltung
des Signals EN1 auf niedrigen Pegelwert deaktiviert die Ausgabe
des Signals CLOCK_1 am Ausgang CLOCK_OUT. Die Umschaltung des Ausgangssignals
EN1 auf niedrigen Pegelwert veranlasst auch das Signal SEL2 zur
Umschaltung auf hohen Pegelwert; die Flipflops 204b werden mit
dem Signal CLOCK_2 getaktet, wodurch das Eingangssignal SEL2 auf
hohem Pegelwert zur Weiterleitung an den Ausgang der Synchronisier-Flipflops, d.h.
an EN2, synchron mit dem Signal CLOCK_2. Die Umschaltung des Ausgangssignals
EN2 auf hohen Pegelwert aktiviert die Ausgabe des Signals CLOCK_2
am Ausgang CLOCK_OUT. Deshalb wird, wie aus der Zeichnung ersichtlich
ist, die Deaktivierung von CLOCK_1 am Ausgang CLOCK_OUT synchron
mit CLOCK_1 vorgenommen, während
die Aktivierung von CLOCK_2 am Ausgang CLOCK_OUT synchron mit CLOCK_2
vorgenommen wird, womit das Auftreten von Störimpulsen während der Umschaltung des Takt-Ausgangssignals
verhindert wird.
-
Wie
nachstehend dargestellt wird, ist die Auswahlschaltung so erweitert,
dass sie spezielle Bedürfnisse
der Anwendung abdeckt, zum Beispiel mehr Steuerleitungen, Stromspar-Eigenschaften, Verringerung
der Latenz in der Synchronisierung, usw., und dass damit den Anforderungen
bei der Initialisierung der Synchronisierlogik 204 entsprochen wird.
-
Die
Taktauswahlschaltung 200 wird dazu eingesetzt, ein Taktsignal,
das verschiedene Bauelemente in einem System taktet, auszuwählen. Im
typischen Fall wird der Auswahlvorgang von dem System nach dem Einschalten
auf einen Standardwert initialisiert, um so am Ausgang CLOCK_OUT
ein erstes Takt-Ausgangssignal zu liefern. Zum Beispiel wird das
Signal Select so ausgelegt, dass es als Standardwert auf einem hohen
Pegel liegt. Wenn das Signal Select standardmäßig nach dem Einschalten auf
hohem Pegel liegt, wird SEL2 auf niedrigem Pegel initialisiert.
Dieses Signal auf niedrigem Pegel läuft dann durch die Synchronisierlogik 204b zu
EN2, damit EN2 einen definierten Wert (auf niedrigem Pegel) annimmt.
Nachdem EN2 auf niedrigen Pegel gesetzt wurde, kann SEL1, das auf
hohem Pegel liegt, durch die Synchronisierlogik 204a zu
EN1 laufen. Die Umschaltung von EN1 auf hohen Pegel aktiviert die Ausgabe
des Signals CLOCK_1 am Ausgang CLOCK_OUT. Bei einigen Anwendungsfällen ist
unter Umständen
eine Ausgabe am Ausgang CLOCK_OUT erforderlich, damit das System
den Auswahlvorgang initialisieren kann. Oder bei einigen Anwendungsfällen ist
die Zeit, die benötigt
wird, um erst SEL2 durch die Synchronisierlogik 204b und dann
das Signal SEL1 durch die Synchronisierlogik 204a zu leiten,
unter Umständen
zu lang. Eine Möglichkeit,
die Auswahlschaltung 200 rückzusetzen, ist bei diesen
Anwendungsfällen
deshalb wünschenswert.
Außerdem
kann auch ein Rücksetzen
der Auswahlschaltung 200 ganz allgemein wünschenswert sein,
um es auf diese Weise möglich
zu machen, dass die Auswahlschaltung 200 während des
normalen Betriebs in einen bekannten Zustand versetzt wird.
-
2c stellt
eine Taktauswahlschaltung gemäß 2a dar,
welche ein synchrones Rücksetzen der
Synchronisierlogik 204 ermöglicht. Mit dem Begriff „synchrones
Rücksetzen" ist hier gemeint,
dass ein Eingang nReset seinen Zustand synchron mit dem Taktausgangssignal
an CLOCK_OUT verändert.
Die Auswahlschaltung 200 funktioniert so, wie dies im Zusammenhang
mit 2a und 2b beschrieben
wurde, mit dem Unterschied, dass die Rücksetzlogik 222 die
Synchronisierlogik 204 dazu veranlasst, einen speziellen
Zustand der Aktivierungssignale EN1 und EN2 unabhängig vom
Zustand des Select-Signals und des aktuell gewählten Taktes zu erzeugen. Dies
führt zur
Ausgabe eines speziellen Takts, wenn der Eingang nReset aktiviert
wird. Gemäß der Darstellung
wird das Signal nReset der Rücksetzlogik 222 über einen
Wechselrichter zugeführt,
wodurch nReset auf einen aktiven niedrigen Pegel geschaltet wird.
Abhängig
von der Rücksetzlogik 222 ist
jedoch der Wechselrichter unter Umständen nicht erforderlich. Wenn
zum Beispiel nReset aktiv auf hohem Pegel sein soll, kann dieses
Signal geradewegs der Rücksetzlogik 222 zugeführt werden. In 2c weist
die Rücksetzlogik 222 eine ODER-Schaltung 224,
einen Wechselrichter 226 und eine UND-Schaltung 228 auf.
Die ODER-Schaltung 222 empfängt das
Signal nReset und das Ausgangssignal der UND-Schaltung 218 als Eingangssignale, während sein
Ausgangssignal SEL1 ist, das der Synchronisierlogik 204a zugeführt wird.
Die UND-Schaltung 228 empfängt nReset über einen Wechselrichter und
das Ausgangssignal der UND-Schaltung 216 als Eingangssignale
und gibt sein Ausgangssignal SEL2 an die Synchronisierlogik 204b ab.
-
Bei
dem in 2c dargestellten Fall hat nReset
auf hohem Pegel keine Auswirkung darauf, welcher Takt am Ausgang
CLOCK_OUT aktiviert wird. Wenn nReset jedoch auf niedrigen Pegel
geschaltet wird, wird SEL1 durch die Rücksetzlogik 222 auf
einen hohen Pegelwert gezwungen, während die Rücksetzlogik 222 das
Signal SEL1 auf einen niedrigen Pegelwert zwingt. Dies veranlasst
die Freigabe von CLOCK_1 am Ausgang CLOCK_OUT, unabhängig vom
Zustand von Select. Wie für
einen Fachmann auf diesem Gebiet offensichtlich wird, kann die Rücksetzlogik
leicht so ausgelegt werden, dass sie die Ausgabe von CLOCK_2 anstelle
von CLOCK_1 herbeiführt.
Zum Beispiel ergibt sich durch Vertauschen der Ausgänge der
ODER-Schaltung 224 und
der UND-Schaltung 228 in der Weise, dass das Ausgangssignal
der ODER-Schaltung SEL2 und das Ausgangssignal der UND-Schaltung
SEL1 ist, während
das Signal nReset des Wechselrichters durchgeleitet wird, eine Rücksetzlogik,
die zur Ausgabe von CLOCK_2 führt,
wenn sich nReset auf hohem Pegel befindet.
-
2d stellt
eine Taktauswahlschaltung 200 gemäß 2a dar,
die ein asynchrones Rücksetzen der
Synchronisierlogik 204 ermöglicht. Unter „asynchroner
Rücksetzung" wird hier verstanden,
dass ein Eingangssignal nReset seinen Zustand asynchron zum Taktausgangssignal
am Ausgang CLOCK_OUT verändert.
Die Auswahlschaltung 200 funktioniert in der Weise, die
im Zusammenhang mit 2a und 2b beschrieben
wurde, mit dem Unterschied, dass ein Eingangssignal nReset die Synchronisierlogik 204 zur
Erzeugung eines speziellen Zustands der Freigabesignale EN1 und
EN2 unabhängig
vom Zustand des Signals Select und vom aktuell gewählten Takt
veranlasst. Dies führt
zur Ausgabe eines speziellen Takts, wenn nReset aktiviert wird.
Die Synchronisierlogik, die dem auszugebenden speziellen Takt entspricht,
weist einen Setzeingang auf, der mit nReset verbunden ist, während die
Rücksetzeingänge der
anderen Synchronisierlogik mit nReset verbunden sind. Gemäß der Darstellung
in 2d handelt es sich bei CLOCK_1 um den Takt, der
am Rücksetzeingang
freizugeben ist, und infolgedessen ist ein Setzeingang der Synchronisierlogik 204a über einen Wechselrichter
mit nReset verbunden. Ein Setz-Eingangssignal
zwingt den Ausgang der entsprechenden Synchronisierlogik zur Umschaltung
auf hohen Pegelwert, wenn das Signal auf hohem Pegel liegt. Umgekehrt
zwingt ein Rücksetz-Eingangssignal
den Ausgang der entsprechenden Synchronisierlogik zur Umschaltung
auf niedrigen Pegelwert, wenn dieses Signal auf hohem Pegel liegt.
Wenn die Setz- oder Rücksetz-Eingangssignale
auf niedrigem Pegelwert liegen, arbeitet die Synchronisierlogik
normal. Wenn deshalb nReset einen niedrigen Pegelwert hat, wird das
Signal CLOCK_1 am Ausgang CLOCK_OUT freigegeben, wohingegen sich
das Signal nReset auf hohem Pegel nicht auf die Auswahlschaltung 200 auswirkt.
-
Eine
Taktauswahlschaltung kann in der Weise erweitert werden, dass sie
zwischen mehr als zwei Takten auswählen kann. 2e stellt
eine Taktauswahlschaltung 200 dar, die für die Auswahl
zwischen drei Taktquellen – CLOCK_1,
CLOCK_2 und CLOCK_3 – erweitert
wurde. Die Auswahlschaltung 200 ist ähnlich der in 2a dargestellten
Schaltung und umfasst im Allgemeinen eine Freigabelogik 203, einen
mit dem Signal CLOCK_1 getaktete Synchronisierlogik 204a,
eine mit dem Signal CLOCK_2 getaktete Synchronisierlogik 204b und
eine Ausgabelogik 202. Die Auswahlschaltung 200 wurde
durch Hinzunahme der mit dem Signal CLOCK_3 getakteten Synchronisierlogik 204c und
durch zusätzliche
Einbeziehung logischer Funktionen in die Freigabelogik 203 erweitert,
um so ein drittes internes Auswahlsignal SEL3 zu erzeugen. Außerdem besteht
der Auswahleingang hier aus zwei Auswahlleitungen, Select_1 und
Select_2, um eine Auswahl zwischen drei Takten vornehmen zu können.
-
Damit
funktioniert die erweiterte Auswahlschaltung 200 gemäß 2e in ähnlicher
Weise wie die Ausführungsform
mit zwei Takten. Die Freigabelogik 203 erzeugt interne
Auswahlsignale SEL1, SEL2 und SEL3 auf der Grundlage des Select-Eingangssignals und
des aktuellen Zustands der Taktauswahl. Dabei wird jedes dieser
Signale jeweils in die entsprechende Synchronisierlogik 204a, 204b und 204c geleitet.
Wie bei der Ausführungsform
für zwei
Takte erzeugt die Synchronisierlogik 204a bzw. 204b bzw. 204c jeweils
ein Freigabesignal EN1, EN2 bzw. EN3. Die Freigabesignale werden
auf der Grundlage der internen Auswahlsignale in der Weise erzeugt,
dass ein freigegebener Takt synchron mit sich selbst deaktiviert
wird und der freigegebene Takt dann synchron mit sich selbst freigegeben
wird. Die Freigabesignale werden der Ausgabelogik 202 zugeführt, um
zu steuern, welcher Takt ausgegeben wird, und dann werden sie zur
Freigabelogik zurückgemeldet,
um den aktuellen Zustand der Taktauswahl anzuzeigen.
-
Bei
der dargestellten Ausführungsform
für drei
Takte veranlassen beide Select-Eingangssignale auf
niedrigem Pegel die Freigabe des Signals CLOCK_1 am Ausgang CLOCK_OUT.
Ein niedriger Pegel bei beiden Select-Eingangssignalen führt zu einem
hohen Pegel des Auswahlsignals SEL1, wohingegen die Auswahlsignale
SEL2 und SEL3 auf niedrigem Pegel liegen. Je nachdem, welches Taktsignal
bereits aktiv ist, schalten die Signale EN2 oder EN3 synchron mit
dem jeweiligen Takt auf niedrigen Pegelwert um und deaktivieren
damit diesen Takt. Wenn zum Beispiel gerade das Taktsignal CLOCK_2 ausgegeben
wird, schaltet das Signal EN2 synchron mit CLOCK_2 auf niedrigen
Pegelwert um (in diesem Fall wäre
EN3 bereits auf niedrigem Pegel, so dass sich dieses Signal nicht
verändert),
was zur Deaktivierung des Taktsignals CLOCK_2 führt. Wenn in gleicher Weise
CLOCK_3 gerade ausgegeben wird, schaltet das Signal EN3 synchron
mit dem Taktsignal CLOCK_3 auf niedrigen Pegel um (in diesem Fall wäre das Signal
EN2 bereits auf niedrigem Pegel, so dass es sich nicht verändert),
was zur Deaktivierung des Taktsignals CLOCK_3 führt. Nachdem der zuvor freigegebene
Takt deaktiviert wurde, schaltet das Signal EN1 synchron mit dem
Taktsignal CLOCK_1 (das zuvor auf niedrigem Pegel lag) auf den hohen Pegelwert
um, was zur Deaktivierung des Taktsignals CLOCK_1 am Ausgang CLOCK_OUT
führt.
-
Ein
niedriger Pegelwert bei Select_1 und ein hoher Pegelwert bei Select_2
veranlassen die Freigabe des Tatsignals CLOCK_2 am Ausgang CLOCK_OUT.
Ein niedriger Pegelwert bei Select_1 und ein hoher Pegelwert bei
Select_2 führen
zu einem hohen Pegelwert des Signals SEL2, wohingegen die Signale
SEL1 und SEL3 auf niedrigem Pegel liegen. Je nachdem, welcher Takt
bereits aktiv ist, schaltet das Signal EN1 oder EN3 synchron mit
dem jeweiligen Takt auf niedrigen Pegelwert um und deaktiviert damit
diesen Takt. Wenn zum Beispiel gerade das Signal CLOCK_1 ausgegeben
wird, schaltet das Signal EN1 synchron mit dem Signal CLOCK_1 auf niedrigen
Pegel um (in diesem Fall wäre
das Signal EN3 bereits auf niedrigem Pegel und verändert sich damit
nicht), was zur Deaktivierung des Taktsignals CLOCK_1 führt. Nachdem
der zuvor freigegebene Takt deaktiviert wurde, schaltet das Signal
EN2 synchron mit dem Taktsignal CLOCK_2 (das zuvor einen niedrigen
Pegelwert hatte) auf den hohen Pegelwert um, was zur Aktivierung
des Taktsignals CLOCK_2 am Ausgang CLOCK_OUT führt.
-
Ein
hoher Pegelwert bei Select_1 und ein niedriger Pegelwert bei Select_2
veranlassen die Freigabe des Taktsignals CLOCK_3 am Ausgang CLOCK_OUT.
Ein hoher Pegelwert bei Select_1 und ein niedriger Pegelwert bei
Select_2 führen
zu einem hohen Pegelwert des Signals SEL3, wohingegen die Signale
SEL1 und SEL2 auf niedrigem Pegel liegen. Je nachdem, welcher Takt
bereits aktiv ist, schaltet das Signal EN1 oder EN2 synchron mit
dem jeweiligen Takt auf niedrigen Pegelwert um und deaktiviert damit
diesen Takt. Wenn zum Beispiel gerade das Signal CLOCK_1 ausgegeben
wird, schaltet das Signal EN1 synchron mit dem Takt CLOCK_1 auf
den niedrigen Pegelwert um (in diesem Fall wäre das Signal EN1 bereits auf
niedrigem Pegel und verändert
sich nicht), was zur Deaktivierung des Taktsignals CLOCK_2 führt. Nachdem
der zuvor freigegebene Takt nun deaktiviert wurde, schaltet das
Signal EN3 synchron mit dem Taktsignal 3 (dieses hatte
zuvor einen niedrigen Pegelwert) auf den hohen Pegelwert um, was
zur Freigabe des Taktsignals am Ausgang CLOCK_OUT führt.
-
Schließlich veranlassen
ein hoher Pegelwert bei Select_1 und ein hoher Pegelwert bei Select_2 die
Deaktivierung aller Takte, wodurch der Ausgang CLOCK_OUT auf niedrigen
Pegelwert gesteuert wird. Ein hoher Pegelwert bei Select_1 und ein
hoher Pegelwert bei Select_2 führen
zur Umschaltung von SEL1, SEL2 und SEL3 auf niedrigen Pegelwert.
Dabei wird jeder bereits freigegebene Takt seinerseits synchron
mit sich selbst deaktiviert und wird der Ausgang CLOCK_OUT auf den
niedrigen Pegelwert gesteuert.
-
Eine
exemplarische Anwendung für
eine Taktauswahlschaltung ist die Auswahl zwischen einem Grundtakt
und einem Takt mit höherer
Frequenz, der aus einem Frequenzvervielfacher gebildet wird, dem
ein Phasenregelkreis (PLL) zugrunde liegt. Dies wird ganz allgemein
in 3 dargestellt. Gemäß der Zeichnung wird ein Grund-Taktsignal CLOCK_IN
(als Signal CLOCK_1) einer Taktschaltungs- und Synchronisierschaltung 302 gemäß der vorliegenden
Erfindung zugeführt.
Das Signal CLOCK_IN wird außerdem
einem Frequenzvervielfacher 300 in PLL-Technik zugeführt, welcher
die Frequenz des Signals CLOCK_IN multipliziert, um so ein Taktsignal
CLOCK_2 mit einer höheren
Frequenz als das Taktsignal CLOCK_1 abzuleiten. Das zweite Taktsignal
CLOCK_2 wird auch einer Taktschaltungs- und Synchronisierschaltung 302 zugeführt. Zur
Auswahl zwischen dem Takt CLOCK_1 oder dem Takt CLOCK_2 als Ausgangssignal
bei CLOCK_OUT wird eine Auswahlleitung eingesetzt. Wenn zum Beispiel bei
Select ein hoher Pegel vorhanden ist, wird das Signal CLOCK_1 als
Takt-Ausgangssignal CLOCK_OUT ausgegeben (was bedeutet, dass der PLL-Frequenzvervielfacher 300 umgangen
wird). Liegt jedoch bei Select ein niedriger Pegelwert vor, wird
das Taktsignal CLOCK_2 als Signal CLOCK_OUT ausgegeben.
-
Die
Taktauswahlschaltung 302 weist außerdem die Eingänge nReset,
StopCK und CLOCK_VALID als Steuereingänge auf. Der Steuereingang
nReset ist ein aktiv auf niedrigem Pegel liegender Eingang, welcher
die Taktauswahlschaltung 302 rücksetzt. Der Eingang StopCK
wird dazu verwendet, den Takt am Ausgang CLOCK_OUT anzuhalten. Liegt
der Eingang StopCK auf hohem Pegel, wird das Takt-Ausgangssignal CLOCK_OUT
angehalten. Der Eingang CLOCK_VALID dient dazu, eine Umschaltung
auf dem PLL-Takt – CLOCK_2 – während der
Zeit zu verhindern, in welcher der Phasenregelkreis noch nicht verriegelt
ist. Wenn der Phasenregelkreis PLL die Verriegelung erreicht hat,
schaltet der Eingang CLOCK_VALID auf hohen Pegelwert um und ermöglicht dabei
eine Umschaltung auf das Signal CLOCK_2.
-
4a stellt
eine Taktauswahlschaltung 400 dar, die besonders gut zur
Auswahl zwischen einem Grundtakt und einem Takt mit höherer Frequenz
geeignet ist, der aus einem Frequenzvervielfacher, dem ein Phasenregelkreis
(PLL) zugrunde liegt, erstellt wird. Die Auswahlschaltung 400 weist
ganz allgemein eine Freigabelogik 404, eine mit dem Taktsignal CLOCK_1
getaktete Synchronisierlogik 408, eine mit dem Taktsignal
CLOCK_2 getaktete Synchronisierlogik 406 und eine Ausgabelogik 402 auf.
-
Die
Freigabelogik 404 erzeugt interne Auswahlsignale SEL1 und
SEL2, denen Eingangssignale nReset, Select, StopCK und CLOCK_VALID
sowie der aktuelle Zustand der Taktauswahl zugrunde liegt, d.h.
ob das Taktsignal CLOCK_1 ausgegeben wird oder nicht und ob das
Taktsignal CLOCK_2 ausgegeben wird oder nicht. Das interne Auswahlsignal
SEL1 wird der Synchronisierlogik 408 zugeführt, während das
interne Auswahlsignal SEL2 das Eingangssignal in die Synchronisierlogik 406 ist.
Die Synchronisierlogik 408 erzeugt ein internes Freigabesignal
EN1 synchron mit dem Taktsignal CLOCK_1, dem das interne Auswahlsignal
SEL1 zugrunde liegt. In gleicher Weise erzeugt die Synchronisierlogik 406 ein
internes Freigabesignal EN2 synchron mit dem Taktsignal CLOCK_2,
dem das interne Auswahlsignal SEL2 zugrunde liegt. Die internen
Freigabesignale EN1 und EN2 werden zusätzlich zu den Taktsignalen CLOCK_1
und CLOCK_2 der Ausgabelogik 402 zugeführt. Die Zustände der
Freigabesignale EN1 und EN2 legen fest, welchen Takt – CLOCK_1
oder CLOCK_2 – die
Ausgabelogik 402 ausgibt. Die Freigabesignale EN1 und EN2
werden außerdem
jeweils über
Wechselrichter 412 bzw. 414 zur Freigabelogik 404 zurückgeführt.
-
Entsprechend
der Darstellung weist die Freigabelogik 404 UND-Schaltungen 424, 428 und 432, Wechselrichter 420,
eine NICHT-ODER-Schaltung 430 und eine ODER-Schaltung 422 auf.
Das Ausgangssignal aus der ODER-Schaltung 218 ist SEL1. Eines
der Eingangssignale der ODER-Schaltung 218 ist das Ausgangssignal
des Wechselrichters 420, dem das Signal nReset als Eingangssignal
zugeführt wurde.
Das andere Eingangsignal in die ODER-Schaltung ist das Ausgangssignal
aus der UND-Schaltung 424. Die UND-Schaltung 424 empfängt als
Eingangssignale das Signal Select, das Signal EN2 über den
Wechselrichter 412 und das Ausgangssignal der UND-Schaltung 428 über den
Wechselrichter 426. Die UND-Schaltung 428 empfängt das Signal
nReset und das Signal StopCK als Eingangssignale. Das Ausgangssignal
der UND-Schaltung 432 erhält das Signal CLOCK_VALID,
das Signal EN1 über
den Wechselrichter 416 und das Ausgangssignal der NICHT-ODER-Schaltung 430 als Eingangssignale.
Die NICHT-ODER-Schaltung 430 empfängt das Signal Select und das
Ausgangssignal der UND-Schaltung 428 als Eingangssignale.
-
In ähnlicher
Weise wie in 2a weist die Synchronisierlogik 408 eine
Vielzahl von Flipflops in Kaskadenschaltung auf, zum Beispiel in
Form von D-Flipflops. Jeder der Flipflops wird aufgrund des Wechselrichters 434 mit
dem zugeordneten Eingangstakt, d.h. CLOCK_1, an der negativen Flanke des
Eingangstakts getaktet. Außerdem
weist jedes Flipflop einen Rücksetz-Eingang
auf, der mit EN2 verbunden ist. Das erste Flipflop in der Kaskade empfängt das
Signal SEL1 als Eingangssignal. Die Synchronisierlogik 408 weist
außerdem
eine ODER-Schaltung auf, um die Rücksetzfunktion von nReset zu
vereinfachen. Das Ausgangssignal des Wechselrichters 420 ist
ein Eingangssignal für
die ODER-Schaltung 434. Das Ausgangssignal des letzten
Flipflops in der Kaskade stellt das andere Eingangssignal für die ODER-Schaltung 434 dar.
Das Ausgangssignal der ODER-Schaltung 434 ist EN1. In gleicher
Weise weist die Synchronisierlogik 406 vorzugsweise eine
Vielzahl von Flipflops in Kaskadenschaltung auf, beispielsweise
in Form von D-Flipflops. Jeder der Flipflops wird wegen des Wechselrichters 438 mit
dem zugeordneten Eingangstakt, d.h. CLOCK_2, auf der negativen Flanke
des Eingangstaktes getaktet. Außerdem
weist jedes Flipflop einen mit EN1 verbundenen Rücksetz-Eingang auf. Das erste
Flipflop in der Kaskade empfängt
das Signal SEL2 als Eingangssignal, und das Ausgangssignal des letzten
Flipflops in der Kaskade ist EN2.
-
Wie
zuvor bereits in Verbindung mit 2a beschrieben,
verringert die Verwendung einer Vielzahl von Flipflops statt eines
einzigen Flipflops die Möglichkeit
eines metastabilen Zustands.
-
Die
Signale EN1 und EN2 werden als Rücksetz-Eingangssignale
der entgegen gesetzten Gruppe von Flipflops in der dargestellten
Weise angelegt, um so die entgegen gesetzte Gruppe von Flipflops
in der nachstehend beschriebenen Weise in einen Rücksetzzustand
zu versetzen. Damit wird sichergestellt, dass das entgegen gesetzte
interne Freigabesignal auf niedrigem Pegel liegt, wenn sich eines
der internen Freigabesignale auf hohem Pegel befindet.
-
Die
Ausgabelogik 402 weist eine ODER-Schaltung 440 mit
einem Eingang auf, der mit dem Ausgang einer UND-Schaltung 442 verbunden ist,
während
der andere Eingang mit dem Ausgang einer zweiten UND-Schaltung 446 verbunden
ist. Einer der Eingänge
der UND-Schaltung 442 ist mit CLOCK_1 verbunden, während der
andere Eingang mit EN1 verbunden ist. In gleicher Weise ist einer
der Eingänge
der UND-Schaltung 446 mit CLOCK_2 verbunden, während ihr
anderer Eingang mit EN2 verbunden ist. Das Ausgangssignal der ODER-Schaltung 440 wird
als CLOCK_OUT betrachtet.
-
Nachstehend
wird nun in Verbindung mit dem Zeitdiagramm in 4b die
Funktionsweise der Auswahlschaltung 400 zum Auswählen zwischen den
Taktsignalen CLOCK_1 und CLOCK_2 ausgehend von einem Zustand beschrieben,
in den das Taktsignal CLOCK_1 auf denn Ausgang CLOCK_OUT ausgegeben
wird. Des Weiteren wird zwar die Funktionsweise der Auswahlschaltung 400 im
Zusammenhang mit einem aktiven hohen logischen Pegel beschrieben,
doch liegt auch der Einsatz eines aktiven niedrigen Pegels im Rahmen
der Erfindung.
-
Dabei
ist zu beachten, dass die Auswahlschaltung 400 die Möglichkeit
vorsieht, dass die Eingänge
sich asynchron bezüglich
des ausgewählten Taktes
verändern
können.
Der Grund hierfür
liegt darin, dass eine Veränderung
bei irgendeinem der Eingangssignale durch die Synchronisier-Flipflops 406 und 408 läuft, ehe
sie am Ausgang voll wirksam wird.
-
In
dem Fall, dass gerade das Taktsignal CLOCK_1 am Ausgang CLOCK_OUT
ausgegeben wird, liegen die Signale Select und nReset auf hohem Pegelwert
und ist der Pegelwert des Signals StopCK niedrig. Dies führt dazu,
dass das interne Auswahlsignal SEL1 auf hohem und das Signal SEL2
auf niedrigem Pegel liegen. Das interne Freigabesignal EN1 ist infolgedessen
auf hohem Pegel, wodurch die Synchronisier-Flipflops 406 in
einem Rücksetzzustand gehalten
werden, womit sichergestellt ist, dass das interne Freigabesignal
EN2 in einem Zustand auf niedrigem Pegel gehalten wird. Da EN1 auf
hohem und EN2 auf niedrigem Pegel liegen, wird das Taktsignal CLOCK_1
von der Ausgangslogik 402 ausgegeben.
-
Soll
das Taktsignal CLOCK_2 zur Ausgabe am Ausgang CLOCK_OUT ausgewählt werden,
wird das Signal Select auf niedrigen Pegel geschaltet, wodurch SEL1
zur Umschaltung auf niedrigen Pegel veranlasst wird. Solange das
Signal CLOCK_VALID auf hohem Pegel liegt, was ein Hinweis auf eine
Verriegelung des Phasenregelkreises ist, führt eine Umschaltung von Select
auf niedrigen Pegel dazu, dass SEL2 auf den hohen Pegel umschaltet.
An diesem Punkt hält
EN1 immer noch die Flipflops 406 in einem Rücksetzzustand,
wodurch verhindert wird, dass SEL2 zu EN2 läuft.
-
Die
Flipflops 408 werden jedoch nicht in einem Rücksetzzustand
gehalten, weil EN2 auf niedrigem Pegel ist. Deshalb läuft SEL1
durch die Flipflops 408. Die Flipflops 408 werden
durch die negative Flanke des Signals CLOCK_1 getaktet. Dies führt dazu,
dass EN1 synchron das Ausgangssignal CLOCK_1 am Ausgang CLOCK_OUT
deaktiviert, indem EN1 hinter einer abfallenden Flanke – aber noch vor
einer ansteigenden Flanke – des
Taktsignals CLOCK_1 auf den niedrigen Pegel umschaltet. Diese synchrone
Deaktivierung von CLOCK_1 am Ausgang CLOCK_OUT verhindert die Ausgabe
eines Störimpulses.
-
Dadurch,
dass das interne Freigabesignal EN1 auf den niedrigen Pegel umschaltet,
werden die Flipflops 406 aus dem Rücksetzzustand geschaltet. Deshalb
läuft SEL2
durch die Flipflops 406. Die Flipflops 406 werden
durch die negative Flanke des Taktsignals CLOCK_2 getaktet. Dies
führt dazu,
dass EN2 das am Ausgang CLOCK_OUT ausgegebene Taktsignal CLOCK_2
synchron deaktiviert, indem es nach einer abfallenden Flanke, aber
noch vor einer ansteigenden Flanke, des Signals CLOCK_2 auf den hohen
Pegelwert umschaltet. Diese synchrone Aktivierung des Signals CLOCK_2
am Ausgang CLOCK_OUT verhindert die Ausgabe eines Störimpulses.
Des Weiteren führt
die Umschaltung des internen Freigabesignals EN2 dazu, dass die
Flipflops 408 in einen Rücksetzzustand versetzt werden,
wodurch EN1 auf niedrigem Pegelwert gehalten wird.
-
Die
Funktionsweise der Auswahlschaltung hängt außerdem, wie vorstehend schon
beschrieben, von den Eingangssignalen CLOCK_VALID, nReset und StopCK
ab. Bei CLOCK_VALID handelt es sich um ein Signal, das darauf hinweist,
dass das Takt-Eingangssignal CLOCK_2 korrekt oder zulässig ist,
und dass die Umschaltung fortgesetzt werden kann. Bei der vorliegenden
Auswahlschaltung 400 ist dann, wenn die PLL-Schaltung noch
nicht verriegelt ist und deshalb das Signal CLOCK_2 nicht zulässig ist,
das Signal CLOCK_VALID auf niedrigem Pegelwert, weshalb SEL2 ebenfalls
auf niedrigem Pegel liegt. Dies verhindert, dass das Signal CLOCK_2 ausgegeben
wird, auch wenn das Signal Select auf niedrigem Pegel liegt. Damit
verhindert CLOCK_VALID die Umschaltung auf CLOCK_2, während die
PLL-Schaltung nicht
verriegelt ist (d.h. während
das Signal CLOCK_2 nicht gültig
ist).
-
Für CLOCK_1
oder jeden anderen umzuschaltenden Takt könnte ein ähnliches Signal vorhanden sein.
-
Mit
StopCK wird die Ausgabe am Ausgang CLOCK_OUT angehalten und versetzt
nReset die Auswahlschaltung 400 in einen Rücksetzzustand. Wenn
das Signal StopCK auf hohen Pegel umschaltet, schalten sowohl SEL1
als auch SEL2 auf niedrigen Pegel um, wodurch bewirkt wird, dass
EN1 und auch EN2 auf niedrigem Pegelwert liegen, weshalb die Ausgabe
am Ausgang CLOCK_OUT angehalten wird, wie dies in 4c dargestellt
ist. Wenn nReset auf niedrigen Pegelwert umschaltet, werden die
Signale EN1 und SEL1 auf hohen Pegelwert gezwungen, wodurch EN2
und SEL2 auf niedrigen Pegelwert gezwungen werden. Dies führt dazu,
dass das Taktsignal CLOCK_1 dann am Ausgang CLOCK_OUT ausgegeben
wird.
-
Wie
es für
den Fachmann auf diesem Gebiet auf der Hand liegt, sind Anordnungen
möglich,
bei denen die internen Freigabesignale EN1 und EN1 nicht an den
Rücksetz-Eingängen der
Flipflops angelegt werden. Dies ist in den 4d und 4e dargestellt.
Wie daraus ersichtlich ist, handelt es sich bei der Ausführungsform
in 4d um die gleiche wie bei dem Ausführungsbeispiel
in 4a, mit dem Unterschied, dass die internen Freigabesignale
EN1 und EN1 nicht an die Rücksetz-Eingänge der
entgegen gesetzten Flipflops angelegt werden.
-
In 4e sind
EN1 und EN2 nicht mit den Rücksetz-Anschlüssen der
gegenüber
liegenden Flipflops verbunden. Bei dieser Ausführungsform ist allerdings nReset
mit den Setz-Eingängen
der Flipflops 408 über
den Wechselrichter 404 verbunden. In gleicher Weise ist
nReset mit den Rücksetz-Eingängen der
Flipflops 406 über
einen Wechselrichter 450 verbunden. ODER-Schaltungen 434 und 422 entfallen,
während
das Ausgangsignal der UND-Schaltung 424 direkt zu dem ersten
Flipflop in der Reihe von Flipflops 408 läuft. Bei
dieser Ausführungsform
veranlasst die Umschaltung von nReset auf niedrigen Pegelwert wegen
der Setz-Eingänge
eine Umschaltung von EN1 auf hohen Pegelwert, wohingegen EN2 wegen
der Rücksetz-Eingangssignale auf
niedrigen Pegelwert umschaltet.
-
Eine
andere Ausführungsform
wurde für Steuersignale
(d.h. Select, StopCK und StopClockout) entwickelt, die sich synchron
mit dem ausgewählten
Takt verändern.
Dies geschieht beispielsweise dann, wenn die Taktauswahlschaltung
dazu verwendet wird, einen Prozessor zu takten, der die Steuersignale
abgibt, wie dies in 5a dargestellt ist. Dabei wird
ein Prozessor 501 mit dem Signal CLOCK_OUT einer Taktauswahlschaltung 500 getaktet,
die entsprechend den Grundzügen
der vorliegenden Erfindung ausgelegt ist. Einige der Steuer-Eingangssignale
der Taktauswahlschaltung 500, d.h. Select und nReset, werden
der Auswahlschaltung 500 durch den Prozessor 501 zugeleitet.
StopCK wird als Kombination aus Ausgangssignalen vom Prozessor 501,
der peripheren Logik 503 und der Systemlogik 505 erzeugt.
Da das Ausgangssignal CLOCK_OUT den Prozessor 501 taktet,
verändern sich
die Signale Select, nReset und StopCK synchron, gleich welcher Takt,
CLOCK_1 oder CLOCK_2, zur Ausgabe bei CLOCK_OUT ausgewählt wurde.
-
Entsprechend
der Darstellung in 5b, die ein Ausführungsbeispiel
der Erfindung darstellt, weist die Auswahlschaltung 500 ganz
allgemein eine Aktivierungslogik 502, eine mit dem Taktsignal
CLOCK_1 getaktete Synchronisierlogik 504, eine mit dem
Taktsignal CLOCK_2 getaktete Synchronisierlogik, eine Ausgabelogik 508 und
eine Stromsteuerlogik 510 auf.
-
Die
Freigabelogik 502 erzeugt interne Auswahlsignale SEL1 und
SEL2 auf der Grundlage der Eingangssignale nReset, Select und StopCK.
Das interne Auswahlsignal SEL1 wird als Eingangssignal an die Synchronisierlogik 504 angelegt,
während
das interne Auswahlsignal SEL2 an die Synchronisierlogik 506 angelegt
wird. Die Synchronisierlogik 504 erzeugt ein internes Freigabesignal
EN1 synchron mit dem Taktsignal CLOCK_1, dem das interne Auswahlsignal
SEL1 zugrunde liegt. In gleicher Weise erzeugt die Synchronisierlogik 506 ein
internes Freigabesignal EN2 synchron mit dem Taktsignal CLOCK_2, dem
das interne Auswahlsignal SEL2 zugrunde liegt. Die internen Freigabesignale
EN1 und EN2 werden zusätzlich
zu den Taktsignalen CLOCK_1 und CLOCK_2 und zum Signal StopClockout
als Eingangssignale an die Ausgabelogik 508 angelegt. Die Zustände der
Freigabesignale EN1 und EN2 legen fest, welcher Takt, CLOCK_1 oder
CLOCK_2, von der Ausgabelogik 508 ausgegeben wird. Die
Freigabesignale EN1 und EN2 werden auch der Stromsteuerlogik 510,
zusätzlich
zu den Signalen CLOCK_1 und CLOCK_2, zugeleitet. Die Stromsteuerlogik 510 steuert
in der nachstehend noch ausführlicher
beschriebenen Weise die Taktung der Synchronisierlogik 604 und 506 auf
der Grundlage der Zustände
von EN1 und EN2.
-
Wie
dort dargestellt, weist die Freigabelogik 502 ODER-schaltungen 512, 522 und 520,
einen Wechselrichter 516, eine NICHT-UND-Schaltung 514 und
eine UND-Schaltung 518 auf.
Das Ausgangssignal aus der NICHT-UND-Schaltung 514 ist
SEL1. Einer der Eingänge
der NICHT-UND-Schaltung 514 ist das Signal Select. Der
andere Eingang der NICHT-UND-Schaltung 514 ist der Ausgang
des Wechselrichters 516, der das Ausgangssignal der UND-Schaltung 518 als
Eingangssignal erhält.
Die UND-Schaltung 518 empfängt das Signal nReset und das
Signal StopCK als Eingangssignale. Das Ausgangssignal aus der ODER-Schaltung 520 ist SEL2.
Die ODER-Schaltung 520 empfängt das Signal Select und das
Ausgangssignal der UND-Schaltung 518 als Eingangssignale.
-
Das
Signal nReset wird auch an einen der Eingänge der ODER-Schaltung 512 geführt. Das
andere Eingangssignal an der ODER-Schaltung ist das Ausgangssignal
der NICHT-UND-Schaltung 514, d.h. SEL1. Das Ausgangssignal
der ODER-Schaltung 512 wird
an die Stromsteuerlogik 510 und an die Synchronisierlogik 504 geführt, um
so die Funktion von nReset zu aktivieren. In Gleicher Weise wird
das Signal nReset an einen der Eingänge der ODER-Schaltung 522 geführt. Das
andere Eingangssignal an der ODER-Schaltung 522 ist das
Ausgangssignal der ODER-Schaltung 520,
d.h. SEL2. Das Ausgangssignal der ODER-Schaltung 522 wird
auch an die Stromsteuerlogik 510 geführt, um so die Funktion von
nReset zu aktivieren.
-
Die
Synchronisierlogik 504 weist eine Vielzahl von Flipflops,
wie zum Beispiel D-Flipflops,
in Kaskadenschaltung auf. Jeder der Flipflops wird durch das zugeordnete
Eingangs-Taktsignal, d.h. CLOCK_1, an der positiven Flanke des Eingangs-Taktsignals getaktet.
Das erste Flipflop in der Kaskade empfängt SEL1 als Eingangssignal.
Außerdem
wird das Signal SEL1 an den Setz-Eingang jedes der Flipflops angelegt.
Die Synchronisierlogik 504 weist außerdem eine UND-Schaltung 526 und eine
ODER-Schaltung 524 auf. Am letzten Flipflop in der Kaskade
ist der Ausgang mit der UND-Schaltung 526 verbunden, deren
anderes Eingangssignal das Ausgangssignal aus der ODER-Schaltung 512 ist. Das
Ausgangssignal der UND-Schaltung 526 wird als
Eingangssignal an die ODER-Schaltung 524 geführt. Das
andere Eingangssignal der ODER-Schaltung 524 ist SEL1.
Das Ausgangssignal der ODER-Schaltung 524 ist EN1.
-
In
gleicher Weise weit die Synchronisierlogik 506 eine Vielzahl
von Flipflops, wie zum Beispiel D-Flipflops, in Kaskadenschaltung
auf. Jeder der Flipflops wird durch das zugeordnete Eingangs-Taktsignal,
d.h. CLOCK_2, an der positiven Flanke des Eingangs-Taktsignals getaktet.
Das erste Flipflop in der Kaskade empfängt SEL2 als Eingangssignal.
Außerdem
wird das Signal SEL2 an den Setz-Eingang jedes der Flipflops angelegt.
Die Synchronisierlogik 506 weist außerdem eine UND-Schaltung 530 und eine
ODER-Schaltung 528 auf. Am letzten Flipflop in der Kaskade
ist der Ausgang mit der UND-Schaltung 530 verbunden, deren
anderes Eingangssignal das Ausgangssignal aus der ODER-Schaltung 522 ist. Das
Ausgangssignal der UND-Schaltung 530 wird als
Eingangssignal an die ODER-Schaltung 528 geführt. Das
andere Eingangssignal der ODER-Schaltung 528 ist SEL2.
Das Ausgangssignal der ODER-Schaltung 528 ist EN2.
-
Dabei
ist zu beachten, dass die Verwendung von einer Vielzahl von Flipflops
anstelle eines einzelnen Flipflops die Möglichkeit eines metastabilen
Zustands verringert.
-
Die
Ausgabelogik 508 weist eine UND-Schaltung 548 auf,
deren einer Eingang mit dem Ausgang einer ODER-Schaltung 544 verbunden ist,
während
ihr anderer Eingang mit dem Ausgang einer zweiten ODER-Schaltung 546 verbunden
ist. Einer der Eingänge
der ODER-Schaltung 544 ist mit CLOCK_1 verbunden, während der
andere Eingang mit EN1 verbunden ist. In gleicher Weise ist einer
der Eingänge
der ODER-Schaltung 546 mit CLOCK_2 verbunden, während ihr
anderer Eingang mit EN2 verbunden ist. Das Ausgangssignal der UND-Schaltung 548 wird
als Eingangssignal an die ODER-Schaltung 550 geführt. Das
andere Eingangssignal der ODER-Schaltung 550 ist dabei
das Signal StopClockout. Das Ausgangssignal der ODER-Schaltung 550 wird
als Signal CLOCK_OUT betrachtet.
-
Die
Stromsteuerschaltung weist die NICHT-UND-Schaltung 532,
die UND-Schaltungen 536 und 538 sowie
die ODER-Schaltungen 540 und 542 auf. Die NICHT-UND-Schaltung 532 erhält EN1 und
EN2 als Eingangssignale. das Ausgangssignal der NICHT-UND-Schaltung 4532 wird
als Eingangssignal an die UND-Schaltung 536 angelegt. Die UND-Schaltung 536 empfängt außerdem das
Ausgangssignal aus der ODER-Schaltung 512 als Eingangssignal.
Das Ausgangssignal der UND-Schaltung 536 ist eines der
Eingangssignale in die ODER-Schaltung 540. Das andere Eingangssignal der
ODER-Schaltung 540 ist CLOCK_1. Jeder Taktsignal-Eingang
der Flipflops empfängt
das Ausgangssignal der ODER-Schaltung 540. Das Ausgangssignal
der NICHT-UND-Schaltung 532 ist auch das Eingangssignal
für die
UND-Schaltung 538. Die UND-Schaltung 538 empfängt außerdem das
Ausgangssignal der ODER-Schaltung 522 als Eingangssignal.
Des Ausgangssignal der UND-Schaltung 538 ist eines der
Eingangssignale für
die ODER-Schaltung 542.
Das andere Eingangssignal der ODER-Schaltung 540 ist CLOCK_1.
Dabei empfangen die Flipflops an jedem Takteingang das Ausgangssignal
der ODER-Schaltung 542.
-
Nachstehend
wird nun die Funktionsweise der Auswahlschaltung 500 zur
Auswahl zwischen CLOCK_1 und CLOCK_2 in Verbindung mit dem Zeitsteuerschema
in 5c beschrieben, und zwar ausgehend von einem Zustand,
in dem das Taktsignal CLOCK_1 am Ausgang CLOCK_OUT ausgegeben wird.
-
In
dem Fall, dass gerade das Taktsignal CLOCK_1 am Ausgang CLOCK_OUT
ausgegeben wird, liegen die Signale Select und nReset auf hohem Pegelwert,
während
die Signale StopCK und StopClockout auf niedrigem Pegel liegen.
Dies führt
dazu, dass das interne Auswahlsignal SEL1 dann gerade auf niedrigem
Pegel liegt, während
SEL2 einen hohen Pegelwert hat. Infolgedessen ist das interne Freigabesignal
EN1 auf niedrigem Pegelwert, wohingegen das Freigabesignal EN2 infolgedessen
auf hohem Pegelwert liegt. Da EN1 einen niedrigen Pegel hat und
EN2 einen hohen, wird das Taktsignal CLOCK_1 aus der Ausgabelogik 508 am
Ausgang CLOCK_OUT abgegeben.
-
Wie
zuvor bereits beschrieben, werden die Freigabesignale EN1 und EN2
auch als Eingangssignal in die Stromsteuerlogik 510 geleitet,
zusätzlich zu
den Taktsignalen CLOCK_1 und CLOCK_2. Die Stromsteuerlogik 510 steuert
die Taktik der Synchronisierungslogik 504 und 506 auf
der Grundlage der Zustände
von EN1 und EN2, um so den Stromverbrauch der Auswahlschaltung 500 zu
verringern. Wenn deshalb ein Takt zur Ausgabe freigegeben wird,
verhindert die Stromsteuerlogik 510 der Synchronisierlogik 504 und 506,
wohingegen während des
Umschaltens zwischen Takten oder nach Rücksetzung die Stromsteuerlogik 510 eine
Taktung der Synchronisierungslogik 504 und 506 ermöglicht.
Die Stromsteuerlogik verhindert als solche die Taktung der Synchronisierlogik 504 und 506,
wenn das Taktsignal CLOCK_1 ausgegeben wird.
-
Soll
das Taktsignal CLOCK_2 aus Ausgangssignal am Ausgang CLOCK_OUT ausgewählt werden,
wird das Signal Select auf niedrigen Pegelwert geschaltet. Die Umschaltung
von Select auf niedrigen Pegelwert führt dazu, dass das Signal SEL2
auf niedrigen Pegelwert umschaltet, während die Signale SEL1 und
EN1 auf hohen Pegelwert gesetzt werden. Da das Auswahlsignal Select
mit dem aktuell ausgewählten
Takt synchronisiert ist, kann die Ausgabe des Signals CLOCK_1 am
Ausgang CLOCK_OUT deaktiviert werden, wenn das Signal Select verändert wird.
Der Grund hierfür
liegt darin, dass Select mit dem aktuell ausgewählten Takt synchronisiert ist
und dabei CLOCK_1 deaktiviert, wenn sich das Signal Select verändert und
CLOCK_1 synchron mit sich selbst deaktiviert. Die Freischaltung von
CLOCK_2 am Ausgang CLOCK_OUT muss jedoch immer noch mit CLOCK_2
synchronisiert werden, um die Ausgabe eines Störimpulses zu verhindern. Deshalb
hält die
Synchronisierlogik 506 das Signal EN2 auf dem hohen Pegelwert.
-
Da
beide Signale EN1 und EN2 auf dem hohen Pegel liegen (was ein Hinweis
auf die Umschaltung der Takte ist), lässt die Stromsteuerschaltung 510 die
Taktung der Synchronisierlogik 504 und 506 zu.
Aus diesem Grund läuft
das Signal SEL2 durch die Synchronisierlogik 506 hindurch.
Die Synchronisierlogik 506 wird durch die positive Flanke
des Taktsignals CLOCK_1 getaktet. Dies führt dazu, dass EN1 synchron
die Ausgabe de Signals CLOCK_2 am Ausgang CLOCK_OUT freigibt, indem
es im Anschluss an eine ansteigende Flanke, aber noch vor einer
abfallenden Flanke, auf den niedrigen Pegelwert umschaltet. Diese
synchronisierte Freigabe von CLOCK_2 am Ausgang CLOCK_OUT verhindert
die Ausgabe eines Störimpulses.
Außerdem
führt die Umschaltung
von EN2 auf einen hohen Pegelwert dazu, dass die Stromsteuerlogik 510 die
Taktung der Synchronisierlogik 504 und 506 verhindert.
-
Wie
vorstehend bereits beschrieben, hängt die Arbeitsweise der Auswahlschaltung 500 auch
von den Eingangssignalen nReset, StopCK und Stop Clockout ab. Das
Signal nReset versetzt die Auswahlschaltung 500 in einen
Rücksetzzustand.
Während
der Initialisierung der Logik liegt das Signal nReset auf niedrigem,
und das Signal Select auf hohem Pegel. Dies erzwingt, dass das Ausgangssignal
der UND-Schaltung 514 auf niedrigem Pegel liegt und das
Ausgangssignal der ODER-Schaltung 520 auf hohem Pegel liegt.
Außerdem
ist das Ausgangssignal der ODER-Schaltung 512 auf niedrigem
Pegelwert. Das Ausgangssignal der ODER-Schaltung 520 setzt
die Flipflops der Synchronisierungslogik 506, wohingegen
das Ausgangssignal der ODER-Schaltung 512 erzwingt, dass
das Taktsignal CLOCK_1 die Synchronisierlogik taktet, die nach ein
paar Taktsignalflanken initialisiert wird (was bedeutet, dass das Signal
SEL1 durch die Flipflops läuft).
-
Wenn
das Signal StopClockout auf den hohen Pegelwert umschaltet, ist
der Ausgang CLOCK_OUT auf hohem Pegelwert ausgeblendet, wodurch
die Ausgabe des Taktsignals CLOCK_1 oder des Signals CLOCK_2 am
Ausgang CLOCK_OUT wirksam verhindert wird, wie dies in 5c dargestellt
ist. Im typischen Fall verwendet der Prozessor, der mit der Auswahlschaltung 500 getaktet
wird, das Signal StopClockout, um in einen Stromabschalt-Modus zu
gehen, in dem keine Taktung vorhanden ist. Wenn ein Prozessor in
einen Stromausschaltmodus übergeht,
muss es eine Möglichkeit
geben, wie der Prozessor aufgeweckt werden kann. Aus diesem Grund
wird eine Nebenschaltung verwendet, die immer noch ein Taktsignal
empfängt und
die den Prozessor reaktivieren kann. Damit die Nebenschaltung immer
noch ein Taktsignal empfangen kann, steht vorzugsweise an der Auswahlschaltung 500 immer
noch ein Taktsignal, vorzugsweise das Signal IO_CK, zur Verfügung, während das
Signal StopClockout immer noch auf niedrigem Pegel liegt. Wenn nun
das Signal StopClockout auf hohem Pegelwert liegt, bleibt das Ausgabesignal CLOCK_OUT
zwar auf hohem Pegelwert, doch fungiert das Signal IO_CK weiterhin
als Taktsignal.
-
Das
Signal StopCK hält
die Ausgabe aus der Auswahlschaltung 500 vollständig an,
einschließlich des
Signals IO_CK. Wie aus dem Hinweis auf 5e entnommen
werden kann, ist dann, wenn das Signal CLOCK_2 am Ausgang CLOCK_OUT
ausgegeben wird, das Signal EN1 auf hohem Pegel, während das Signal
EN2 auf niedrigem Pegel liegt. Wenn das Signal StopCK auf den hohen
Pegelwert umschaltet, schaltet auch EN1 auf den hohen Pegelwert
um. Dies führt
dazu, dass die Signale CLOCK_OUT und IO_CK auf hohem Pegelwert bleiben.
Wie aus 5f entnommen werden kann, wird
in gleicher Weise das Taktsignal CLOCK_1 am Ausgang CLOCK_OUT ausgegeben,
liegt das Signal EN2 auf hohem Pegelwert und liegt das Signal EN1
auf dem niedrigen Pegelwert. Wenn das Signal StopCK auf den hohen
Pegelwert umschaltet, so führt
dies auch dazu, dass das Signal CLOCK_OUT und das Signal IO_CK auf
dem hohen Pegelwert bleiben.
-
Auch
wenn die vorliegende Erfindung im Zusammenhang mit einem bevorzugten
Ausführungsbeispiel
beschrieben wurde, können
daran verschiedene Veränderungen
vorgenommen werden, die vom Umfang der beiliegenden Ansprüche mit
erfasst werden.