ES2265718A1 - Sistema y metodo para compensar una oblicuidad entre una primera señal de reloj y una segunda señal de reloj. - Google Patents
Sistema y metodo para compensar una oblicuidad entre una primera señal de reloj y una segunda señal de reloj. Download PDFInfo
- Publication number
- ES2265718A1 ES2265718A1 ES200401000A ES200401000A ES2265718A1 ES 2265718 A1 ES2265718 A1 ES 2265718A1 ES 200401000 A ES200401000 A ES 200401000A ES 200401000 A ES200401000 A ES 200401000A ES 2265718 A1 ES2265718 A1 ES 2265718A1
- Authority
- ES
- Spain
- Prior art keywords
- clock
- signal
- synchronizer
- obliqueness
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
Abstract
Sistema y método para compensar la oblicuidad en un sincronizador programable de reloj para efectuar la transferencia de datos entre unos primeros circuitos dispuestos en un primer dominio de reloj y unos segundos circuitos dispuestos en un segundo dominio de reloj. En una realización del sistema, se proporciona un detector de fase para detectar una fase entre la primera y segunda señales de reloj. Un detector del estado de oblicuidad, dispuesto en comunicación con el detector de fase, es capaz de funcionar para generar una señal de estado de oblicuidad que rastrea una relación de fase entre las señales de reloj. Un generador de señales de control del sincronizador responde a la señal de estado de oblicuidad generando al menos una señal de control para compensar la oblicuidad entre la primera señal de reloj y la segunda señal de reloj.
Description
Sistema y método para compensar una oblicuidad
entre una primera señal de reloj y una segunda señal de reloj.
Esta solicitud no provisional reivindica una
prioridad sobre la base de la siguiente solicitud de patente
estadounidense provisional anterior titulada: "Programmable Clock
Synchronizer and Controller Arrangement Therefor", Nº de
Solicitud: 60/469.120, presentada el 9 de marzo de 2003, a nombre
de: Richard W. Adkisson, que se incorpora como referencia en el
presente documento.
Esta solicitud describe un tema relacionado con
el tema descrito en las siguientes solicitudes de patente, de
propiedad común, en tramitación junto la presente: (i)
"Programmable Clock Synchronizer", presentada ____; Nº de
Solicitud ____ (Nº de Expediente 200207722-2), a
nombre de: Richard W. Adkisson; (ii) "Controller Arrangement for
a Programmable Clock Synchronizer", presentada ____; Nº de
Solicitud ____ (Nº de Expediente 200207723-1), a
nombre de: Richard W. Adkisson; (iii) "System and Method for
Synchronizing Multiple Synchronizer Controllers", presentada
____; Nº de Solicitud ____ (Nº de Expediente
200207724-1), a nombre de: Richard W. Adkisson; (iv)
"System and Method for Maintaining a Stable Synchronization State
in a Programmable Clock Synchronizer", presentada ____; Nº de
Solicitud ____ (Nº de Expediente 200208008-1), a
nombre de: Richard W. Adkisson; y (v) "Phase Detector for a
Programmable Clock Synchronizer", presentada ____; Nº de
Solicitud ____(Nº de Expediente 200208010-1),
a nombre de: Richard W. Adkisson, todas las cuales se incorporan
como referencia en el presente
documento.
documento.
Frecuentemente, los sistemas electrónicos
digitales, por ejemplo, sistemas informáticos, necesitan
comunicarse empleando diferentes interfaces, funcionando cada una a
una velocidad optimizada para un rendimiento mejorado.
Habitualmente, se utilizan múltiples señales de reloj que tienen
frecuencias diferentes para proporcionar una temporización adecuada
a las interfaces. Además, generalmente las frecuencias de este tipo
de señales de reloj están relacionadas entre sí de una manera
predeterminada. Por ejemplo, un reloj central o del sistema que
funciona a una frecuencia (F_{C}) en particular, puede utilizarse
como un reloj maestro en un sistema informático típico para
proporcionar una base de tiempos con respecto a una parte
específica de sus circuitos digitales. Otras partes de los
circuitos digitales del sistema informático (tales como un segmento
de bus y los circuitos lógicos dispuestos en el mismo) pueden
cronometrarse empleando señales de temporización recibidas del
reloj maestro, con lo que las frecuencias (F_{D}) obtenidas
cumplen la relación: F_{C}/F_{D} \geq 1.
Debido a la naturaleza asíncrona, aunque
relacionada, de las partes constituyentes de los circuitos
digitales, habitualmente se emplean circuitos sincronizadores en
los sistemas informáticos para sincronizar las operaciones de
transferencia de datos a través de una frontera de un dominio de
reloj con el fin de evitar errores de datos relacionados con la
temporización. Típicamente, se requiere que tales circuitos
sincronizadores posean una latencia baja (lo que requiere un
control preciso de los relojes asíncronos que respectivamente
cronometran las partes de circuito en dos dominios de reloj
distintos). Típicamente, en las disposiciones convencionales de
circuitos sincronizadores se emplean bucles enganchados en fase
(phase locked loop - PLL) para producir relojes de frecuencias
diferentes, si bien relacionadas. Los PLL pueden tener una gran
cantidad de inestabilidad de fase de entrada/salida (input/output -
I/O) que tiene como resultado una diferencia de fase de baja
frecuencia, u oblicuidad (skew), entre los distintos relojes de los
circuitos sincronizadores. Por consiguiente, es esencial
proporcionar una compensación de la oblicuidad entre los distintos
relojes de los circuitos sincronizadores.
Se describe un sistema y un método que
proporcionan compensación de la oblicuidad en un sincronizador
programable de reloj para efectuar la transferencia de datos entre
unos primeros circuitos dispuestos en un primer dominio de reloj y
unos segundos circuitos dispuestos en un segundo dominio de reloj.
En una realización del sistema, se proporciona un detector de fase
para la detección de una fase entre la primera y segunda señales de
reloj. Un detector del estado de oblicuidad en comunicación con el
detector de fase es capaz de funcionar para generar una señal de
estado de oblicuidad que rastree una relación de fase entre las
señales de reloj. Un generador de señales de control del
sincronizador responde a la señal de estado de oblicuidad generando
al menos una señal de control para compensar la oblicuidad entre la
primera señal de reloj y la segunda señal de reloj.
La figura 1 representa un diagrama de bloques de
una realización de un sistema sincronizador programable para
efectuar la transferencia de datos a través de una frontera entre
relojes;
la figura 2 representa un diagrama de
temporización asociado con la transferencia de datos desde los
circuitos del dominio del reloj de bus a los circuitos del dominio
del reloj central, teniendo los dominios una relación de
frecuencias de 5:4, con lo que puede utilizarse el sincronizador
programable de la figura 1;
la figura 3 representa un diagrama de bloques de
una realización de un controlador del sincronizador de reloj
central para efectuar la transferencia de datos a través de una
frontera entre relojes;
la figura 4 representa un diagrama de bloques de
una parte del controlador del sincronizador de reloj central de la
figura 3 que ilustra con más detalle una realización de un sistema
para compensar la oblicuidad entre distintos relojes de los
circuitos del sincronizador;
la figura 5 representa un diagrama esquemático
de una realización de una parte de un detector del estado de
oblicuidad empleado junto con las enseñanzas descritas en el
presente documento;
la figura 6 representa un diagrama de flujos de
una realización de un método para compensar la oblicuidad entre una
primera señal de reloj y una segunda señal de reloj;
la figura 7 representa una realización de una
máquina de estado efectuada por un detector del estado de
oblicuidad asociado con el sistema para compensar la oblicuidad
entre una primera señal de reloj y una segunda señal de reloj que
tiene una relación de frecuencias de 5:4; y
la figura 8 muestra un diagrama de temporización
de dos dominios de reloj que tienen una relación de frecuencias de
5:4, en el que se ilustran con más detalle las señales de reloj
asociadas con las transiciones del estado de oblicuidad de la
figura 7.
En los dibujos, los elementos iguales o
similares se designan con números de referencia idénticos en las
varias vistas de los mismos, y los varios elementos representados
no están necesariamente dibujados a escala. Haciendo ahora
referencia a la figura 1, en la misma se representa una realización
de un sistema 100 sincronizador programable para efectuar la
transferencia de datos a través de una frontera entre relojes entre
un primer dominio de reloj (es decir, "el dominio de reloj
rápido"), que tiene N ciclos de reloj, y un segundo dominio de
reloj (por ejemplo, el "dominio de reloj lento"), que tiene M
ciclos de reloj, de manera que N/M > 1. Típicamente, M = (N - 1)
y, a título de implementación ejemplar, el sistema 100 sincronizador
puede proporcionarse como parte de un sistema informático para
transferir datos entre un dominio del reloj central más rápido (por
ejemplo, que funciona con una señal del reloj central de 250 MHz) y
un dominio del reloj de bus más lento (por ejemplo, que funciona
con una señal de reloj de bus de 200 MHz), con una relación de
frecuencias de 5:4. Por consiguiente, para los objetivos de esta
solicitud de patente presente, los términos "primer reloj" y
"reloj central" se emplearán indistintamente con respecto a un
dominio de reloj rápido; similarmente, los términos "segundo
reloj" y "reloj de bus" se emplearán con respecto a un
dominio de reloj lento.
Un circuito 104 de bucle enganchado en fase
(PLL) es capaz de funcionar para generar un impulso 110 SINC y una
señal 108 (designada como reloj_bus) de reloj de bus (es decir,
segundo reloj) basada en una señal 106 (designada como
reloj_central) de reloj central (es decir, primer reloj)
suministrada al mismo. Tal como se verá a continuación, el impulso
110 SINC proporciona un punto de referencia para coordinar las
operaciones de transferencia de datos y se eleva cuando las señales
reloj_bus y reloj_central tiene bordes ascendentes que coinciden.
Las dos señales 106, 108 de reloj y el impulso 110 SINC se
proporcionan a un bloque 102 sincronizador/controlador que se
extiende a ambos lados de la frontera entre relojes, entre un
primer dominio de reloj (es decir, el dominio del reloj central) y
un segundo dominio de reloj (es decir, el dominio del reloj de bus)
para efectuar la transferencia de datos a través de la frontera.
Los números de referencia 103A y 103B hacen referencia a los
circuitos dispuestos en el primer y segundo dominios de reloj,
respectivamente, por ejemplo, una lógica de dominio del reloj
central y una lógica de dominio del reloj de bus, que transmiten y
reciben datos entre los mismos según se facilitan a través de los
sincronizadores 105A y 105B, que se describirán con más detalle a
continuación en el presente documento.
Cada una de las señales 106, 108 de
reloj_central y reloj_bus se suministra primero a un respectivo
bloque en árbol de distribución de reloj para generar una señal de
reloj distribuida que se suministra a varias partes del bloque 102
sincronizador/controlador. El número de referencia 112 se refiere
al árbol de distribución de reloj capaz de funcionar con la señal
106 reloj_central para generar la señal reloj_central distribuida,
que en la figura 1 se designa como "c" y se muestra con el
número de referencia 106'. Asimismo, el número de referencia 114 se
refiere al árbol 114 de distribución de reloj capaz de funcionar
con la señal 108 reloj_bus para generar la señal reloj_bus
distribuida, que en la figura 1 se designa como "b" y se
muestra con el número de referencia 108'. Como debería reconocer
fácilmente un experto en la técnica, las señales de reloj
distribuidas son esencialmente las mismas que las señales de reloj
de entrada. Por consiguiente, la señal 106 reloj_central y su
contrapartida distribuida c 106' se tratan en lo sucesivo de manera
equivalente. Similarmente, también la señal 108 reloj_bus y su
contrapartida distribuida b 108' se consideran equivalentes.
Un bloque 116 lógico de muestreo SINC es capaz
de funcionar en repuesta a las señales 106', 108' de reloj
distribuidas y a la señal 110 de impulso SINC para generar un par
de impulsos SINC muestreados que se envían a circuitos
controladores apropiados del sincronizador. En una realización, los
impulsos SINC muestreados se obtienen de la siguiente manera. El
impulso 110 SINC es muestreado dos veces por dos elementos
biestables (flip flop - FF) (no mostrados en la figura 1) que se
cronometran en el borde ascendente de la señal reloj_central
distribuida, c 106'. Tal como puede apreciarse, el muestreo por dos
elementos FF es efectivo para eliminar la metaestabilidad asociada
con el impulso 110 SINC (que posiblemente surge debido a la
oblicuidad entre la señal de entrada, reloj_central 106, y la señal
de salida, SINC 110). El impulso SINC muestreado dos veces se
designa en la figura 1 como señal 118 "sinc", que se
suministra a un primer controlador 124 del sincronizador (o
controlador del sincronizador del reloj central) que funciona en el
primer dominio de reloj.
Con respecto al segundo dominio de reloj (es
decir, el dominio del reloj de bus), el impulso 110 SINC es
muestreado en el bloque 116 lógico de muestreo SINC por un único
elemento FF (no mostrado en esta figura) que se cronometra en el
borde ascendente de la señal reloj_bus distribuida, b 108'. Para
indicar que el muestreo se realiza empleando la señal reloj_bus, el
impulso SINC muestreado se designa como señal 120 "sinc_B",
que se suministra a un segundo controlador 122 del sincronizador
que funciona en el segundo dominio de reloj, al que también se hace
referencia en la figura 1 como el controlador del sincronizador del
reloj de bus.
El controlador 122 del sincronizador del reloj
de bus es capaz de funcionar en respuesta a la señal reloj_bus
distribuida, b 108', y al impulso 120 sinc_B muestreado para generar
una pluralidad de señales de control del sincronizador, una parte
de las cuales se dirige a un primer medio 105A de circuito
sincronizador, que funciona para controlar la transferencia de
datos desde unos primeros circuitos 103A (es decir, la lógica del
dominio del reloj central) a unos segundos circuitos 103B (es
decir, la lógica del dominio del reloj de bus). El número de
referencia 132 se refiere a la trayectoria de las señales de esta
parte de las señales de control que proceden del controlador 122
del sincronizador del reloj de bus. Otra parte de las señales de
control del sincronizador generadas por el controlador 122 del
sincronizador del reloj de bus se dirigen (a través de la
trayectoria 134 de señales) a un segundo medio 105B de circuito
sincronizador, que funciona para controlar la transferencia de
datos desde los segundos circuitos 103B a los primeros circuitos
103A. En concordancia con la nomenclatura empleada en la presente
solicitud de patente, los primeros y segundos circuitos
sincronizadores también pueden referirse como circuitos de
sincronizador central a bus y sincronizador de bus a central,
respectivamente. Además, el controlador 122 del sincronizador del
reloj de bus también genera un conjunto señales de control entre
controladores que se suministran al primer controlador 124 del
sincronizador (es decir, el controlador del sincronizador del reloj
central), de manera que ambos controladores puedan trabajar juntos.
El número de referencia 128 se refiere a la trayectoria de señales
de la(s) serial(es) de control de la relación de
reloj entre controladores que se proporciona(n) al
controlador 124 del sincronizador del reloj central.
Semejante al funcionamiento del controlador 122
del sincronizador del reloj de bus, el controlador 124 del
sincronizador del reloj central es capaz de funcionar en respuesta
a la señal reloj_central distribuida, c 106', a las señales de
control entre controladores y al impulso 118 sinc muestreado para
generar una pluralidad señales de control del sincronizador, una
parte de las cuales se dirige al primer medio 105A de circuito
sincronizador y otra parte de las cuales se dirige al segundo medio
105B de circuito sincronizador. Los números de referencia 138 y 140
se refieren a las correspondientes trayectorias de señales
relativas a estas señales de control. El controlador 124 del
sincronizador del reloj central también genera señales de control
de transmisión/recepción de datos que se suministran a la lógica
103A del dominio del reloj central a través de la trayectoria 136
de señales con el fin de que la lógica 103A del dominio del reloj
central sepa cuándo puede enviar datos a la lógica 103B del dominio
del reloj de bus (es decir, operaciones de transferencia válidas) y
cuándo puede recibir datos procedentes de la lógica 103B del
dominio del reloj de bus (es decir, operaciones de recepción
válidas).
Todas las señales de control procedentes del
controlador 122 del sincronizador del reloj de bus para el primer y
segundo sincronizador 105A, 105B se hace pasar por uno o más
elementos FF que se cronometran con la señal reloj_bus distribuida,
b 108'. Asimismo, las señales de control procedentes del
controlador 124 del sincronizador del reloj central se hacen pasar
por una serie de elementos FF cronometrados con la señal
reloj_central distribuida, c 106', antes de suministrarse a las
varias partes del sistema 100 sincronizador. Por consiguiente, tal
como se verá con más detalle posteriormente, las varias señales de
control asociadas con el sistema 100 sincronizador pueden
designarse con una etiqueta de señal que se concatena con un sufijo
"_ff" o "_ff_B" para indicar el proceso de registro por
la señal reloj_central distribuida o por la señal reloj_bus
distribuida.
Un detector 130 de fase detecta las diferencias
de fase (es decir, la oblicuidad) entre las dos señales de reloj al
funcionar en respuesta a las señales reloj_bus y reloj_central
muestreadas. Esta información se proporciona al controlador 124 del
sincronizador del reloj central, el cual puede compensar la
oblicuidad o determinar los momentos apropiados para coordinarse
con el controlador 122 del sincronizador del reloj de bus.
Si la señal de reloj de bus es estable con
respecto al impulso SINC, las señales de control de la relación de
reloj entre controladores son generadas por el controlador 122 del
sincronizador del reloj de bus, que proporcionan información
relativa a la relación de frecuencia de las primera y segunda
señales de reloj, la información de secuencia de reloj y el retraso
SINC, que se transmiten al controlador 124 del sincronizador del
reloj central para la sincronización de su señal de reloj central
según las mismas. Por otro lado, si la señal de reloj central es
estable con respecto al impulso SINC, las señales de control de la
relación de reloj entre controladores son generadas por el
controlador 124 del sincronizador del reloj central para la
transmisión al controlador 122 del sincronizador del reloj de bus,
de manera que ambos controladores del sincronizador puedan
sincronizarse apropiadamente. Además, una interfaz 126 de
configuración, designada en la figura 1 como Config_SINC, se
proporciona como parte del sistema 100 sincronizador programable
para configurar el controlador 124 del sincronizador del reloj
central, de manera que pueda programarse para diferentes
tolerancias de oblicuidad, latencias de oblicuidad y modos de
funcionamiento En una realización, la interfaz 126 de configuración
puede implementarse como un registro que tiene una pluralidad de
bits. En otra realización, puede proporcionarse un ajuste basado en
la memoria, por ejemplo, unos ajustes almacenados en una EPROM,
como una interfaz de configuración SINC.
Pueden encontrarse detalles adicionales
relativos a los varios subsistemas descritos anteriormente en el
presente documento en las siguientes solicitudes de patente, de
propiedad común, en tramitación junto con la presente: (i)
"Programmable Clock Synchronizer", presentada ____; Nº de
Solicitud ____ (Nº de Expediente 200207722-2), a
nombre de: Richard W. Adkisson; (ii) "Controller Arrangement for
a Programmable Clock Synchronizer", presentada ____; Nº de
Solicitud ____ (Nº de Expediente 200207723-1), a
nombre de: Richard W. Adkisson; (iii) "System and Me-thod
for Synchronizing Multiple Synchronizer Controllers", presentada
_____; Nº de Solicitud ____ (Nº de Expediente
200207724-1), a nombre de: Richard W. Adkisson; (iv)
"System and Method for Maintaining a Stable
Synchronization State in a Programmable Clock
Synchronizer", presentada ____; Nº de Solicitud ____ (Nº de
Expediente 200208008-1), a nombre de: Richard W.
Adkisson; y (v) "Phase Detector for a Programmable Clock
Synchronizer", (Detector de Fase para un Sincronizador
Programable de Reloj) presentada ____; Nº de Solicitud ____ (Nº de
Expediente 200208010-1), a nombre de: Richard W.
Adkisson, todas las cuales se incorporan como referencia en el
presente documento.
Tal como se ha expuesto anteriormente, el
sistema 100 sincronizador puede programarse para diferentes
tolerancias y latencias de oblicuidad, de manera que la
transferencia de datos a altas velocidades pueda tener lugar
apropiadamente incluso cuando existe una oblicuidad elevada o un
requisito de baja latencia. Además, el sistema 100 sincronizador
puede funcionar con cualquiera de dos dominios de reloj que tengan
una relación de N primeros ciclos de reloj a M segundos ciclos de
reloj, donde N/M \geq 1. A efectos ilustrativos, a continuación
se expone con detalle el funcionamiento de una realización del
sistema 100 sincronizador programable para transferir datos desde
el dominio del reloj de bus al dominio del reloj central, teniendo
los dominios de reloj una relación de frecuencias de 5:4.
La figura 2 representa un diagrama 200 de
temporización de dos dominios de reloj que tienen una relación de
frecuencias de 5:4, en el que puede utilizarse el sistema
sincronizador programable de la figura 1 para efectuar la
transferencia de datos a través de la frontera entre relojes desde
los circuitos del dominio del reloj de bus hasta los circuitos del
dominio del reloj central. En particular, la figura 2 ilustra la
relación temporal de las varias señales de control asociadas con el
sistema 100 sincronizador de la figura 1 y el efecto de diferentes
tolerancias y latencias de oblicuidad. Un recuento 202 de ciclo se
refiere a la numeración de ciclos de la señal reloj_central en una
secuencia de temporización en particular. Se ilustran dos
secuencias [A, B, C, D] y [A2, B2, C2, D2] de datos 204 de bus,
teniendo cada bloque una anchura de k bits y estando disponible
para un ciclo de reloj en particular, de 0 a 3. Pueden programarse
diferentes factores de tolerancia y de latencia de oblicuidad y, en
concreto, en un modo 5:4, por ejemplo, un bloque de registro de
multiplexor de un circuito sincronizador de bus al central (no
mostrado), que es cronometrado por el reloj central, puede captar
datos cinco veces pero, puesto que sólo cuatro transferencia de
datos pueden proceder del dominio de bus, únicamente se emplearán
cuatro (teniendo el ciclo extra una parte de datos no utilizada,
marcada con una X en los Paneles 206A-206C). Pueden
encontrarse detalles adicionales sobre la funcionalidad de control
de la carga y captura de datos de un circuito sincronizador del
reloj de bus al central a modo de ejemplo en la antedicha solicitud
de patente estadounidense en trámite junto con la presente,
titulada "Programmable Clock Synchronizer", presentada ____ Nº
de Solicitud ____ (Nº de Expediente 200207722-2), a
nombre de: Richard W. Adkisson.
En el Panel A 206A, se muestra la transferencia
de datos desde los circuitos del dominio de bus, cargándose los
datos de bus, para suministrarse como los datos b0_ff 208A y b1_ff
208B, a través de un par de bloques de registro de multiplexor, en
los circuitos del dominio central, como la salida 210 central_ff de
datos captados, donde se programa una condición que implica una
tolerancia de oblicuidad de 0,25 y una latencia añadida de 0,625.
La tolerancia de oblicuidad, que en este caso se mide en ciclos del
reloj central, se define como la distancia mínima entre muestra de
datos (es decir, central_ff 210) y entrada de datos cambiante (es
decir, b0_ff 208A o b1_ff 208B). La latencia añadida también se
mide en ciclos del reloj central, obtenidos al promediar los
valores asociados con los cuatro bloques de datos (desde el inicio
de la entrada de datos, es decir, b0_ff o b1_ff a central_ff). La
latencia real se determina como un ciclo de la señal reloj_bus más
la latencia añadida, que en el modo 5:4 se traduce en 1,25 ciclos
de la señal reloj_central más la latencia añadida.
Tal como se muestra en el Panel A 206A, que
ilustra la mejor condición de latencia pero con la peor tolerancia
de oblicuidad, el controlador 124 del sincronizador del reloj
central genera la señal 212 b2c_válida_ff, de manera que no hay
ninguna operación de recepción válida durante el ciclo 0 de la
señal reloj_central (es decir, su primer ciclo). La salida, es
decir, central_ff 210, incluye el bloque [A] de datos de b1_ff
208B, a continuación, el bloque [B] de datos de b0_ff 208A, a
continuación el bloque [C] de datos de b1_ff 208B, y a
continuación, de nuevo el bloque [C] de datos (en el ciclo 0 de la
segunda secuencia de la señal reloj_central, que es el ciclo extra
no utilizado, dando lugar por tanto al bloque C o XC de datos no
válido), y por último, el bloque [D] de datos de b0_ff: 208A.
Puesto que el bloque [C] válido se cargó en central_ff 210,
procedente de b1_ff 208B, 0,25 ciclos de la señal reloj_central
después de que b1_ff 208B lo cargara, la tolerancia de oblicuidad
es 0,25 ciclos de la señal reloj_central.
El Panel B 206B de la figura 2 ilustra el modo
de programación con la siguiente mejor condición de latencia
(latencia añadida = 0,875) que tiene la siguiente mejor tolerancia
de oblicuidad (= 0,5 ciclos de la señal reloj_central). Bajo estas
condiciones, el controlador 124 del sincronizador del reloj central
genera bac_válida_ff 212 de manera que se reduce en el quinto ciclo
de la señal reloj_central (es decir, el ciclo 4). La salida, es
decir, central_ff 210, incluye el bloque [A] de datos de b1_ff
208B, a continuación, el bloque [B] de datos de b0_ff 208A, y de
nuevo el bloque [B] de datos que no se emplea (en el ciclo 4 de la
primera secuencia de la señal reloj_central, que es el ciclo extra
sin utilizar, dando lugar así al bloque B o XB de datos no válido),
a continuación el bloque [C] de datos de b1_ff 208B, y por último,
el bloque [D] de datos de b0_ff 208A. Puesto que el bloque [B]
válido se cargó en central_ff 210, procedente de b0_ff 208A, 0,5
ciclos de la señal reloj_central después de que apareciera en b0_ff
208A, la tolerancia de oblicuidad es 0,5 ciclos de la señal
reloj_central.
El modo de programación con la peor latencia (=
1,125) y la mejor tolerancia de oblicuidad (= 0,75 ciclos de la
señal reloj_central) se muestra en el Panel C 206C de la figura 2.
El controlador 124 del sincronizador del reloj central genera
bac_válida ff 212 de manera que se reduce en el cuarto ciclo de la
señal reloj_central (es decir, el ciclo 3). La salida, es decir,
central_ff 210, incluye el bloque [A] de b1_ff 208B (en el ciclo 2
de la primera secuencia de la señal reloj_central), y de nuevo el
bloque [A] de datos que no se emplea (en el ciclo 3 de la primera
secuencia de la señal reloj_central, que es el ciclo extra sin
utilizar, dando lugar así al bloque A o XA de datos no válido), y a
continuación el bloque [B] de datos de b0_ff 208A, a continuación
el bloque [C] de datos de b1_ff 208B, y por último el bloque [D] de
datos de b0_ff 208A. Puesto que el bloque [A] válido se cargó en
central_ff 210 procedente de b1_ff 208A, 0,75 ciclos de la señal
reloj_central tras aparecer en b0_ff 208A, la tolerancia es 0,75
ciclos de la señal reloj_central. Tal como se señaló anteriormente,
la latencia añadida es el promedio del tiempo (en ciclos de la
señal reloj_central) desde b0_ff o b1_ff a central_ff para todos
los datos empleados. Por consiguiente, no se muestra valor de
latencia alguno en ninguna parte de datos con una X.
Sobre la base de la discusión anterior, debería
apreciarse que la realización del sincronizador de la presente
invención puede programarse para diferentes latencias y tolerancias
de oblicuidad, para la transferencia de datos a través de una
frontera entre relojes entre dos dominios de reloj cualesquiera que
tengan una relación N:M conocida (por ejemplo, M = N - 1). Sin
embargo, debería advertirse que, independientemente de la latencia
y la tolerancia de oblicuidad programadas, el reloj central puede
ir lo suficientemente retrasado con respecto al reloj de bus como
para que los bordes coincidentes se desplacen al siguiente borde
del reloj de bus. Alternativamente, el reloj central puede ir lo
suficientemente adelantado con respecto al reloj de bus como para
que los bordes coincidentes se desplacen al borde anterior del
reloj. Las enseñanzas descritas en el presente documento compensan
una oblicuidad variablemente grande entre la señal de reloj central
y la señal de reloj de bus, por ejemplo, mayor que una diferencia
de un periodo de reloj entre la señal de reloj central y la señal
de reloj de bus. Además, como se explicará de forma más detallada
posteriormente en el presente documento, las enseñanzas descritas en
el presente documento pueden compensar una cantidad infinita de
oblicuidad.
La figura 3 representa una realización de un
sincronizador 124 del reloj central para efectuar la transferencia
de datos a través de una frontera entre relojes. El sincronizador
del reloj central comprende varios componentes lógicos
interconectados, incluyendo un bloque 300 muestreador de relaciones
del sincronizador (sinc), un bloque 302 muestreador de secuencias,
un bloque 304 detector de secuencias de precisión, un bloque 306
muestreador sincb0, un bloque 308 detector de impulsos del
sincronizador, un bloque 310 detector de estados estables, un
bloque 312 generador de ciclos y secuencias, un bloque 314 detector
del estado de oblicuidad, y un bloque 316 generador de señales de
control del sincronizador. Tal como se expone con más detalle en la
solicitud de patente estadounidense en tramitación junto con la
presente, titulada "Controller Arrangement for a Programmable
Clock Synchronizer", presentada ____; Nº de Solicitud ____ (Nº de
Expediente 200207723-1), a nombre de: Richard W.
Adkisson, se proporcionan varias señales de control de relaciones de
reloj entre controladores, concretamente, relación_ sinc_B 320,
secuencia_B 322, y sincb0_B 332, como entradas a los circuitos
controladores del sincronizador del reloj central procedentes del
correspondiente controlador del sincronizador del reloj de bus. Tal
como se describe adicionalmente en el presente documento, estas
señales de control entre controladores se emplean junto con
información de configuración de sincronización suministrada a
través de la interfaz 126 de configuración de SINC (mostrada en la
figura 1) para generar señales de control interno adicionales
dentro del controlador del sincronizador del reloj central, para
efectuar la funcionalidad de los varios módulos constituyentes del
mismo. Por consiguiente, a continuación sólo se describirán ciertas
características destacadas del controlador 124 del sincronizador
del reloj central.
El bloque 300 muestreador de relaciones del
sincronizador genera una señal 318 relación_sinc de M bits de
anchura al muestrear señales 320 relación_sinc_B de M bits de ancho
procedentes del dominio del bloque de bus. El bloque 302
muestreador de secuencias muestrea la señal 322 secuencia_B en el
borde ascendente del reloj central para producir una señal 324
secuencia_ra. Adicionalmente, el bloque 302 muestreador de
secuencias muestrea la señal 322 secuencia_B en el borde
descendente del reloj central para producir una señal 326
secuencia_rd. El detector 304 de secuencias de precisión genera una
señal 328 estado_sec y una señal 330 secuencia en respuesta a la
señal 324 secuencia_ra y la señal 324 secuencia_rd. El controlador
124 del sincronizador del reloj central sincroniza una señal 332
sincb0B empleando el bloque 306 muestreador sincb0, que produce una
señal 334 sincb0_ra y una señal 336 sincb0_rd al emplear una
técnica similar de muestreo. El bloque 308 detector de impulsos del
sincronizador genera una señal 338 sinc_bordea en respuesta a una
señal 340 sinc, por ejemplo, sinc 118 proporcionada por la lógica
116 de muestreo SINC (mostrada en la figura 1).
Tal como se tratará con más detalle a
continuación en el presente documento, el controlador 124 del
sincronizador del reloj central emplea el detector 304 de
secuencias de precisión, el detector 310 de estados estables, el
generador 312 de ciclos y secuencias, y el detector 314 de estados
de oblicuidad para proporcionar el uso de todo el intervalo de
oblicuidades en modos en los que la tolerancia de oblicuidad sea
mayor que una mitad del reloj central y en los que inicialmente no
pueda contarse con que la oblicuidad entre los relojes central y de
bus sea menor que la mitad del reloj central. El bloque 310
detector de estados estables recibe la señal 318 relación_sinc
proporcionada por el bloque 300 muestreador de relaciones del
sincronizador, una señal 342 config_sinc proporcionada por la
interfaz 126 de configuración del sincronizador de la figura 1, una
señal 344 sinc_bloqueada y una señal 346 pd_c proporcionadas por el
bloque 314 detector del estado de oblicuidad, y una señal 348 ciclo
y una señal 350 ciclo_se_ha_cargado proporcionadas por el generador
312 de ciclos y secuencias. Sobre la base de las antedichas señales
de entrada, el bloque 310 detector de estados estables genera una
señal 352 sincronizador_estable que puede transmitirse a los
circuitos 103A lógicos del dominio del reloj central (mostrados en
la figura 1). También se genera una señal 354 estado_estable que se
emplea internamente para generar otras señales de control interno
de los circuitos controladores del sincronizador del reloj
central.
El bloque 312 generador de ciclos y secuencias
recibe la señal 318 relación_sinc procedente del bloque 300
muestreador de relaciones del sincronizador, la señal 342
config_sinc procedente de la interfaz 126 de configuración del
sincronizador, de la figura 1, la señal 354 estado_estable
procedente del bloque 310 detector de estados estables, las señales
324 y 326 secuencia_ra y secuencia_rd procedentes del bloque 302
muestreador de secuencias, la señal 338 sinc_bordea procedente del
bloque 308 detector de impulsos del sincronizador, una señal 356
estado_oblicuidad procedente del bloque 314 detector del estado de
oblicuidad, la señal 330 secuencia procedente del bloque 304
detector de secuencias de precisión, las señales 334 y 336
sincb0_ra y sincb0_rd procedentes del bloque 306 muestreador sincb,
y las señales 358 y 360 pd_b_ra y pd_b_rd procedentes del bloque
130 detector de fase de la figura 1. En respuesta a las señales de
entrada, el generador 312 de ciclos y secuencias hace valer la
señal 350 ciclo_se_ha_cargado, la señal 348 ciclo y una señal 362
secuencia.
Tal como se ilustra, el detector 314 de estados
de oblicuidad recibe la señal 318 relación_sinc procedente del
bloque 300 muestreador de relaciones del sincronizador, la señal
342 config_sinc procedente del bloque 126 de interfaz de
configuración del sincronizador de la figura 1, la señal 354
estado_estable procedente del detector 310 de estados estables, la
señal 348 ciclo procedente del generador 312 de ciclos y
secuencias, la señal 338 sinc_bordea procedente del detector 308 de
impulsos del sincronizador, las señales 358 y 360 pd_b_ra y pd_b_rd
procedentes del detector 130 de fase de la figura 1, y la señal 328
estado_sec procedente del detector 304 de secuencias de precisión.
En respuesta a las señales recibidas, el detector 314 de estados de
oblicuidad hace valer la señal 344 sinc_bloqueada, la señal 346 pd_c
y la señal 356 estado_oblicuidad.
El bloque 316 generador de señales de control
del sincronizador recibe la señal 318 relación_sinc procedente del
bloque 300 muestreador de relaciones del sincronizador, la señal
342 config_sinc procedente de la interfaz 126 de configuración del
sincronizador, las señales 348 y 362 ciclo y secuencia procedentes
del bloque 312 generador de ciclos y secuencias, y la señal 356
estado_oblicuidad procedente del bloque 314 detector del estado de
oblicuidad. En respuesta a las señales de entrada, el bloque 312
generador de señales de control del generador hace valer una señal
362 c0_sel, una señal 364 c1_sel, una señal 366 central sel, una
señal 368 bac_válida, una señal 370 cab_válida y una señal 372
cab_válida_m. En la antedicha solicitud de patente estadounidense,
en tramitación junto con la presente, titulada "Controller
Arrangement for a Programmable Clock Synchronizer", presentada
____; Nº de Solicitud ____ (Nº de Expediente
200207723-1), a nombre de: Richard W. Adkisson,
pueden encontrase detalles adicionales relativos a las señales
362-372.
La figura 4 representa una parte 400 lógica del
controlador 124 del sincronizador del reloj central de la figura 3
con el fin de poner de relieve con más detalle una realización de
un sistema que proporciona una compensación de la oblicuidad. El
bloque 130 detector de fase es capaz de funcionar para muestrear la
segunda señal de reloj empleando la primera señal de reloj y hace
valer la señal 358 pd_b_ra y la señal 360 pd_b_rd. En la antedicha
solicitud de patente estadounidense, en tramitación junto con la
presente, titulada "Phase Detector for a Programmable Clock
Synchronizer", (Detector de Fase para un Sincronizador
Programable de Reloj) presentada ____; Nº de Solicitud ____ (Nº de
Expediente 200208010-1), a nombre de: Richard W.
Adkisson, puede hallarse información adicional sobre el detector de
fase. La señal 358 pd_b_ra y la señal 360 pd_b_rd son recibidas en
la parte 400 lógica digital del bloque 124 controlador del
sincronizador del reloj central por el bloque 314 detector del
estado de oblicuidad, que está situado en comunicación con el bloque
130 detector de fase. El bloque 314 detector del estado de
oblicuidad determina una señal de estado de oblicuidad, es decir,
la señal 356 estado_oblicuidad capaz de funcionar para rastrear una
relación de fase entre la primera y segunda señales de reloj, que
el bloque 316 generador de señales de control del sincronizador
emplea para generar una pluralidad de señales de control del
sincronizador (por ejemplo, unas señales 402 de control) en
instantes particulares que compensan la diferencia de oblicuidad
entre las señales de reloj. En particular, cuando los componentes
del bloque 124 controlador del sincronizador del reloj central se
encuentran en un modo de infinidad, el sistema descrito en el
presente documento puede proporcionar una tolerancia y una
compensación de oblicuidad, incluso durante un periodo completo del
reloj central o más, entre la primera señal de reloj y la segunda
señal de reloj.
Más concretamente, con respecto al
funcionamiento del bloque 314 detector del estado de oblicuidad, el
bloque 314 detector del estado de oblicuidad emplea una variedad de
señales en combinación con la señal 358 pd_b_ra y la señal 360
pd_b_rd para generar la señal 356 estado_oblicuidad. En
particular, el bloque 126 de interfaz de configuración de
sincronización de la figura 1 suministra la señal 342 config_sinc
al bloque 314 detector del estado de oblicuidad con el fin de
establecer las diferentes latencias, modos de funcionamiento y
tolerancias de oblicuidad. Por ejemplo, la señal 342 config_sinc
puede utilizarse para fijar la tolerancia de oblicuidad en el modo
0,75, tal como se describió anteriormente en relación con la figura
2. Adicionalmente, el bloque 314 detector del estado de oblicuidad
recibe la señal 348 ciclo procedente del bloque 312 generador de
ciclos y secuencias, la señal 318 relación_sinc procedente del
bloque 300 muestreador de relaciones del sincronizador, la señal
328 estado_sec procedente del bloque 304 detector de secuencias de
precisión, la señal 338 sinc_bordea procedente del bloque 308
detector de impulsos del sincronizador, y la señal 354
estado_estable procedente del bloque 310 detector de estados
estables. Empleando las señales anteriormente mencionadas, el
bloque detector del estado de oblicuidad determina el estado de
oblicuidad determinando la posición de los bordes coincidentes del
reloj de bus y del reloj central relativa al reloj de bus. El
estado de oblicuidad se trata como un "estado C" al detectarse
los bordes ascendentes, coincidentes, del reloj de bus y del reloj
central en el punto cero, es decir, el ciclo 0 de la ventana de
temporización del reloj de bus. Si se detecta que el borde
ascendente del reloj central va retrasado con respecto al borde
ascendente del reloj de bus, entonces el estado de oblicuidad es un
estado positivo de oblicuidad. Por ejemplo, si el borde ascendente
del reloj central tiene un retraso de un cuarto de ciclo con
respecto al reloj de bus, entonces el estado es P1, es decir, más
uno. Similarmente, si el borde ascendente del reloj central tiene
un adelanto de medio ciclo con respecto al reloj de bus, entonces
el estado es M2, es decir, menos dos. Una vez que la señal del
reloj central va adelantada o retrasada con respecto al reloj de
bus en un periodo completo del reloj de bus, el detector del estado
de oblicuidad devuelve el estado de oblicuidad a su estado
original, C. De esta manera, puede rastrearse y compensarse una
cantidad arbitrariamente grande y potencialmente infinita de
oblicuidad.
En una realización, cuando se está detectando
por primera vez la fase correcta, inicialmente el bloque 314
detector del estado de oblicuidad no puede emplear el bloque 130
detector de fase de la figura 1, puesto que puede haber presente un
efecto de dentado (aliasing). Por ejemplo, con la relación de
frecuencias de 5:4, la señal del reloj central que va por detrás de
la señal del reloj de bus en un cuarto del reloj central, es
idéntica a la central que va por delante de la de bus en tres
cuartos del reloj central. Por tanto, inicialmente, cuando no se
hace valer completamente la señal 354 estado_estable, el cambio
(más o menos) de estado sólo se detecta en un ciclo cuando el
bloque 308 detector de impulsos del sincronizador detecta el borde
y el bloque 130 detector de fase detecta un cambio, o si el bloque
308 detector de impulsos del sincronizador detecta que el borde se
ha movido a otro reloj. Tras bloquearse la señal, el cambio, más o
menos, se detecta en el ciclo 0 si el bloque 130 detector de fase
detecta un cambio o si el bloque 308 detector de impulsos del
sincronizador detecta un movimiento grande del borde (por ejemplo,
dos relojes). En una realización, para evitar problemas de
estabilidad debido al tiempo de retardo, la señal 356
estado_oblicuidad sólo cambia si ha estado en el mismo estado
durante al menos dos ciclos. Tras dos ciclos de estabilidad, por
ejemplo, si se ha detectado un cambio en el estado de oblicuidad,
entonces el cambio se almacena pero sólo se implementa en la última
secuencia.
Más concretamente, con respecto al
funcionamiento del bloque 316 generador de señales de control del
sincronizador, el bloque 316 generador de señales de control del
sincronizador emplea una variedad de señales para generar las
señales 402 de control, las cuales incluyen la señal 362 c0_sel, la
señal 364 c1_sel, la señal 366 central_sel, la señal 368
bac_válida, la señal 370 cab_válida y la señal 372 cab_válida_m,
enviadas a los circuitos del sincronizador que incluyen el
sincronizador 105A central-al-bus y
el sincronizador 105B
bus-al-central. Tal como se aludió
anteriormente, en la antedicha solicitud de patente estadounidense,
en tramitación con la presente, titulada "Programmable Clock
Synchronizer", presentada ____; Nº de Solicitud ____ (Nº de
Expediente 200207722-2), a nombre de: Richard W.
Adkisson, puede encontrarse información adicional sobre las señales
402 de control. No obstante, un experto en la técnica debería
reconocer que pueden emplearse otros tipos de controladores del
sincronizador que generen diferentes señales de control para poner
en práctica la invención expuesta en el presente documento.
Siguiendo haciendo referencia al bloque 316
generador de señales de control del sincronizador, además de la
señal 356 estado_oblicuidad, el bloque 316 generador de señales de
control del sincronizador recibe la señal 342 config_sinc
procedente de la interfaz 126 de configuración del sincronizador,
la señal 318 relación_sinc procedente del bloque 300 muestreador de
relaciones del sincronizador, y la señal 348 ciclo y la señal 362
secuencia procedentes del bloque 312 generador de ciclos y
secuencias. El bloque 316 generador de señales de control del
sincronizador decodifica la relación sincronización 318, la señal
342 config_sinc, la señal 348 ciclo, la señal 362 secuencia y la
señal 356 estado_oblicuidad para iniciar las señales 402 de control
en los instantes apropiados.
Por ejemplo, para una relación de frecuencias de
5:4, es decir, la señal 318 relación sinc = 5:4, cuando el estado
de oblicuidad equivale a C, es decir, la señal 356
estado_oblicuidad equivale a C, el bloque 316 generador de señales
de control del sincronizador hace valer el patrón "tol oblicuidad
= 0,75", en el que la señal 368 bac_válida se hace valer
reducida en el ciclo 3. Sin embargo, cuando la señal 356
estado_oblicuidad = P1, el bloque 316 generador de señales de
control del sincronizador hace valer la señal 318 bac_válida
reducida en el ciclo 4. Cuando la señal 356 estado_oblicuidad = P2,
el bloque 316 generador de señales de control del sincronizador
hace valer reducida la señal 318 bac_válida reducida en el ciclo 0.
Cuando la señal 356 estado_oblicuidad = M1, el bloque 316 generador
de señales de control del sincronizador hace valer la señal 318
bac_válida reducida en el ciclo 2. La señal 370 cab_válida realiza
una progresión similar desde el ciclo 1 al ciclo 2 y finalmente de
vuelta al ciclo 1. Además, la señal 362 c0_sel, la señal 364 c1_sel
y la señal 366 central_sel se compensan de una manera similar para
permitir una tolerancia de oblicuidad de 0,75 ciclos de reloj
central en los nuevos estados de oblicuidad. En una realización,
los estados alternantes representados por la señal 362 c0_sel y la
señal 364 c1_sel, cambian en relación con la señal 370 cab_válida,
y el valor de la señal 366 central sel cambia en relación con el
valor de la señal 370 cab_válida. Además, el valor de la señal 372
cab_válida_m puede contemplarse como una indicación temprana del
valor de la señal 370 cab_válida y de los varios estados
transicionales, por ejemplo C_P1.
La figura 5 representa una realización de una
parte de un detector 500 del estado de oblicuidad empleado junto
con las enseñanzas descritas en el presente documento. El detector
130 de fase hace valer la señal 358 pd_b_ra y la señal 360 pd_b_rd,
que son recibidas por una primera parte 502 de circuito que
determina los bordes coincidentes. La primera parte 502 del
circuito incluye una serie de tres registradores que muestrean la
señal 358 pd_b_ra, y una serie de dos registradores que muestrean
la señal 360 pd_b_rd. Las dos señales muestreadas se suministran de
forma cruzada a un par de compuertas AND (Y) cuyas salidas se
proporcionan a una compuerta OR (O). La primera parte 502 del
circuito es capaz de funcionar para detectar el primer borde, que
es una transición 1-a-0 en la señal
ascendente, es decir, la señal 358 pd_b_ra, y una transición
0-a-1 en la señal descendente, es
decir, la señal 360 pd_b_rd. Cuando detecta una condición actual
(bien un 0 en la subida, bien un 1 en la bajada) y las dos
condiciones anteriores (1 en la subida y 0 en la bajada), la
primera parte del circuito hace valer una señal indicativa del
borde coincidente detectado a una segunda parte 504 del circuito
que determina el estado de oblicuidad y la señalización
asociada.
Más concretamente, dentro de la segunda parte
504 del circuito, una serie de registradores 506 funciona para
proporcionar una pluralidad de tomas a un primer conjunto de
bloques 508 MUX. La señal 356 estado_oblicuidad proporciona control
a los bloques 508 MUX, los cuales determinan la transición del
estado de oblicuidad para cada relación. Una vez que se ha
determinado la transición del estado de oblicuidad, un segundo
conjunto de bloques 510 MUX controlados por la señal 318
relación_sinc, determina la transición apropiada de oblicuidad que
corresponde con la relación de sincronización de las señales de
reloj empleadas. Debería apreciarse que únicamente se representa
una parte de la segunda parte 504 del circuito. En particular, una
realización de la segunda parte 504 del circuito completa incluiría
un bloque 510 MUX para cada transición de oblicuidad (es decir,
más, menos o ninguna) y un bloque 508 MUX para cada relación de
frecuencias. Tal como se ha ilustrado, se muestran bloques 510 MUX
para cada una de las transiciones pd_c (ninguna) y pd_p1 (más uno)
de oblicuidad ilustradas, y se muestran bloques 508 MUX para cada
relación de frecuencias, 5:4 y 4:3. Asimismo, se proporcionan
bloques 510 y 508 MUX con respecto a otras transiciones, por
ejemplo, pd_p2 (más 2), pd_m1 (menos 1) y pd_m2 (menos 2).
Durante el funcionamiento, la segunda parte 504
del circuito del bloque 314 detector del estado de oblicuidad hace
valer la señal 346 pd_c cuando el bloque 130 detector de fase
detecta bordes ascendentes del reloj de bus y del reloj central
coincidentes en el punto cero, es decir, la posición en la que el
bloque 308 detector de impulsos del sincronizador establece que
está colocado el borde coincidente. Con la señal 342 config_sinc
ajustada en modo de infinidad, la señal pd_c está activa cuando la
señal 356 estado_oblicuidad compensa la oblicuidad.
La figura 6 representa un método para compensar
la oblicuidad entre una primera señal de reloj y una segunda señal
de reloj. En una realización, este método puede practicarse junto
con un detector de fase que es capaz de funcionar para muestrear un
reloj (por ejemplo, una segunda señal de reloj) empleando otro
reloj (por ejemplo, una primera señal de reloj), para determinar
una diferencia de fase entre los mismos. El método comienza en el
bloque 600, en el que se determina la posición de los bordes
coincidentes relativa a la primera señal de reloj y a la segunda
señal de reloj. Los bordes coincidentes pueden ser, bien bordes
ascendentes coincidentes, bien bordes descendentes coincidentes. En
el bloque 602 se hace una determinación sobre si es necesaria una
transición de oblicuidad y, si lo es, por cuánto, lo cual se basa
en rastrear la relación de fase entre las señales de reloj. En
respuesta a la determinación en el bloque 602, la transición desde
el estado actual de oblicuidad hasta un nuevo estado de oblicuidad
se efectúa, por ejemplo, en una máquina de estado (bloque 604).
Después, en el bloque 606, se genera una señal indicativa del nuevo
estado de oblicuidad, la cual emplean los circuitos controladores
para ajustar apropiadamente la producción de sus señales de control
del sincronizador, compensando así la oblicuidad entre la primera
señal de reloj y la segunda señal de reloj. Un experto normal en la
técnica debería apreciar que el presente método puede proporcionar
compensación para una oblicuidad que oscila entre 1/8 de un ciclo
hasta un periodo completo de reloj o más.
La figura 7 representa una realización de una
máquina 700 de estado efectuada por el detector del estado de
oblicuidad asociado con el sistema para compensar la oblicuidad
entre una primer señal de reloj y una segunda señal de reloj para
una relación de frecuencias de 5:4. Con referencia al diagrama de
estado de transición de la máquina 700 de estado, los óvalos en
negrita ilustran los estados, P1, P2, M1, M2 y C, que, a su vez,
representan múltiplos de un cuarto de la oblicuidad del reloj
central. En particular, el estado P1 (más 1) representa +1/4 de la
oblicuidad del reloj, el estado P2 (más 2) representa +1/2 de la
oblicuidad del reloj, el estado M1 (menos 1) representa -1/4 de la
oblicuidad del reloj, el estado M2 (menos 2) representa -1/2 de la
oblicuidad del reloj y el estado C (cero) representa 0 de la
oblicuidad del reloj. Tal como se describió anteriormente, el
estado de oblicuidad es C cuando se detectan bordes ascendentes,
coincidentes, del reloj de bus y del reloj central en el punto
cero, es decir, el ciclo 0 de la ventana de temporización del reloj
de bus. Si se detecta que el borde ascendente del reloj central va
retrasado con respecto al borde ascendente del reloj de bus,
entonces el estado de oblicuidad es un estado positivo de
oblicuidad, tal como P1 o P2. Por otra parte, si se detecta que el
borde ascendente del reloj central va adelantado con respecto al
borde ascendente del reloj de bus, entonces el estado de oblicuidad
es un estado negativo de oblicuidad, tal como M1 o M2, dependiendo
de la cantidad en la que el borde ascendente del reloj central va
adelantado respecto al borde ascendente del reloj de bus. Los
óvalos, tal como C_P1 y M2_M1, ilustran estados transicionales
intermedios. Por ejemplo, la transición C_P1 indica una transición
positiva desde el estado C al estado P1, y la transición M1_M2
indica una transición negativa desde el estado M1 al estado M2. El
detector 314 de estados de oblicuidad detecta dinámicamente,
determina y rastrea el estado de oblicuidad con el fin de compensar
la diferencia de fase entre las señales del reloj central y del
reloj de bus. Además, con el fin de proporcionar una cantidad
infinita de tolerancia de oblicuidad, el detector del estado de
oblicuidad prevé la transición del estado de oblicuidad de nuevo a
C cuando se detecte un periodo completo de reloj de oblicuidad.
La figura 8 representa un diagrama de
temporización de dos dominios de reloj que tiene una relación de
frecuencias de 5:4, en el que se ilustra con más detalle una
realización de las transiciones del estado de oblicuidad de la
figura 7. El recuento 810 de ciclos se refiere a la numeración de
los ciclos de la señal reloj_bus en una secuencia de temporización
particular. La señal 106' del reloj central y la señal 108' del
reloj de bus se ilustran en un periodo de tiempo representado por
una serie de paneles, es decir, la Trama A 802, la Trama B 804, la
Trama C 806, la Trama D 808 y la Trama E 810. El estado 812 de
oblicuidad del sistema en cada panel 802-810 se
indica a la derecha del panel. Por ejemplo, en la Trama A 802, el
estado 812 de oblicuidad es C, y en la Trama D 808, el estado de
oblicuidad es M1. Los bordes 814 coincidentes (bc) indican los
bordes ascendentes coincidentes de la señal 106' del reloj central
y de la señal 108' del reloj de bus. Tal como se ha ilustrado, en
la Trama A 802 m, el estado 812 de oblicuidad equivale a C ya que
los bordes 814 coincidentes se encuentran en el ciclo 0. En la
Trama B 804, cuando el reloj central va retrasado con respecto al
reloj de bus en 1/4 de reloj central, el estado de oblicuidad pasa
desde C a P1 a través de una transición C_P1. En este panel, los
bordes 814 coincidentes se encuentran situados en el borde
ascendente del segundo ciclo, es, el ciclo 1. Tal como se ilustra
en la Trama C 806, a medida que el reloj central se retrasa aún más
(es decir, 1/2 de la oblicuidad del reloj central), los bordes 814
coincidentes están situados en el borde ascendente del tercer
ciclo, es decir, el ciclo 2. En este instante, el estado 812 de
oblicuidad en P2, o más dos. Durante la Trama D 808, el reloj
central va retrasado con respecto al reloj de bus en otro cuarto de
ciclo, de manera que el estado 812 de oblicuidad pasa a M1, que es
equivalente a P3 en un esquema de sincronización con relación de
frecuencias de 5:4, a través de una transición P2_M1. En la Trama E
810, una diferencia adicional de oblicuidad (es decir, 1/4 de ciclo
más) hace que el estado de oblicuidad pase de M1 a C, a través de
la transición M1_C. En este instante, se encuentra presente un
periodo completo de reloj central de oblicuidad y el estado de
oblicuidad ha vuelto de nuevo al estado C de oblicuidad. Tal como
se apreciará, esto podría producirse un número de veces
arbitrariamente grande. Por consiguiente, aunque la cantidad de
oblicuidad puede ser arbitrariamente grande o infinita, la
oblicuidad puede rastrearse y compensarse.
Como se ha mencionado anteriormente, las figuras
6 y 8 se han representado un método para compensar la oblicuidad
entre dos dominios de reloj, es decir, entre la dicha primera señal
de reloj y la segunda señal de reloj, y un diagrama de
temporización de dos dominios de reloj, de manera dicha primera
señal de reloj y dicha segunda señal de reloj se encuentren
espaciadas al menos en un cuarto de ciclo, es decir, 1/4 de la
oblicuidad del reloj central.
Aunque la invención se ha descrito
particularmente con referencia a ciertas ilustraciones, debe
entenderse que las formas de la invención mostrada y descrita deben
tratarse únicamente como realizaciones ejemplares. Pueden
realizarse varios cambios, sustituciones y modificaciones sin
salirse del espíritu y el alcance de la invención tal como se
define en las reivindicaciones adjuntas.
Claims (20)
1. Sistema para compensar la oblicuidad en un
sincronizador programable de reloj, para efectuar la transferencia
de datos entre unos primeros circuitos dispuestos en un primer
dominio de reloj y unos segundos circuitos dispuestos en un segundo
dominio de reloj, con lo que dicho primer dominio de reloj es capaz
de funcionar con una primera señal de reloj y dicho segundo dominio
de reloj es capaz de funcionar con una segunda señal de reloj,
teniendo dichas primera y segunda señales de reloj una relación de
N primeros ciclos de reloj a M segundos ciclos de reloj, donde N/M
\geq 1, que comprende:
un detector de fase que es capaz de funcionar
para detectar una fase entre dicha primera señal de reloj y dicha
segunda señal de reloj;
un detector del estado de oblicuidad dispuesto
en comunicación con dicho detector de fase para generar una señal
de estado de fase que rastree una relación de fase entre dicha
primera señal de reloj y dicha segunda señal de reloj; y
un generador de señales de control del
sincronizador, sensible a dicha señal de estado de oblicuidad, que
funciona para generar al menos una señal de control para compensar
dicha oblicuidad entre dicha primera señal de reloj y dicha segunda
señal de reloj.
2. Sistema según la reivindicación 1, en el que
dicha señal de estado de oblicuidad es capaz de funcionar para
compensar una diferencia mayor que un periodo de reloj entre dicha
primera señal de reloj y dicha segunda señal de reloj.
3. Sistema según la reivindicación 1, en el que
dicha señal de estado de oblicuidad es capaz de funcionar para
rastrear dicha relación de fase entre dicha primera señal de reloj
y dicha segunda señal de reloj sobre la base de la situación de los
bordes coincidentes de dichas primera y segunda señales de
reloj.
4. Sistema según la reivindicación 3, en el que
dichos bordes coincidentes comprenden unos bordes ascendentes
coincidentes.
5. Sistema según la reivindicación 3, en el que
dichos bordes coincidentes comprenden bordes descendentes
coincidentes.
6. Sistema según la reivindicación 1, en el que
dicho detector del estado de oblicuidad genera dicha señal de
estado de oblicuidad (estado_obl) en respuesta a unas señales de
reloj muestreadas (pd_b_ra y pd_b_rd) proporcionadas por dicho
detector de fase.
7. Sistema según la reivindicación 1, en el que
dicha al menos una señal de control del sincronizador se transmite
a los circuitos del sincronizador.
8. Sistema según la reivindicación 1, en el que
dicha al menos una señal de control del sincronizador se selecciona
del grupo de señales que está compuesto por c0_sel, c1_sel,
central_sel, bac_válida, cab_válida y cab_válida_m.
9. Método para compensar la oblicuidad en un
sincronizador programable de reloj, para efectuar la transferencia
de datos entre unos primeros circuitos dispuestos en un primer
dominio de reloj y unos segundos circuitos dispuestos en un segundo
dominio de reloj, con lo que dicho primer dominio de reloj es capaz
de funcionar con una primera señal de reloj y dicho segundo dominio
de reloj es capaz de funcionar con una segunda señal de reloj,
teniendo dichas primera y segunda señales de reloj una relación de
N primeros ciclos de reloj a M segundos ciclos de reloj, donde N/M
\geq 1, que comprende:
la determinación de la posición de los bordes
coincidentes de dicha primera señal de reloj y de dicha segunda
señal de reloj;
la determinación de si es necesaria una
transición de estado sobre la base del rastreo de la posición de
dichos bordes coincidentes de dichas primera y segunda señales de
reloj; y
la generación de una señal de control indicativa
de dicha transición de estado, compensando así dicha oblicuidad
entre dicha primera señal de reloj y dicha segunda señal de
reloj.
10. Método según la reivindicación 9, en el que
la operación de determinación de la posición de los bordes
coincidentes comprende la determinación de que dicha primera señal
de reloj y dicha segunda señal de reloj se encuentren espaciadas al
menos un cuarto de ciclo.
11. Método según la reivindicación 9, en el que
dicha transición de estado comprende una transición que rastrea una
diferencia negativa de oblicuidad entre dichas primera y segunda
señales de reloj.
\newpage
12. Método según la reivindicación 9, en el que
dicha transición de estado comprende una transición que rastrea una
diferencia positiva de oblicuidad entre dichas primera y segunda
señales de reloj.
13. Método según la reivindicación 9, en el que
dicha señal de control es capaz de funcionar para indicar que no es
necesaria ninguna transición de estado de oblicuidad.
14. Método según la reivindicación 9, en el que
dicha señal de control es indicativa de una relación temporal entre
dichos bordes coincidentes y dicha segunda señal de reloj.
15. Sistema informático que tiene un aparato
para compensar la oblicuidad en un sincronizador programable de
reloj, para efectuar la transferencia de datos entre unos primeros
circuitos dispuestos en un primer dominio de reloj y unos segundos
circuitos dispuestos en un segundo dominio de reloj, con lo que
dicho primer dominio de reloj es capaz de funcionar con una primera
señal de reloj y dicho segundo dominio de reloj es capaz de
funcionar con una segunda señal de reloj, teniendo dichas primera y
segunda señales de reloj una relación de N primeros ciclos de reloj
a M segundos ciclos de reloj, donde N/M \geq 1, que
comprende:
un medio para determinar la posición de los
bordes coincidentes de dicha primera señal de reloj y dicha segunda
señal de reloj;
un medio para determinar si es necesaria una
transición de estado sobre la base del rastreo de la posición de
dichos bordes coincidentes de dichas primera y segunda señales de
reloj; y
un medio para generar una señal de control
indicativa de dicho estado de transición, compensando así dicha
oblicuidad entre dicha primera señal de reloj y dicha segunda señal
de reloj.
16. Sistema informático según la reivindicación
15, en el que dicho medio para determinar la posición de los bordes
coincidentes comprende además un medio para determinar que dicha
primera señal de reloj y dicha segunda señal de reloj se encuentren
espaciadas al menos en un cuarto de ciclo.
17. Sistema informático según la reivindicación
15, en el que dicha transición de estado comprende una transición
que rastrea una diferencia negativa de oblicuidad entre dichas
primera y segunda señales de reloj.
18. Sistema informático según la reivindicación
15, en el que dicha transición de estado comprende una transición
que rastrea una diferencia positiva de oblicuidad entre dichas
primera y segunda señales de reloj.
19. Sistema informático según la reivindicación
15, en el que dicha señal de control es capaz de funcionar para
indicar que no es necesaria ninguna transición de estado de
oblicuidad.
20. Sistema informático según la reivindicación
15, en el que dicha señal de control es indicativa de una relación
temporal entre dichos bordes coincidentes y dicha segunda señal de
reloj.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US46912003P | 2003-05-09 | 2003-05-09 | |
US60/469120 | 2003-05-09 | ||
US60/469,120 | 2003-05-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
ES2265718A1 true ES2265718A1 (es) | 2007-02-16 |
ES2265718B2 ES2265718B2 (es) | 2007-08-16 |
Family
ID=35125823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES200401000A Expired - Fee Related ES2265718B2 (es) | 2003-05-09 | 2004-04-27 | Sistema y metodo para compensar una oblicuidad entre una primera señal de reloj y una segunda señal de reloj. |
Country Status (3)
Country | Link |
---|---|
US (4) | US7245684B2 (es) |
ES (1) | ES2265718B2 (es) |
SG (1) | SG113502A1 (es) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4658050B2 (ja) | 2003-09-02 | 2011-03-23 | サーフ テクノロジー インコーポレイテッド | 衛星測位信号用の信号処理システム |
US7792650B2 (en) * | 2003-09-02 | 2010-09-07 | Sirf Technology Inc. | Edge-aligned ratio counter |
US7268605B2 (en) * | 2004-06-14 | 2007-09-11 | Rambus, Inc. | Technique for operating a delay circuit |
US7230461B1 (en) * | 2004-06-29 | 2007-06-12 | Marvell International, Ltd. | Retiming circuits for phase-locked loops |
US7340631B2 (en) * | 2004-07-23 | 2008-03-04 | Hewlett-Packard Development Company, L.P. | Drift-tolerant sync pulse circuit in a sync pulse generator |
US20060146967A1 (en) * | 2004-12-31 | 2006-07-06 | Adarsh Panikkar | Keep-out asynchronous clock alignment scheme |
US7346795B2 (en) * | 2004-12-31 | 2008-03-18 | Intel Corporation | Delaying lanes in order to align all lanes crossing between two clock domains |
US7428652B2 (en) * | 2005-05-10 | 2008-09-23 | Intel Corporation | Programmable phase generator for cross-clock communication where the clock frequency ratio is a rational number |
US7325152B2 (en) * | 2005-06-30 | 2008-01-29 | Infineon Technologies Ag | Synchronous signal generator |
US7515666B2 (en) * | 2005-07-29 | 2009-04-07 | International Business Machines Corporation | Method for dynamically changing the frequency of clock signals |
KR100971806B1 (ko) * | 2005-10-26 | 2010-07-22 | 인텔 코오퍼레이션 | 변화를 탐지하는 클러스터 아키텍처 |
DE102005061947B4 (de) * | 2005-12-23 | 2008-07-10 | Qimonda Ag | Synchronisationsverfahren sowie entsprechende Vorrichtung und Digitalschaltung und ein Automat zur Synchronisation einer Digitalschaltung |
US8989331B2 (en) * | 2006-05-31 | 2015-03-24 | Broadcom Corporation | Method and system for advance high performance bus synchronizer |
KR101048751B1 (ko) * | 2006-06-30 | 2011-07-14 | 인텔 코포레이션 | 누설 전력 추정 장치, 방법 및 컴퓨팅 시스템 |
US7765315B2 (en) * | 2007-01-08 | 2010-07-27 | Apple Inc. | Time synchronization of multiple time-based data streams with independent clocks |
KR100837278B1 (ko) * | 2007-02-27 | 2008-06-11 | 삼성전자주식회사 | 클럭 스큐 컨트롤러 및 그것을 포함하는 집적 회로 |
US7984400B2 (en) * | 2007-05-09 | 2011-07-19 | Synopsys, Inc. | Techniques for use with automated circuit design and simulations |
US7904859B2 (en) * | 2007-05-09 | 2011-03-08 | Synopsys, Inc. | Method and apparatus for determining a phase relationship between asynchronous clock signals |
US7908574B2 (en) * | 2007-05-09 | 2011-03-15 | Synopsys, Inc. | Techniques for use with automated circuit design and simulations |
US8756557B2 (en) * | 2007-05-09 | 2014-06-17 | Synopsys, Inc. | Techniques for use with automated circuit design and simulations |
US7590789B2 (en) * | 2007-12-07 | 2009-09-15 | Intel Corporation | Optimizing clock crossing and data path latency |
ITMI20072450A1 (it) * | 2007-12-31 | 2009-07-01 | St Microelectronics Srl | Sistema di comunicazione tra un primo ed un secondo dispositivo sincroni temporalmente non correlati. |
US8041981B2 (en) * | 2008-09-25 | 2011-10-18 | Apple Inc. | Synchronizing timing domains based on state variables |
US8258775B2 (en) * | 2009-04-15 | 2012-09-04 | Via Technologies, Inc. | Method and apparatus for determining phase error between clock signals |
US8503458B1 (en) * | 2009-04-29 | 2013-08-06 | Tellabs Operations, Inc. | Methods and apparatus for characterizing adaptive clocking domains in multi-domain networks |
US8918666B2 (en) * | 2011-05-23 | 2014-12-23 | Intel Mobile Communications GmbH | Apparatus for synchronizing a data handover between a first and second clock domain through FIFO buffering |
US8826062B2 (en) * | 2011-05-23 | 2014-09-02 | Intel Mobile Communications GmbH | Apparatus for synchronizing a data handover between a first clock domain and a second clock domain through phase synchronization |
US8994425B2 (en) * | 2012-08-03 | 2015-03-31 | Altera Corporation | Techniques for aligning and reducing skew in serial data signals |
US8977882B2 (en) * | 2012-11-21 | 2015-03-10 | Free Scale Semiconductor, Inc. | System for data transfer between asynchronous clock domains |
KR20140112892A (ko) * | 2013-03-14 | 2014-09-24 | 삼성디스플레이 주식회사 | 터치 스크린 패널 및 그 제조 방법 |
US9344099B2 (en) | 2013-10-23 | 2016-05-17 | Advanced Micro Devices Inc. | Continuous frequency measurement for predictive periodic synchronization |
US9143315B2 (en) | 2013-10-25 | 2015-09-22 | Advanced Micro Devices, Inc. | Predictive periodic synchronization using phase-locked loop digital ratio updates |
US9294263B2 (en) | 2014-01-02 | 2016-03-22 | Advanced Micro Devices, Inc. | Methods and systems of synchronizer selection |
US9614395B2 (en) * | 2014-12-30 | 2017-04-04 | Automotive Research & Testing Center | Wireless charging system and foreign metal object detection method for the system |
US10451676B2 (en) | 2015-10-27 | 2019-10-22 | Nvidia Corporation | Method and system for dynamic standard test access (DSTA) for a logic block reuse |
US10481203B2 (en) * | 2015-04-04 | 2019-11-19 | Nvidia Corporation | Granular dynamic test systems and methods |
US10038450B1 (en) * | 2015-12-10 | 2018-07-31 | Xilinx, Inc. | Circuits for and methods of transmitting data in an integrated circuit |
US11347916B1 (en) * | 2019-06-28 | 2022-05-31 | Amazon Technologies, Inc. | Increasing positive clock skew for systolic array critical path |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6081572A (en) * | 1998-08-27 | 2000-06-27 | Maxim Integrated Products | Lock-in aid frequency detector |
US20020199124A1 (en) * | 2001-06-22 | 2002-12-26 | Adkisson Richard W. | System and method for synchronizing data transfer across a clock domain boundary |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5223755A (en) * | 1990-12-26 | 1993-06-29 | Xerox Corporation | Extended frequency range variable delay locked loop for clock synchronization |
US5539345A (en) * | 1992-12-30 | 1996-07-23 | Digital Equipment Corporation | Phase detector apparatus |
US5811998A (en) * | 1993-01-28 | 1998-09-22 | Digital Equipment Corporation | State machine phase lock loop |
US5642258A (en) * | 1995-08-21 | 1997-06-24 | Compaq Computer Corporation | Computer accessory including a pivotably mounted combined handle and power source and associated methods of manufacturing |
US5721886A (en) | 1995-11-30 | 1998-02-24 | Ncr Corporation | Synchronizer circuit which controls switching of clocks based upon synchronicity, asynchronicity, or change in frequency |
JP3467975B2 (ja) * | 1996-06-27 | 2003-11-17 | 安藤電気株式会社 | 位相検出回路 |
US6084934A (en) | 1997-03-06 | 2000-07-04 | International Business Machines Corporation | Natural throttling of data transfer across asynchronous boundaries |
US6084447A (en) * | 1997-03-28 | 2000-07-04 | Cypress Semiconductor Corp. | Pulse discriminating clock synchronizer for logic derived clock signals with synchronous clock suspension capability for a programmable device |
US5920213A (en) * | 1997-03-28 | 1999-07-06 | Cypress Semiconductor Corp. | Pulse discriminating clock synchronizer for logic derived clock signals for a programmable device |
US5923195A (en) * | 1997-03-28 | 1999-07-13 | Cypress Semiconductor Corp. | Fast clock generator and clock synchronizer for logic derived clock signals with synchronous clock suspension capability for a programmable device |
US6175603B1 (en) * | 1997-08-07 | 2001-01-16 | Cisco Technology, Inc. | System for managing signals in different clock domains and a programmable digital filter |
GB9720811D0 (en) * | 1997-09-30 | 1997-12-03 | Sgs Thomson Microelectronics | Dual port buffer |
US6075832A (en) * | 1997-10-07 | 2000-06-13 | Intel Corporation | Method and apparatus for deskewing clock signals |
DE69811262T2 (de) * | 1997-10-10 | 2003-11-27 | Rambus Inc | Verfahren und vorrichtung zur ausfallsicheren resynchronisation mit minimaler latenzzeit |
US6037809A (en) * | 1998-06-02 | 2000-03-14 | General Electric Company | Apparatus and method for a high frequency clocked comparator and apparatus for multi-phase programmable clock generator |
US6289068B1 (en) * | 1998-06-22 | 2001-09-11 | Xilinx, Inc. | Delay lock loop with clock phase shifter |
US6182236B1 (en) * | 1998-08-26 | 2001-01-30 | Compaq Computer Corporation | Circuit and method employing feedback for driving a clocking signal to compensate for load-induced skew |
US6166963A (en) * | 1998-09-17 | 2000-12-26 | National Semiconductor Corporation | Dual port memory with synchronized read and write pointers |
US6369624B1 (en) * | 1998-11-03 | 2002-04-09 | Altera Corporation | Programmable phase shift circuitry |
US6448820B1 (en) | 1998-11-04 | 2002-09-10 | Altera Corporation | Fast locking phase frequency detector |
US6114915A (en) * | 1998-11-05 | 2000-09-05 | Altera Corporation | Programmable wide-range frequency synthesizer |
US6188286B1 (en) * | 1999-03-30 | 2001-02-13 | Infineon Technologies North America Corp. | Method and system for synchronizing multiple subsystems using one voltage-controlled oscillator |
US6571106B1 (en) * | 1999-07-14 | 2003-05-27 | Texas Instruments Incorporated | Method and apparatus for glitchless signal generation |
JP2001051747A (ja) | 1999-08-12 | 2001-02-23 | Fujitsu Ltd | クロック制御回路 |
US20040028165A1 (en) * | 1999-09-20 | 2004-02-12 | Wladyslaw Bogdan | Digital phase detector with extended resolution |
US6577694B1 (en) * | 1999-11-08 | 2003-06-10 | International Business Machines Corporation | Binary self-correcting phase detector for clock and data recovery |
JP3919990B2 (ja) * | 1999-11-10 | 2007-05-30 | 富士通株式会社 | タイミング同期システム、そのシステムに用いられる装置およびタイミング同期方法 |
US6718477B1 (en) * | 2000-03-06 | 2004-04-06 | William C. Plants | Delay locked loop for an FPGA architecture |
DE10048590B4 (de) | 2000-09-30 | 2008-02-28 | Infineon Technologies Ag | Phasenregelkreis |
US6856206B1 (en) * | 2001-06-25 | 2005-02-15 | Silicon Laboratories, Inc. | Method and apparatus for acquiring a frequency without a reference clock |
US6614314B2 (en) * | 2001-12-03 | 2003-09-02 | Gennum Corporation | Non-linear phase detector |
JP3983575B2 (ja) * | 2002-03-19 | 2007-09-26 | 三菱電機株式会社 | 周波数比較器およびそれを用いるロック検出回路 |
US6759881B2 (en) * | 2002-03-22 | 2004-07-06 | Rambus Inc. | System with phase jumping locked loop circuit |
-
2003
- 2003-07-30 US US10/630,317 patent/US7245684B2/en active Active
- 2003-07-30 US US10/630,297 patent/US7239681B2/en active Active
- 2003-07-30 US US10/630,298 patent/US6864722B2/en not_active Expired - Lifetime
-
2004
- 2004-01-20 SG SG200401226A patent/SG113502A1/en unknown
- 2004-04-27 ES ES200401000A patent/ES2265718B2/es not_active Expired - Fee Related
-
2005
- 2005-01-12 US US11/034,152 patent/US7002376B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6081572A (en) * | 1998-08-27 | 2000-06-27 | Maxim Integrated Products | Lock-in aid frequency detector |
US20020199124A1 (en) * | 2001-06-22 | 2002-12-26 | Adkisson Richard W. | System and method for synchronizing data transfer across a clock domain boundary |
Also Published As
Publication number | Publication date |
---|---|
US20040223570A1 (en) | 2004-11-11 |
US20040222857A1 (en) | 2004-11-11 |
US7239681B2 (en) | 2007-07-03 |
US20050116783A1 (en) | 2005-06-02 |
US6864722B2 (en) | 2005-03-08 |
SG113502A1 (en) | 2005-08-29 |
US7002376B2 (en) | 2006-02-21 |
ES2265718B2 (es) | 2007-08-16 |
US20040223565A1 (en) | 2004-11-11 |
US7245684B2 (en) | 2007-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2265718B2 (es) | Sistema y metodo para compensar una oblicuidad entre una primera señal de reloj y una segunda señal de reloj. | |
US8824224B2 (en) | Frequency-agile strobe window generation | |
US6671753B2 (en) | Elastic interface apparatus and method therefor | |
KR102314767B1 (ko) | 지연-고정 루프에서 루프 카운트를 검출하기 위한 장치들 및 방법들 | |
US6577174B2 (en) | Phase lock loop system and method | |
JPH0779236B2 (ja) | ディジタル位相ロック・ループ及びディジタル・システム | |
CN103219997B (zh) | 多谱段多焦面拼接红外探测器控制与信号采样电路 | |
US7100065B2 (en) | Controller arrangement for synchronizer data transfer between a core clock domain and bus clock domain each having its own individual synchronizing controller | |
US20040193931A1 (en) | System and method for transferring data from a first clock domain to a second clock domain | |
US7436917B2 (en) | Controller for clock synchronizer | |
US7486752B1 (en) | Alignment of clock signal with data signal | |
US7119582B2 (en) | Phase detection in a sync pulse generator | |
US7219251B2 (en) | Programmable clock synchronizer | |
ES2297979B1 (es) | Sincronizador de reloj. | |
KR102256556B1 (ko) | 반도체 장치 및 그를 포함하는 반도체 시스템 | |
US7382847B2 (en) | Programmable sync pulse generator | |
WO2021128701A1 (zh) | 亚稳态检测装置和方法、adc电路 | |
US7194650B2 (en) | System and method for synchronizing multiple synchronizer controllers | |
US7340631B2 (en) | Drift-tolerant sync pulse circuit in a sync pulse generator | |
JP2005339519A (ja) | 再同期回路 | |
JPH04178047A (ja) | スキュー補償方式 | |
US6859912B2 (en) | Method and circuit arrangement for clock recovery | |
KR100863781B1 (ko) | 위상 동기 회로 | |
JPH08102732A (ja) | フレーム同期回路 | |
JPH036118A (ja) | 同期化回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EC2A | Search report published |
Date of ref document: 20070216 Kind code of ref document: A1 |
|
FG2A | Definitive protection |
Ref document number: 2265718B2 Country of ref document: ES |
|
FD2A | Announcement of lapse in spain |
Effective date: 20180809 |