Contador de 3 bits en gris con D Flip Flops y puertas lógicas

4

Estoy estudiando una lección sobre diseño lógico y circuitos. Tengo una pregunta que no puedo encontrar la respuesta. ¿Cómo puedo diseñar un contador gris de 3 bits utilizando chanclas D? Sé lo que es el código de Gray, sé lo que hacen un contador, puertas lógicas y flip flops D, pero no tengo una idea de cómo hacerlo.

    
pregunta EnexoOnoma

2 respuestas

6

Si puedes usar libremente las puertas lógicas, puedes hacerlo de esta manera:

  1. Extraiga de la tabla de verdad la función lógica que define cada bit del siguiente estado del estado anterior: \ $ b_0 (n) = f (b_0 (n-1), b_1 (n-1), b_2 (n-1)) \ $

  2. Cree la red lógica que implementa las 3 funciones lógicas que ha encontrado;

  3. Ahora póngalo en una retroalimentación desde la salida hasta la entrada de flip-flops 3 D, de modo que en cada flanco de reloj se actualizará el estado;

  4. Restablezca el circuito al estado 000.

Si realmente conoce las puertas lógicas, las chanclas y los contadores, puede comprender fácilmente cómo funciona este circuito, y el resto es muy fácil.

    
respondido por el clabacchio
1

Diseñar un contador de código gris de dos bits con chanclas D es fácil. Simplemente alimente la salida inversora del flop # 1 a la entrada del flop # 2, y haga que la salida no inversora del flop # 2 alimente la entrada del flop # 1.

Una forma interesante de ir más allá de dos bits es diseñar un circuito asíncrono que tome una entrada en cuadratura y produzca una salida de código gris; esa salida cambiará cada vez que uno de los bits en la entrada de cuadratura cambie. El otro bit se puede alimentar a la salida junto con la salida de la parte superior.

Este enfoque es interesante tanto desde el punto de vista de que requiere solo dos pestillos activados por el borde para una longitud de contador arbitraria, como desde el punto de vista de poder tener un contador de longitud arbitraria cuya frecuencia depende solo de la capacidad De la etapa inicial para manejarlo. Si uno necesita por ej. un contador de 32 bits, uno podría conectar en cascada un contador de dos bits a un contador de dos bits (produciendo 3 bits, el superior de los cuales cambiará a 1/8 de la frecuencia de entrada) y luego lo alimentará a un bit de 6 bits contador (con un total de 8 bits, el superior de los cuales cambiará a 1/1024 de la frecuencia de entrada), y luego lo introducirá en dos contadores de 13 bits en cascada (para el resultado de 32 bits). A diferencia de un contador de ondulación convencional que solo se puede muestrear de manera significativa cuando no está contando, el contador de código gris en cascada se puede muestrear en cualquier momento, incluso si el retraso en las etapas superiores excede el período de la señal de entrada, siempre que uno muestre las entradas y salidas de cada etapa y hace un poco de "post-procesamiento" de la señal muestreada. Si bien no se pudo probar la lógica del contador utilizando enfoques de lógica de prueba basada en el registro de desplazamiento, se podría tener un registro de "prueba" que cambiaría los muxiplexores de modo que las secciones de los contadores superiores avanzaran a la misma velocidad que las inferiores.

Si desea que todos los bits del contador funcionen sincrónicamente, debe calcular que el bit inferior debería cambiar siempre que no coincida con el xor de todos los otros bits, y de lo contrario, cada bit debería cambiar si el bit anterior es establecer y todos los demás bits antes de que estén claros.

    
respondido por el supercat

Lea otras preguntas en las etiquetas