Tiempo dentro de un registro de desplazamiento

5

Cómo imagino que funcionan las redes digitales síncronas: las líneas de datos se muestrean en el borde ascendente del reloj, se produce un conjunto de transitorios, se asienta el sistema y se vuelven a muestrear las líneas de datos en el siguiente borde ascendente. Colocaría los transitorios en los flancos descendentes del reloj, de modo que tanto el tiempo Tsu como 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): D flipflops conectados en serie con un reloj común. En la salida del primer flip-flop, transitorio en la línea de datos sigue el aumento del borde del reloj con Tpd. El próximo flip-flop necesita una 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 una cuestión de nanosegundos.

Mi problema con todo esto es que no es robusto (tal vez no sea la mejor palabra). La visualización de cosas en un analizador lógico será menos útil porque las líneas de datos prácticamente cambian en sincronización con el flanco ascendente del reloj. Los errores aleatorios causados por Th > Tpd no son realmente visibles y no se detectan. Si conecto otro registro de desplazamiento en serie de una tecnología diferente, que requiere tiempos de retención más largos, el circuito no funcionará, no importa cuán lento sea el reloj que haya elegido.

¿Es esta la forma en que se construyen los circuitos digitales más comúnmente síncronos? ¿Solo el retraso en la propagación de los componentes hace que funcione? ¿Estoy siendo idealista? :)

    
pregunta Gyorgy Szekely

3 respuestas

2

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 él. Cuando conecte una cadena de, digamos, 74x595, puede tener problemas, especialmente con una cadena larga, un controlador débil y el cableado del reloj que comienza en el primer chip (el que recibe los datos). Una solución 'estándar' es alimentar el reloj a partir del último chip.

Una mejor solución es usar un chip como el CD4094 que tiene una salida retrasada. Tiene un flip-flop adicional, que se registra 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 de reloj máxima).

Creo que se puede lograr el mismo efecto (una especie de implementación pobre de la salida retrasada) sincronizando los 595 pares con el reloj normal y los 595 impares con el reloj invertido. Pero realmente nunca resolví esto.

    
respondido por el Wouter van Ooijen
0

Sí, pero lo que no se muestra en el esquema es que el diseñador de IC ha incluido un pequeño retraso en la línea de datos. En una situación normal, los datos estarían pasando por algunas compuertas lógicas y haciendo "trabajo real" antes de ser muestreados

    
respondido por el Aaron D. Marasco
0
  

Mi problema con todo esto es que no es robusto (tal vez no sea la mejor palabra). La visualización de cosas en un analizador lógico será menos útil porque las líneas de datos prácticamente cambian en sincronización con el flanco ascendente del reloj. Los errores aleatorios causados por Th > Tpd no son realmente visibles y no se detectan. Si conecto otro registro de desplazamiento en serie de una tecnología diferente, que requiere tiempos de retención más largos, el circuito no funcionará, no importa cuán lento sea el reloj que haya elegido.

Usted menciona dos cuestiones. Llamemos a los dos circuitos síncronos A y B, donde A se alimenta a B, y ambos comparten el mismo reloj

  1. El circuito no funcionará si el total de T pd (A) < T h (B) donde T pd es el retraso combinatorio 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 una fuente de preocupación; incluso si alimenta una salida de registro directamente en la entrada de otro, el margen de diseño de las especificaciones del chip es alto. Para un NXP 74HC595, por ejemplo, el retardo de propagación típico a 4.5V es 19ns, el tiempo de espera requerido es 3nsec, y el tiempo de retención típico es -2nsec, no hay problema. Para una TI SN74LV595A a 5 V, el retardo de propagación típico es de 4.5 ns, el retardo de propagación mínimo es de 1 ns, el tiempo de retención requerido es de 2 ns. ¿Podría esto ser un problema si el retraso de la propagación y los tiempos de espera están en su peor caso? Absolutamente. ¿Podría ser un problema si colocas un SN74LV595A en cascada en un NXP74HC595? Absolutamente. En esos casos, es posible que necesite agregar elementos combinacionales (buffers) con suficiente retraso para asegurarse de que se cumple el tiempo de espera.

  2. "La visualización de cosas en un analizador lógico será menos útil porque las líneas de datos prácticamente cambian en sincronización con el flanco ascendente del reloj". Verdadero. Tome una sugerencia de los autobuses SPI y configure el analizador lógico para que muestre los datos en el borde descendente del reloj. Las reglas de SPI son simples: usted actualiza las salidas en un borde y muestra las entradas en el otro.

respondido por el Jason S

Lea otras preguntas en las etiquetas

Comentarios Recientes

con un número entero diferente de 0 en realidad requiere más explicación. Como puede ver, el mensaje impreso en realidad termina en la parte "apilada" del mensaje en el que se imprimió, pero con el contenido del mensaje registrado en una variable alertinfo con un error de f si y solo si la pila estaba vacía. En el siguiente ejemplo, la variable para pegar el mensaje es visible en la línea 32. De hecho, el mensaje solo puede imprimirse en la tabla de rastreo ya que un nodo en esta tabla no tiene límite para ningún... Lees verder