Tiene el problema de implementar un contador de 8 bits a partir de dos contadores de 4 bits

2

Por lo tanto, tengo problemas para implementar un contador de 8 bits a partir de dos contadores de 4 bits. El primer 4 bit funciona cuando es iniciado por el pulso de reloj y también lo hace el segundo por separado con su propio pulso de reloj. ¿Cómo podría usar solo un reloj para enviar pulsos para que el contador cuente desde 00000000 hasta 11111111 sin tener que usar dos relojes para hacerlo? Planeo hacer un bit de 12 y 16 bits de la misma manera y ya que planeo hacer que los dispositivos se utilicen para un proyecto más grande, tendría sentido entender cómo hacer primero un bit de 8 bits.

Información clave: I3 es el bit más significativo, I0 es el menos significativo. Cout es la sonda conectada al flip flop en cada 'circuito'.

    
pregunta Ricardo Rigaroni

2 respuestas

3

Si bien la respuesta de @optronik es un método para hacerlo y el que utiliza la menor cantidad de hardware, no es el mejor enfoque.

El problema es uno de los retrasos de propagación. Si usa el MSB del contador 1 como un reloj para el contador 2, lo que sucederá es que habrá un retraso entre los valores de conteo.

Cuando la señal de reloj para el contador 1 hace que se desborde (va de 15 a 0), habrá un pequeño retraso entre la actualización de la salida del contador 1 y el borde del reloj. Una vez que la salida se haya actualizado, el contador 2 se sincronizará, pero nuevamente habrá un retraso en la actualización de la salida. Entonces, el contador 1 cambiará su salida \ $ t_p \ $ segundos después del reloj, pero el contador 2 no cambiará hasta que \ $ 2 \ veces t_p \ $ segundos después del reloj.

Esto podría causar fallos en cualquier cosa que esté conectada también la salida del contador: el problema se hará más evidente a medida que se utilicen más contadores. Por eso diseñamos contadores síncronos en lugar de contadores de ondulación.

Hay soluciones síncronas al problema.

  1. Si sus contadores son circuitos integrados (es decir, no es algo que ha conectado desde puertas lógicas), puede sincronizar el segundo contador con el primero usando el mismo reloj para ambos contadores ( no el MSB de contador 1).

    a) si el contador tiene un pin de habilitación, conecte la habilitación del contador 2 a nivel de bit Y de todos los bits del contador 1 (es decir, una puerta AND de 4 entradas). Conecte la señal del reloj al pin del reloj del contador 2.

    b) Si no hay un pin de habilitación, necesita una puerta AND de 5 entradas. Conecte cuatro entradas al contador 1 y la quinta va a la señal del reloj. La salida de la compuerta AND va hacia el pin del reloj del contador 2. Se agregará un pequeño retraso de propagación, pero no se agregará si se conectan más temporizadores en cascada.

    Debo tener en cuenta que el enfoque (b) requiere una señal de reloj de borde negativo para funcionar correctamente. Si tiene un flip-flop activado por flanco positivo, aún puede utilizar este enfoque, pero en lugar de un AND de 5 entradas, necesita un OR de 5 entradas. Las cuatro entradas se conectan a las salidas negadas del contador 1 (es decir, las salidas \ $ \ bar {Q} \ $) y la quinta va al reloj.

  2. Si está cableando los contadores usted mismo, puede hacer lo mismo que en (1), o puede cablear el contador para ser y el contador de 8 bits directamente. Si observa su circuito, debería notar que hay una gran simetría entre cada bit del contador. Básicamente, se agrega el mismo subcircuito para cada bit, por lo que un temporizador de 8 bits sería solo 8 de los subcircuitos encadenados. Un temporizador de n bits es n de los sub-circuitos.

respondido por el Tom Carpenter
1

El MSB del contador 1 debe marcar el contador 2

    
respondido por el optronik

Lea otras preguntas en las etiquetas