¿Cómo compensar el ruido en la salida de las puertas lógicas?

Estoy simulando la familia lógica 74HC en LTSpice.

La salida de los inversores y D-Flip-Flop son normales, pero la salida de NAND y AND son ruidosas. ¿Cómo puedo compensar o filtrar ese ruido?

¿Qué tipo de problema resulta en ese ruido?

Frecuencia: 1MHz

Circuito

Voltajes de salida de NAND y AND

Entradas de NAND y AND

Editar: si importa, también puede ver cómo oscila v_z.

ingrese la descripción de la imagen aquí

¿Cuál es el propósito de un circuito tan extraño de todos modos? Si está tratando de crear un par de relojes que no se superpongan para algunos MOS IC antiguos, hay formas mucho mejores de hacerlo.
¿Por qué usa 2 inversores en cascada como entrada para 74hc00 y 74hc08? Tal uso introduce un problema real (¿se busca?) para las puertas después de... Las formas de onda de salida en bbm1 y bbm2 son muy lógicas.
@Antonio51 acaba de escribir lo que estoy pensando. No hay absolutamente ningún propósito para U9-13 + U16 y Neil_UK explica que es la fuente de lo que crees que es ruido. Está creando una condición de carrera para algún propósito desconocido.
Probé con mi simulador spectrum-soft.com/download/download.shtm que no muestra ningún timbre. Solo algunos retrasos... probé a 10 MHz...
@DaveTweed En realidad, eso es lo que estaba pensando. ¿Cómo puedo crear tal circuito? ¿Puedes darme algún ejemplo?
@elektronik Gracias por la señal v_z. Pero, ¿cómo se relaciona (tiempo exacto) v_z con bbm1 y bbm2?

Respuestas (4)

Si está tratando de crear relojes que no se superpongan para los circuitos que los necesitan (p. ej., IC MOS más antiguos), la forma estándar de hacerlo es usar compuertas acopladas cruzadas para crear un flip-flop RS. Las puertas NAND crean pulsos de reloj activos bajos que no se superponen, y las puertas NOR crean pulsos activos altos que no se superponen. Puede agregar un retraso adicional en las rutas de retroalimentación para crear tiempo adicional en el espacio entre pulsos.

esquemático

simular este circuito : esquema creado con CircuitLab

La salida del circuito NAND se ve así:

___      ______      ____
   \____/      \____/
   ______      ______
__/      \____/      \___

La salida del circuito NOR se ve así:

    ____        ____
___/    \______/    \____
__        ____        ___
  \______/    \______/

No son ruidosos. Están respondiendo a las señales que ha retrasado a través de U9 a U12.

La lógica combinatoria responde después de un breve retraso a cualquier cambio en su entrada. Si se producen cambios poco espaciados, entonces no habrá tiempo para que la salida responda por completo y puede generar salidas sin un cambio lógico completo como está viendo.

Es bueno que te hayas encontrado con este comportamiento ahora en la simulación, y no después de que tu primer diseño lógico pasó a una placa y lo encontraste de la manera más difícil.

Las lecciones de esto son varias

  • La salida de la lógica combinatoria debe considerarse indefinida desde el momento en que la primera entrada cambia hasta un período de propagación posterior a la última entrada que cambia.
  • No use tales salidas directamente, es mejor usarlas como entradas de datos a un pestillo, que se sincroniza después de que haya expirado el retraso de propagación. Si los usa para salida analógica, digamos PWM filtrado, puede salirse con la suya con el filtrado de paso bajo.
  • Nunca use tales salidas como una entrada de reloj para un pestillo, porque los picos que observa pueden o no sincronizarlos.
  • Si debe usar salidas combinatorias directamente, a menudo puede salirse con la suya alineando sus entradas al producirlas todas desde las salidas del mismo latch. Sin embargo, esto no funciona si está manejando algo como un decodificador de línea 138 3-8, que tiene diferentes retrasos de propagación de diferentes entradas.
Si quiero limitar el reloj de bloqueo usando, por ejemplo, una puerta AND, ¿cómo evitar picos en estos cables de reloj?
@Netch Este es exactamente el tipo de cosas en las que puede equivocarse. Debe asegurarse de que cualquier señal de habilitación de reloj a la puerta se enganche utilizando la señal de reloj que está activando para garantizar que no se generen pulsos cortos. Diseñe el tiempo de modo que la habilitación no pueda cambiar cuando el reloj esté en la polaridad "incorrecta".

Tenga en cuenta que es posible diseñar circuitos combinatorios que no presenten tales fallas. Esto se hace al incluir términos adicionales en el DNF de sus funciones de manera que no haya regiones adyacentes que no se superpongan en el mapa de Karnaugh. Dichos mapas se denominan "libres de peligros" y no producen fallas cuando una sola entrada cambia su estado.

aquí hay un ejemplo que explica la técnica con más detalles. En su caso, las fallas se introducen a propósito (al agregar U9-U12), y simplemente excluir esos inversores producirá un circuito funcionalmente equivalente que estará libre de fallas.

Algo anda muy mal con tu simulador. Debería ver salidas de bbm con pulsos de aproximadamente 30 nseg.

Sospecho que los modelos en LTSpice están construidos de alguna manera para que esperen que los pines V en cada puerta estén en tierra, no en -2.5. Como resultado, los circuitos están experimentando transiciones apenas por debajo de los niveles nominales de 2,5 (en relación con V-) a los que responde el IC.

Intente rehacer su circuito usando GND y + 5V como sus niveles de suministro lógico. También deberá ajustar el nivel de CC en Vx.

Además, solo como referencia futura, cuando muestre trazos tomados en diferentes puntos, haga el punto de inicio para cada trazo al mismo tiempo. Esto nos permite (y a usted) ver cómo se comportan las diferentes partes del circuito en un momento determinado con solo desplazarse verticalmente y no tener que comprobar la base de tiempo.

gracias por el consejo.
debido a la aplicación, se necesita una oscilación de -2,5 a +2,5.
@elektronik: está bien, pero no es necesario simularlo de esa manera. Simplemente compense la entrada en 2.5 voltios.