Registros de desplazamiento: ¿qué sucede con un solo impulso de reloj?

2

Creo que no entiendo completamente los registros de turnos realizados desde D-flip-flops como en enlace

¿Por qué cambia solo un bit por pulso? Cuando lo veo, me parece que debería cambiar todo y reescribirse con SI en un solo pulso.

Creo que mi problema de entender estos orígenes en D-flip-flop, en algún lugar que he leído, almacena el valor solo en el borde ascendente, pero la forma en que se implementa no me lo parece. Parece que puede almacenar valor en cualquier momento en que el reloj esté en 1 (incluso cambiar varias veces durante un solo impulso de reloj).

    
pregunta Honza Brabec

2 respuestas

5

Observe el símbolo de punta de flecha en la entrada del reloj de cada uno de los flip-flops. Esto indica (ascendente) la activación del borde.

Esto significa que cada vez que la señal del reloj transitions de baja a alta, la señal en D se copia a Q.

En el caso ideal, el borde del reloj es instantáneo , por lo que el nivel que se aplique en D en ese instante, es todo lo que importa.

Incluso en situaciones prácticas donde el tiempo de subida del reloj es finito, la activación se produce en la transición del reloj más allá de un valor de umbral. Por lo tanto, la lectura desde D permanece instantánea.

    
respondido por el Anindo Ghosh
1

Cuando se usan pestillos D para un registro de turnos, es absolutamente imperativo que el tiempo de propagación mínimo garantizado para cada flop exceda el tiempo de espera máximo requerido para el siguiente. Si no se cumpliera esa condición, de hecho sería posible que un pulso de reloj termine en la basura del contenido de todos los bits. Por alguna razón, los fabricantes a menudo no especifican los tiempos de sus partes de manera tal que garanticen que se cumplirán esas restricciones de tiempo (el tiempo de propagación mínimo garantizado es a menudo cero, mientras que los tiempos de espera son a veces positivos) pero en la práctica, por ejemplo. los flops dentro de un chip, y generalmente para todos los flops dentro de un lote de chips, cualquier factor que pueda causar que el tiempo de espera se encuentre en el extremo superior de su rango causará que el tiempo de propagación también se encuentre en el extremo superior de su rango, y viceversa.

Por cierto, cuando se implementa un registro de desplazamiento dentro de un CPLD o FPGA, el enfoque normal es utilizar pestillos D; Sin embargo, cuando se implementan en silicio, otros enfoques pueden ser más eficientes. En muchos casos, un dispositivo utilizará dos cierres transparentes por bit, con cierres alternativos activados por diferentes relojes que no se superponen. Uno podría mejorar aún más la eficiencia espacial de esto al tener grupos de N bits representados cada uno con N + 1 latches strobed por N + 1 relojes [el método común tiene N = 1, pero si va a N = 2 representaría una reducción del 33% en el número de pestillos] pero no estoy al tanto de que se haga en la práctica.

También, FYI, si se puede garantizar que los datos se cambiarán continuamente a una tasa mínima, es posible reducir el conteo de transistores a 3 por pestillo [o dos transistores y un pull-up pasivo]. La memoria de video para la computadora Apple I original usaba registros de cambio de 1Kbit que estaban en paquetes DIP de 8 pines y eran, por lo que he leído, la forma más barata de memoria disponible. No creo que tales técnicas se usen mucho más, ya que se basan en una cierta relación entre la fuga del transistor y la capacidad de la puerta de entrada, el drenaje de la puerta y el sustrato de la puerta, pero aún las encuentro interesantes.

    
respondido por el supercat

Lea otras preguntas en las etiquetas