EIE 446 - SISTEMAS DIGITALES Tema 9: Contadores Nombre del curso: “Sistemas Digitales” Nombre del docente: Héctor Vargas OBJETIVOS DE LA UNIDAD ● Describir la diferencia entre un contador asíncrono y uno síncrono. ● Analizar diagramas de tiempo de contadores. ● Analizar los circuitos contadores. ● Retardo de propagación en contadores. ● Establecer las diferencias entre un contador binario de 4 bits y un contador de décadas. ● Analizar contadores de secuencias ascendentes/descendentes. ● Diseñar contadores síncronos que puedan tener cualquier secuencia de estados especificada. Contando en binario ● Como se sabe, la secuencia de conteo binario sigue un patrón familiar de 0s y 1s como se describió en temas anteriores. El próximo bit cambia cada cuatro secuencias. 000 001 010 011 100 101 110 111 LSB cambia en cada secuencia. El próximo bit cambia cada dos secuencias. Contando en binario ● Un contador puede formar el mismo patrón de ceros y unos con niveles lógicos. La primera etapa en un contador representa el bit menos significativo LSB. Observe que las formas de onda siguen el mismo patrón de onda de conteo en binario. LSB MSB 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 Contador asíncrono de tres bits ● En un contador asíncrono, el reloj se aplica solamente a la primera etapa. Las etapas siguientes toman la señal de reloj desde la etapa previa. ● La figura muestra un contador asíncrono típico de tres bits. Usa flip-flops JK en el modo de basculación. HIGH Q0 J0 CLK C K0 Q1 J1 C Q0 K1 Q2 J2 C Q1 K2 Las formas de onda se ven en la siguiente diapositiva… Contador asíncrono de tres bits 1 CLK 2 3 4 5 6 7 8 Q0 0 1 0 1 0 1 0 1 0 Q1 0 0 1 1 0 0 1 1 0 Q2 0 0 0 0 1 1 1 1 0 Retardo de Propagación ● Los contadores asíncronos también son conocidos como contadores de propagación debido a que no todas las etapas cambian juntas. Para ciertas aplicaciones que requieren altas velocidades de conmutación de reloj, esto es una desventaja. Observe como los retardos son acumulativos ya que cada etapa en el contador se dispara después de la etapa previa. CLK 1 2 3 4 Q0 Q1 Q2 Q0 está retardado por 1 retardo de propagación, Q2 por 2 retardos y Q3 por 3 retardos. Contador de décadas asincrónico Decodificando el 1010 (10) CLR HIGH J0 CLK C K0 Q0 J1 Q1 J2 Q2 J3 C C C K1 K2 K3 Q3 Las formas de onda se ven en la siguiente diapositiva… Contador de décadas asincrónico CLK 1 2 3 4 5 6 7 8 9 Q0 Q1 Glitch Glitc h Q2 Q3 CLR Glitch Glitch 10 El contador asincrónico 74LS93A ● El contador 74LS93A tiene un flip-flop JK en modo basculación manejado por el CLKA y tres flip-flops JK en modo basculación que conforman un contador asincrónico manejado por el CLKB. CLK B (1) J0 Todas las entradas J y K están conectadas internamente a un nivel lógico ALTO CLK A (14) J1 C K0 RO (1) RO (2) J2 J3 C C C K1 K2 K3 (2) (3) (12) Q0 (9) Q1 (8) Q2 (11) Q3 Contadores sincrónicos ● En un contador sincrónico todos los flip-flops se disparan al mismo tiempo con un pulso de reloj común. Los contadores sincrónicos no sufren la desventaja de retardos de propagación acumulativos, pero generalmente requieren más circuitería para controlar los cambios de estado. Este contador sincrónico binario de 3 bits tiene la misma secuencia de conteo que el contador asincrónico binario mostrado en anteriores diapositivas. HIGH Q0 J0 C K0 Q0 J1 Q1 Q0Q1 J2 C C K1 K2 Q2 CLK La siguiente diapositiva muestra como analizar este contador escribiendo las ecuaciones lógicas para cada entrada. Observe las entradas a cada flip-flop… Análisis de contadores sincrónicos ● Aquí se ilustra una técnica tabular para el análisis del contador anterior. Esto se realiza configurando las salidas como se muestra en la tabla y luego, escribiendo las ecuaciones lógicas para cada entrada. 1. Poner el contador en un estado arbitrario; luego determinar las entradas para este estado. 2. Usar las nuevas entradas para determinar el próximo estado: Q2 y Q1 se engancharán y Q0 basculará. 3. Configurar el próximo grupo de entradas desde la salida presente. Lógica para entradas Salidas Q2 Q1 Q0 J2 = Q0Q1 K2 = Q0Q1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 0 J1 = Q0 K1 = Q0 J0 = 1 K0 = 1 4. Q2 enganchará de nuevo pero ambos Q1 y Q0 bascularán. Continuar así, hasta completar la tabla. La próxima diapositiva muestra la tabla completada… Análisis de contadores sincrónicos Lógica de entradas Salidas Q2 Q1 Q0 J2 = Q0Q1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 K2 = Q0Q1 J1 = Q0 K1 = Q0 J0 = 1 K0 = 1 En estos puntos todos los estados han sido contados y el contador está listo para reiniciar… Contador binario sincrónico de 4 bits G1 FF0 HIGH CLK J0 FF1 Q0 C K0 Q1Q0 J1 FF2 Q1 C Q0 El contador binario de 4 bits tiene una puerta AND más que el contador de 3 bits descrito previamente. El área sombreada muestra cuando las salidas de la puerta AND están en ALTO causando que el próximo flip-flop bascule. K1 Q0 Q1 Q2 Q3 G2 J2 Q2 C Q1 K2 Q2Q1Q0 FF3 J3 Q3 C Q2 K3 Q3 Contador de década BCD ● Con alguna lógica adicional, un contador binario se puede convertir en un contador de década sincrónico BCD. Después de alcanzar el conteo 1001, el contador reinicia a 0000. Esta puerta detecta 1001 y provoca que el flip-flop FF3 bascule hasta el próximo pulso de reloj. El flip-flop FF0 bascula en todos los pulsos de reloj. De esta manera, el conteo inicia en 0000. Q3 Q0 HIGH FF1 FF0 J0 Q0 C K0 CLK J1 Q1 C Q0 K1 FF3 FF2 J2 Q2 C Q1 K2 J3 Q3 C Q2 K3 Q3 Q3 Contador de década BCD ● Forma de onda para el contador de década BCD. 1 CLK 2 3 4 5 6 7 8 9 10 Q0 0 1 0 1 0 1 0 1 0 1 0 Q1 0 0 1 1 0 0 1 1 0 0 0 Q2 0 0 0 0 1 1 1 1 0 0 0 Q3 0 0 0 0 0 0 0 0 1 1 0 Estas mismas formas de onda se pueden obtener con un contador asíncrono en forma de CI, el 74LS90. Está disponible en una versión dual (74LS390), que puede ser configurada en cascada. Es más lento que los contadores sincrónicos (máx. frec. de conteo es 35 MHz), pero es más simple. Un C.I. contador binario sincrónico de 4 bits Entrada de datos D0 D1 D2 D3 (3) (4) (5) (6) CLR (1) (9) LOAD (10) ENT (7) ENP (2) CLK CTR DIV 16 TC = 15 (15) RCO C (14) (13) (12) (11) Q0 Q1 Q2 Q3 Salida de datos La forma de onda de ejemplo están en la próxima diapositiva… CLR LOAD D0 Datos de entrada D1 D2 D3 CLK ENP ENT Q0 Datos de salida Q1 Q2 Q3 RCO 12 2 13 14 15 0 Conteo Clear Preset 1 Inhibir Contadores sincrónicos ascendentes/descendentes ● Un contador sincrónico ascendente/descendente es capaz de contar en cualquier dirección dependiendo de una entrada de control. UP HIGH FF0 J FF1 Q0 0 UP/DOWN Q0.UP C K0 J1 FF2 Q1 C Q0 DOWN K1 J2 Q2 C Q1 K2 Q2 Q0.DOWN CLK Un ejemplo de formas de onda se encuentra en la próxima diapositiva… Contadores sincrónicos ascendentes/descendentes Q0 Q1 Q2 UP/DOWN Count up Count down Contadores sincrónicos ascendentes/descendentes D0 D1 D2 D3 Data inputs 74HC19 (4) CTEN 0 (5) D/U (11) LOAD (14) CLK (15) (1) (10) (9) (12) MAX/MIN CTR DIV 10 (13) C RCO (3) (2) (6) (7) Q0 Q1 Q2 Q3 Data outputs D0 D1 D2 D3 Data inputs El C.I. 74HC191 tiene las mismas entradas y salidas pero es un contador binario sincrónico ascendente/descendente. 74HC19 (4) CTEN 1 (5) D/U (11) LOAD (14) CLK (15) (1) (10) (9) (12) MAX/MIN CTR DIV 16 (13) C RCO (3) (2) (6) (7) Q0 Q1 Q2 Q3 Data outputs Diseño de contadores sincrónicos ● La mayoría de los requerimientos para contadores sincrónicos se pueden obtener desde los C.I. vistos. En casos donde se necesite una secuencia de conteo especial, es posible aplicar un proceso de diseño sistemático. Los pasos de diseño se describen en detalle en el texto base. Primero, se describe la secuencia deseada y se dibuja un diagrama de estados y una tabla de transición (o de estados siguientes/salida). A continuación se ilustra una secuencia en código gray que se encuentra en el texto base. Diagrama de estados: 000 100 001 101 011 111 010 110 Tabla de estados siguiente: Present State Q2 Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 Next State Q2 Q1 Q0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 Diseño de contadores sincrónicos Cada vez que se dispara un flip-flop, las entradas J y K requeridas para esa transición se mapean en un K-map. Un ejemplo de mapa para J0 es: Q2Q1 Q0 0 1 00 1 X 01 0 X 11 1 X 10 0 X J0 map Q2Q1 Q2Q1 Output Transitions Q N+1 QN 0 0 1 1 0 1 0 1 Flip-Flop Inputs J K 0 1 X X X X 1 0 La lógica para cada entrada se lee y se construye el circuito. La siguiente diapositiva muestra el circuito para el contador del código gray… Diseño de contadores sincrónicos FF0 J FF1 Q0 0 C K0 J1 FF2 Q1 C Q0 K1 Q2 J 2 C Q1 K2 Q2 CLK El circuito se puede comprobar mediante simulación antes de ser construido. La siguiente diapositiva muestra el resultado de simulación en Multisim… Diseño de contadores sincrónicos Q0 Q1 Q2 Contadores en cascada ● Es un método para lograr contadores de módulo superior. Para contadores síncronos encapsulados como C.I., el próximo contador está habilitado solamente cuando se logra el final del conteo en la etapa previa. HIGH ƒin Counter 1 CTEN 16 TC Counter 2 CTEN CTR DIV 16 CLK fin C Q0 Q1 Q2 Q3 TC CTR DIV 16 C Q0 Q1 Q2 Q3 foutƒin 256 Decodificación en contadores ● Decodificación es la detección de un número binario y se puede hacer con una puerta AND. HIGH J0 Q0 J1 C K0 Q1 J2 C Q0 Q0 K1 C Q1 Q1 K2 CLK 1 Q2 1 LSB 1 MSB Decoded 4 Q2Q1Q0 Q2 Q2 Decodificación parcial ● El contador de década previamente mostrado incorpora decodificación parcial (mirando solamente el MSB y el LSB) para detectar 1001. Esto fue posible porque esta es la primera ocurrencia de esta combinación en la secuencia. Detecta 1001 al mirar solamente dos bits HIGH FF1 FF0 J0 Q0 C K0 CLK J1 Q1 C Q0 K1 FF3 FF2 J2 Q2 C Q1 K2 J3 Q3 C Q2 K3 Q3 Q3 Palabras claves de la UNIDAD Asíncrono No ocurre al mismo tiempo. Módulo El número de estados únicos a través del cual un contador realizará la secuencia. Síncrono Ocurre al mismo tiempo. Conteo El estado final en una secuencia de contador. terminal Máquina Un sistema lógico que exhibe de estados o valores. de estado Cascada Conexión en secuencia de contadores con el fin de incrementar las capacidades de los mismos. BIBLIOGRAFÍA Libro base: “Fundamentos de Sistemas Digitales”. Autor: Tomas L. Floyd. Libro complemento: “Principios de Diseño Digital”. Autor: Daniel D. Gaski.