¿Qué significa "cerrar el reloj"?

En mis notas de clase sigo leyendo "no cierre el reloj". Intenté buscar en Internet, pero no puedo encontrar el significado exacto de esta frase.

@ user129048 hay otras preguntas que tratan sobre este tema en este sitio. En resumen, si bloquea el reloj, tendrá un retraso que es malo. La mayoría de los FPGA tienen líneas de reloj dedicadas, y la activación del reloj no utilizará esas líneas.
Al igual que usa una puerta para dejar entrar y salir a su perro/caballo/etc., pueden pasar si la puerta está abierta. El reloj y el reinicio son solo señales que se transmiten a un módulo de lógica al igual que las otras señales. Puedes permitir o bloquear que ese reloj continúe, no dejarlo pasar. Evitar que la lógica del otro lado tenga esa señal como entrada.

Respuestas (4)

"Puerta del reloj" significa poner una puerta lógica en la línea del reloj para encenderlo o apagarlo.

esquemático

simular este circuito : esquema creado con CircuitLab

Los diagramas anteriores muestran AND y OR utilizados para activar el reloj. Uno obliga al reloj a bajar y el otro a subir.

Para evitar pulsos de reloj que sean 'demasiado cortos', ya sean altos o bajos ("pulsos cortos"), debemos asegurarnos de que:

  • La señal de control para la compuerta AND debe cambiar solo cuando el reloj está bajo .
  • La señal de control para la puerta OR debe cambiar solo cuando el reloj está alto .

Los relojes cerrados son muy útiles para reducir la potencia en CMOS, ya que la lógica permanece "en silencio" mientras el reloj está detenido. Encontrará que las herramientas de síntesis modernas tienen una opción especial para insertar la activación del reloj automáticamente.

esquemático

simular este circuito

Arriba hay dos circuitos que generan de forma segura un reloj cerrado. Los circuitos se basan en el hecho de que existe un pequeño retraso (del reloj a Q) para que la señal de control salga del registro. Así, la señal de control cambia en la puerta cuando el reloj tiene una polaridad conocida.

