¿Cuál es la aplicación del pestillo en el diseño VLSI?

Revisé los documentos que indican la diferencia entre pestillo y flip flop. Incluso me encontré con escenarios en los que se crean pestillos no intencionales en diseños RTL.

Mi duda, ¿hay alguna aplicación real para el pestillo?

No, son totalmente inútiles. Nunca tendríamos que guardar un valor digital que solo aparece por un corto tiempo.

Respuestas (2)

Para darse cuenta del punto de un pestillo, considere que un flip flop son dos pestillos espalda con espalda con relojes de polaridad opuesta. Esto forma un sistema de bloqueo y dique que hace que la salida cambie un ciclo después de la entrada (suponiendo que se cumplan las condiciones de configuración y retención).

Entonces, la ruta de entrada->salida de un flip flop 'cruza' el límite del ciclo. Un circuito limitado por flip flops requerirá dos ciclos para que una entrada se muestre en la salida. Si solo tiene un ciclo, debe usar un circuito con pestillo. Básicamente, esto es extender los dos pestillos que comprenden el flip flop y la lógica de relleno en el medio, en lugar de en cualquier lado (y hace que el retraso de la entrada a la salida sea de un ciclo).

A continuación se muestra un ejemplo de "extender el flip flop" en sus pestillos separados para un circuito de un solo ciclo:

diseño basado en pestillo

Los pestillos por sí mismos también permiten mucha más flexibilidad en su uso. Permiten el "préstamo de tiempo", que es un concepto muy poderoso que se usa todo el tiempo en el diseño de VLSI. Por el contrario, un flip flop estándar solo permite "robar tiempo".

A continuación se muestra un ejemplo de préstamo de tiempo con pestillos

préstamo de tiempo de bloqueo

Y robar el tiempo con una chancleta:

robar tiempo con ff

Además de eso, los pestillos se utilizan casi exclusivamente como elementos de almacenamiento para relojes o circuitos de activación de energía; requieren menos área/potencia que un flip-flop y realizan el trabajo requerido de almacenar un valor (señal de habilitación generalmente) a lo largo de un límite de medio ciclo.

Como nota adicional, los pestillos a menudo se usan de una manera que imita el comportamiento del flip-flop. Esto se hace pulsando el reloj muy rápidamente; solo el tiempo suficiente para que los datos que se encuentran en la entrada se muestren en la salida, y no mucho más. En esta configuración, se denominan latches de pulso, tal como lo describe IEEE

En muchos casos, se requiere un aumento en el rendimiento de un circuito digital, pero por algunas razones no se puede construir una versión segmentada. Entonces terminas construyendo una versión pseudo-canalizada de este circuito.

Una versión pseudocanalizada de un circuito puede contener latches. Por ejemplo, si quiero duplicar el rendimiento de este módulo digital A

ingrese la descripción de la imagen aquí

Podemos construir el siguiente circuito pseudocanalizado [que incluye pestillos] para duplicar el rendimiento

ingrese la descripción de la imagen aquí

Cada dos ciclos de reloj, una de las salidas de los pestillos se cambia con una nueva salida que permite que su módulo A calcule un resultado válido dentro de este tiempo. La nueva versión pseudo-encauzada duplica el rendimiento sin fallar con la estructura interna de A en sí. Por lo tanto, es posible que encuentre pestillos en circuitos como este

"La nueva versión pseudocanalizada duplica el rendimiento sin fallar con la estructura interna de A". ¿Cómo exactamente? En ambos casos la fecha por reloj es solo una.
@tollinjose Bueno, si una instancia de A tiene un Tpd = 10ns, en una versión pseudocanalizada, el ancho de su reloj probablemente será la mitad de esto, ya que tenemos dos instancias en ejecución. [en T=0 bloquea la primera entrada en la instancia superior... en T=5 bloquea la segunda entrada en la instancia inferior... en T=10 bloquea la tercera entrada en la instancia superior ya que ya ha terminado de calcular la primera entrada ]. tiene toda la razón, esto sigue siendo un dato/clk PERO el ancho del reloj se reduce a la mitad ya que tiene dos instancias del mismo módulo ejecutándose al mismo tiempo.