Cómo imagino que funcionan las redes digitales síncronas: las líneas de datos se muestrean en el flanco ascendente del reloj, se produce una serie de transitorios, el sistema se estabiliza y las líneas de datos se muestrean nuevamente en el siguiente flanco ascendente. Colocaría los transitorios en los bordes descendentes del reloj, de esa manera tanto el tiempo Tsu como el Th para el muestreo son claros. (Algo similar al comportamiento del bus SPI).
Lo que se ve en una hoja de datos de un dispositivo del mundo real (74595): flip-flops D conectados en serie que tienen un reloj común. A la salida del primer flip-flop, el transitorio en la línea de datos sigue al flanco ascendente del reloj con Tpd. El siguiente flip-flop necesita la línea de datos estable en el tiempo después del flanco ascendente para funcionar correctamente. Por supuesto que funciona porque Tpd>Th, pero es solo cuestión de nanosegundos.
Mi problema con todo esto es que no es robusto (quizás no sea la mejor palabra). Visualizar cosas en un analizador lógico será menos útil porque las líneas de datos prácticamente cambian en sincronía con el flanco ascendente del reloj. Los errores aleatorios causados por Th>Tpd no son realmente visibles y pasan desapercibidos. Si conecto otro registro de desplazamiento en serie de una tecnología diferente, que requiere tiempos de espera más largos, el circuito no funcionará, sin importar qué tan lento sea el reloj que elija.
¿Es esta la forma más común en que se construyen los circuitos digitales síncronos? ¿Solo el retraso de propagación de los componentes hace que funcione? ¿Estoy siendo demasiado idealista? :)
Tienes razón en tu intuición de que hay un problema potencial. Dentro de un chip, los diseñadores de chips se han ocupado de ello. Cuando conecta una cadena de, digamos, 74x595, puede tener problemas, especialmente con una cadena larga, un controlador débil y un cableado de reloj que comienza en el 'primer' chip (el que recibe los datos). Una solución 'estándar' es alimentar el reloj comenzando en el último chip.
Una mejor solución es usar un chip como el CD4094 que tiene una salida retardada. Tiene un flip-flop adicional, que está cronometrado en el borde opuesto. El uso de esta salida para alimentar el nect SR elimina todos los problemas de configuración/retención (pero reduce la frecuencia máxima del reloj).
Creo que puede lograr el mismo efecto (una especie de implementación pobre de la salida retrasada) cronometrando los 595 pares con el reloj simple y los 595 impares con el reloj invertido. Pero realmente nunca resolví esto.
Sí, pero lo que el esquema no muestra es que el diseñador de circuitos integrados ha incluido un pequeño retraso en la línea de datos. En una situación normal, los datos pasarían por algunas puertas lógicas y harían un "trabajo real" antes de ser muestreados.
Mi problema con todo esto es que no es robusto (quizás no sea la mejor palabra). Visualizar cosas en un analizador lógico será menos útil porque las líneas de datos prácticamente cambian en sincronía con el flanco ascendente del reloj. Los errores aleatorios causados por Th>Tpd no son realmente visibles y pasan desapercibidos. Si conecto otro registro de desplazamiento en serie de una tecnología diferente, que requiere tiempos de espera más largos, el circuito no funcionará, sin importar qué tan lento sea el reloj que elija.
Planteas dos cuestiones. Llamemos a los dos circuitos síncronos A y B, donde A alimenta a B, y ambos comparten el mismo reloj.
El circuito no funcionará si el total T pd(A) < T h(B) donde T pd es el retraso combinacional del reloj. ¿Es esto cierto? ¡Absolutamente!Usted es el diseñador del circuito y es su responsabilidad final asegurarse de que el circuito funcione. En realidad, no suele ser motivo de preocupación; incluso si alimenta una salida de registro directamente a la entrada de otro, el margen de diseño de las especificaciones del chip es alto. Para un NXP 74HC595, por ejemplo, el retraso de propagación típico con un suministro de 4,5 V es de 19 ns, el tiempo de espera requerido es de 3 nseg y el tiempo de espera típico es de -2 nseg; no hay problema allí. Para un TI SN74LV595A a 5 V, el retraso de propagación típico es de 4,5 nseg, el retraso de propagación mínimo es de 1 nseg, el tiempo de espera requerido es de 2 nseg. ¿Podría ser esto un problema si el retraso de propagación y los tiempos de espera están en su peor caso? Absolutamente. ¿Podría ser un problema si conecta en cascada un SN74LV595A en un NXP74HC595? Absolutamente.
"Visualizar cosas en un analizador lógico será menos útil porque las líneas de datos prácticamente cambian en sincronía con el flanco ascendente del reloj". Verdadero. Tome una sugerencia de los buses SPI y configure el analizador lógico para que muestree los datos en el flanco descendente del reloj . Las reglas de SPI son simples: actualiza las salidas en un extremo y muestrea las entradas en el otro.
Super gato
Wouter van Ooijen
Super gato
Wouter van Ooijen
Super gato
Super gato
Wouter van Ooijen
Super gato