Muy buena respuesta. Me limitaré a ampliar los beneficios de energía de los relojes cerrados. La red de relojes en un circuito integrado, especialmente en los complejos como los microprocesadores, puede ser muy amplia. Tan grande que se ha demostrado (lo siento, no tengo la referencia a mano) que la conmutación de la red del reloj por sí sola puede representar el 30% del consumo total de energía. Esto se consume incluso si la lógica real registrada por él no tiene nada que ver, por ejemplo. los registros y las salidas no cambian en absoluto. Activar el reloj puede desactivar el reloj por completo en las partes afectadas de la red, lo que reduce significativamente el consumo de energía.
Aunque puede haber un caso en el que esto se refiera a "reloj cerrado", pero obviamente este no puede ser el significado con el que se enfrenta OP en sus conferencias, ya que no se recomienda: "no cerrar el reloj".
@Curd: un reloj cerrado es solo eso, un reloj que se puede desactivar. oldfart explicó que necesita una implementación algo más complicada (y ha mostrado una) que una sola puerta lógica para que funcione correctamente, incluso si de ahí su nombre.
@ultimA: ¿Por qué cree que OP "sigue leyendo , no cierre el reloj " si solo significa el uso legítimo de encender/apagar el reloj?
No hay nada de malo con la información en esta respuesta ... excepto que no es una respuesta a lo que pregunta OP.
@Curd: cuando el OP dice "no activar el reloj", el profesor quiere decir "no activar el reloj literalmente como con una sola puerta lógica". Ese es un buen consejo. En la práctica, aunque "control de reloj" significa "deshabilitar el reloj" o ser capaz de hacer eso, y es muy recomendable hacerlo por razones de energía, siempre que sepa cómo hacerlo correctamente (es decir, no con una lógica). gate, pero con suficiente lógica para evitar runts y glitches en la línea del reloj).
Puede haber situaciones en las que la activación del reloj global utilice un exceso de potencia y la activación del reloj local sea más conservadora.
Tengo que adivinar aquí por qué el profesor dice esto: la sincronización del reloj, aunque aquí se presenta como simple, tiene muchas trampas. Por lo tanto, está muy mal visto. En el diseño ASIC (de donde vengo), solo lo realizan las herramientas, en las que se supone que se debe confiar, o los principales ingenieros senior, que también se supone que son confiables para saber lo que están haciendo.
@oldfart Esa es muy probablemente la explicación. Especialmente si OP está en una clase FPGA, es poco probable que alguna vez deban controlar un reloj.
También en FPGA, generalmente solo lo hacen las herramientas. La codificación no se utiliza para inferir un reloj cerrado.
@MITURAJ, la sincronización del reloj ciertamente se puede hacer en la entrada de diseño. Creo que estás describiendo lo que se debe hacer, no lo que "normalmente" se hace. La libertad de los FPGA permite que cualquiera pueda implementar malas ideas. Muchos malos diseños por ahí.
Sí cierto de hecho
@oldfart, y sabemos que el rango no es garantía de competencia, en todos los ámbitos de la vida. Debe tomarse durante la revisión del diseño propuesto y la revisión del diseño terminado, en lugar de confiar ciegamente a los ingenieros superiores. Revisiones que algunas firmas publican, otras no se molestan en hacerlo, desafortunadamente.
"Arriba hay dos circuitos que generan de forma segura un reloj cerrado". también se basa en que el "control" tiene una relación de fase con el "reloj"
@chux Creo que los circuitos anteriores eliminan expresamente la necesidad de la relación de fase. Por supuesto, si no se observan los tiempos de configuración de los pestillos, la salida puede cambiar un ciclo antes o después en el peor de los casos y puede que no sea determinista; sin embargo, siempre debe generar ciclos de reloj limpios.
@chux tiene razón, pero no quiero hacer las cosas más complejas de lo que ya son. Eso sería una combinación de sincronización y control de reloj: dos registros. Sí, el reloj cambiaría un ciclo tarde o temprano, pero tengo miedo del comportamiento metaestable.
@mbrig hay casos en los que necesita deshabilitar el reloj, especialmente en algunos protocolos de comunicación. Los proveedores de FPGA generalmente brindan pautas sobre cómo hacerlo. Así que no diría que nunca lo hagas.

Significa:
No use una puerta AND u OR (o cualquier término combinatorio más complejo) para derivar una señal de reloj de otra señal de reloj.

El motivo de esa regla es que las condiciones de carrera entre las múltiples entradas del término combinatorio pueden causar múltiples flancos de reloj (problemas técnicos) en los que espera solo un flanco de reloj.

Gating, en este contexto, significa pasar una señal a través de una puerta lógica para controlarla.

Pasarlo a través de una entrada de una compuerta AND de 2 entradas permite que un bit de control en la otra entrada fuerce la salida de la compuerta AND a nivel bajo o permita que la señal pase y salga. Una puerta OR puede realizar una función similar, forzando la señal a un nivel alto o dejando pasar.

Por lo tanto, controlar un reloj significa forzarlo hacia abajo o hacia arriba o dejarlo pasar.

No bloquear los relojes es un buen consejo. Se puede hacer, con cuidado y comprensión profunda de las posibles consecuencias. Estos incluyen la metaestabilidad cuando se toman señales sincronizadas en el dominio del reloj controlado y peores resultados de la síntesis/disposición impulsada por el tiempo.

Pero casi siempre hay otras formas de lograr el mismo control sobre un circuito que controlar el reloj, sin todos esos riesgos y penalizaciones.

Para alta velocidad, implica no agregar puertas lógicas que agreguen retraso de propagación al reloj, ya que pueden causar condiciones de carrera al trabajar con datos usando el reloj original.

Nunca escuché el término compuerta de reloj usado de esta manera, ¿tiene una fuente para eso?
@ BeB00: solo busque en Google "reloj sin fallas" y encontrará muchos
Este fue mi primer pensamiento al no haber escuchado el término utilizado antes, pero hay ocasiones en que se necesitará el almacenamiento en búfer y, en este caso, la puerta probablemente signifique más que el almacenamiento en búfer. Las características de giro y borde pueden cambiar con un simple almacenamiento en búfer y deben tenerse en cuenta en cualquier caso.