PREVIEW
Counter (4-bit)

Counter (4-bit)

Counters signal_cellular_alt_2_bar Intermediate schedule 25 min

Interactive Circuit

Contador

Descripción general

  • Propósito: El contador es un circuito digital secuencial que progresa a través de una secuencia predeterminada de estados al recibir pulsos de reloj. Incrementa, decrementa o sigue un patrón específico, almacenando cada valor como un número binario.
  • Símbolo: El contador se representa mediante un bloque rectangular con entradas de reloj (CLK), borrado (CLR) y habilitación (EN), junto con múltiples bits de salida (Q0-Q3) y una salida de acarreo.
  • Rol en DigiSim.io: Sirve como bloque de construcción secuencial fundamental para crear circuitos de temporización, conteo y control en sistemas digitales.

counter component

Descripción funcional

Comportamiento lógico

El contador cambia su estado en los flancos del reloj según las entradas de control, típicamente siguiendo una secuencia de conteo binario.

Tabla de operación:

CLK CLR EN Operación Efecto en la salida
X 1 X Borrado (asínc.) Q = 0
0 1 Contar hacia arriba Q[n+1] = Q[n] + 1
0 0 Mantener Q[n+1] = Q[n]
0 X Sin cambio Q[n+1] = Q[n]

Nota: ↑ indica flanco de subida, ↓ indica flanco de bajada, X significa "no importa". El contador solo cuenta hacia arriba y vuelve del valor máximo a 0.

Entradas y salidas

  • Entradas:

    • CLK (Reloj): Pin 0. Dispara transiciones de estado en el flanco de subida.
    • CLR (Borrado): Pin 1. Reinicia asíncronamente el contador a cero cuando está en ALTO.
    • EN (Habilitación): Pin 2. Habilita el conteo cuando está en ALTO.
    • LD (Carga): Pin 3. Reservado para uso futuro (carga paralela no soportada actualmente).
  • Salidas:

    • Q0-Q3: Salida de 4 bits que representa el valor de conteo actual en binario.
    • Carry: Salida de 1 bit que se pone en ALTO cuando el contador alcanza su valor máximo (15 para 4 bits).

Parámetros configurables

  • Ancho del contador: El número de bits en el contador, determinando su rango máximo de conteo (p. ej., 4 bits: 0-15).
  • Dirección de conteo: Si el contador incrementa, decrementa o ambos.
  • Módulo: El valor máximo de conteo antes de volver a cero (p. ej., módulo-10 para conteo decimal).
  • Retardo de propagación: El tiempo que tardan las salidas en actualizarse después de un flanco de reloj.

Representación visual en DigiSim.io

El contador se muestra como un bloque rectangular con las entradas en el lado izquierdo y las salidas en el lado derecho. La entrada de reloj está típicamente marcada con un símbolo de triángulo que indica sensibilidad al flanco. Cuando se conecta en un circuito, el componente indica visualmente su estado actual a través de los valores binarios mostrados en sus salidas y los cambios de color en los cables de conexión.

Valor educativo

Conceptos clave

  • Lógica secuencial: Demuestra cómo los circuitos pueden mantener y cambiar de estado a lo largo del tiempo.
  • Conteo binario: Ilustra la representación de números binarios y la aritmética binaria.
  • Operación controlada por reloj: Muestra cómo las señales de reloj controlan la temporización en sistemas digitales.
  • Máquinas de estado: Introduce el concepto de máquinas de estados finitos y transiciones de estado.
  • Sistemas de retroalimentación: Demuestra cómo los valores de salida influyen en los estados futuros.

Objetivos de aprendizaje

  • Comprender cómo los contadores mantienen y actualizan el estado basándose en señales de reloj.
  • Aprender la diferencia entre la operación de contadores asíncronos y síncronos.
  • Reconocer cómo se usan los contadores para temporización, conteo y aplicaciones de control.
  • Aplicar contadores para diseñar divisores de frecuencia, temporizadores y secuenciadores de estado.
  • Comprender la relación entre frecuencia de reloj, control de habilitación y velocidad de conteo.

Ejemplos de uso/Escenarios

  • División de frecuencia: Dividir una señal de reloj en frecuencias más bajas.
  • Conteo de eventos: Contar ocurrencias de eventos externos.
  • Generación de temporización: Crear retardos de tiempo precisos y señales de temporización.
  • Direccionamiento de memoria: Generar direcciones de memoria secuenciales para operaciones de acceso.
  • Secuenciación de control: Coordinar la temporización de operaciones en sistemas digitales.
  • Generación de formas de onda digitales: Crear señales digitales periódicas con patrones específicos.

Notas técnicas

  • Los contadores pueden implementarse en dos arquitecturas principales: asíncrona (propagación) y síncrona. Los contadores síncronos actualizan todos los bits simultáneamente en un flanco de reloj, proporcionando operación libre de glitches a costa de mayor complejidad.
  • La frecuencia máxima de conteo está limitada por los retardos de propagación a través de la lógica del contador.
  • Para rangos de conteo más grandes, se pueden conectar múltiples contadores en cascada usando la salida de acarreo de un contador para habilitar el siguiente.
  • La entrada de reinicio típicamente tiene prioridad sobre todas las demás entradas, borrando inmediatamente el contador independientemente del reloj o los estados de habilitación.
  • En DigiSim.io, los contadores operan a una velocidad adecuada para la observación visual, mientras que los contadores de hardware real pueden operar a frecuencias mucho más altas.

Características

  • Configuración de entrada:

    • Entrada de reloj (CLK): Dispara transiciones de estado
    • Entrada de reinicio (RST): Reinicia asíncronamente el contador a cero
    • Entrada de habilitación (EN): Habilita/deshabilita la operación de conteo
    • Control de dirección (UP/DOWN): Determina la dirección de conteo (arriba o abajo)
    • Compatible con niveles lógicos digitales estándar
    • Operación activada por flanco (típicamente flanco de subida)
  • Configuración de salida:

    • Múltiples salidas de estado (Q0-Q3 para un contador de 4 bits)
    • Salida de acarreo/préstamo (Cout) - se activa cuando el contador da la vuelta
    • Cada salida refleja el valor de conteo binario actual
    • Capaz de manejar cargas digitales estándar
    • Generalmente disponible en versiones síncronas y asíncronas
  • Funcionalidad:

    • Avanza secuencialmente a través de valores binarios en las transiciones del reloj
    • Secuencia de conteo binario (0, 1, 2, 3, ...)
    • Comportamiento de vuelta al principio en el conteo máximo/mínimo
    • Puede configurarse para diferentes secuencias de conteo
    • Puede contar hacia arriba, hacia abajo o ambos dependiendo del diseño
    • Capacidad de conteo módulo-N (contadores con valores máximos específicos)
  • Retardo de propagación:

    • Reloj a salida: 10-25ns típico
    • Tiempo de establecimiento: 5-15ns antes del flanco de reloj
    • Tiempo de mantenimiento: 0-5ns después del flanco de reloj
    • Reinicio a salida: 5-20ns
    • Dependiente de la tecnología (TTL, CMOS, etc.)
    • Varía con el tamaño del contador y la implementación
  • Fan-Out:

    • Típicamente maneja 10-20 cargas estándar
    • La carga de salida afecta al retardo de propagación
    • Puede requerir almacenamiento intermedio para aplicaciones de alto fan-out
  • Consumo de energía:

    • Energía estática mínima en implementaciones CMOS
    • La energía dinámica aumenta con la frecuencia del reloj
    • Proporcional al número de bits que cambian de estado
    • Mayor en diseños síncronos a altas frecuencias
    • La entrada de habilitación puede usarse para gestión de energía
  • Complejidad del circuito:

    • Moderada (requiere flip-flops más lógica de control)
    • Los diseños síncronos son más complejos que los asíncronos
    • La complejidad aumenta con el ancho del contador
    • Las características adicionales (carga, borrado, etc.) aumentan la complejidad
    • Las secuencias de conteo especializadas requieren lógica adicional

Métodos de implementación

  1. Contador asíncrono (de propagación)

    • Construido con flip-flops en cascada, generalmente tipo T o JK
    • La salida de cada flip-flop maneja el reloj del siguiente
    • Diseño simple con componentes mínimos
    • El retardo de propagación se acumula a través de las etapas
    • No adecuado para aplicaciones de alta velocidad
    • Sufre de glitches durante las transiciones
  2. Contador síncrono

    • Todos los flip-flops comparten un reloj común
    • Las transiciones de estado ocurren simultáneamente
    • Requiere lógica combinacional adicional
    • Operación de mayor velocidad que los diseños asíncronos
    • Comportamiento de temporización más predecible
    • Comúnmente implementado con flip-flops JK o D
  3. Contador de década (Contador BCD)

    • Cuenta de 0 a 9 (módulo-10)
    • Usado para aplicaciones de conteo decimal
    • A menudo construido con retroalimentación para reiniciar en el conteo 10
    • Común en aplicaciones de visualización y temporización
    • Puede incluir salidas codificadas en BCD
  4. Contador Johnson (Contador de anillo torcido)

    • Secuencia especial con solo un bit cambiando a la vez
    • Útil para máquinas de estado y aplicaciones de control
    • Requiere menos puertas de decodificación para detección de estado
    • Proporciona 2n estados con n flip-flops
    • Mejor inmunidad al ruido debido a la distancia de Hamming de 1
  5. Contador de anillo

    • Un "1" circulante en un campo de "0"s
    • Usado para operaciones de secuenciación
    • Salida codificada en one-hot (solo un bit activo a la vez)
    • Lógica de decodificación simple
    • Requiere inicialización
    • Ineficiente para conteos grandes (n flip-flops para n estados)
  6. Implementación con circuito integrado

    • Disponible como CIs dedicados de contadores
    • Comunes en la serie 74xx (74160-74169, 74190-74193)
    • Varias características: precargables, en cascada, arriba/abajo, etc.
    • Diferentes tecnologías para diversos requisitos de velocidad/potencia
    • Pueden incluir características adicionales como salidas de tres estados
  7. Implementación FPGA/ASIC

    • Implementado usando flip-flops y LUTs
    • Altamente configurable y optimizable
    • Puede implementar secuencias de conteo especializadas
    • A menudo sintetizado a partir de descripciones HDL
    • Eficiente en recursos en lógica programable moderna

Aplicaciones

  1. Temporización y control

    • División de reloj
    • Generación de pulsos
    • Implementación de retardos de tiempo
    • Secuenciación de operaciones de control
    • Implementación de máquinas de estado
  2. División de frecuencia

    • Divisores de reloj para generación de frecuencias más bajas
    • Preescaladores en circuitos temporizadores
    • Síntesis de frecuencia
    • Sistemas de sintonización digital
    • Gestión de reloj en sistemas digitales
  3. Direccionamiento de memoria

    • Contador de programa en CPUs
    • Generación de direcciones para acceso secuencial a memoria
    • Contadores de refresco en memoria dinámica
    • Implementación de puntero de pila
    • Controladores DMA
  4. Conteo de eventos

    • Conteo de eventos externos
    • Conteo de pulsos en instrumentación
    • Sistemas de conteo
    • Medición de ocurrencias
    • Monitoreo de flujo de tráfico
  5. Conversión de datos

    • Convertidores analógico a digital (aproximación sucesiva)
    • Generación de modulación de ancho de pulso
    • Generación de formas de onda digitales
    • Algoritmos de procesamiento de señales
    • Generación de secuencias pseudoaleatorias
  6. Sistemas de visualización

    • Multiplexación de dígitos LED/LCD
    • Control de refresco de pantalla
    • Escaneo en pantallas matriciales
    • Temporización para generación de video
    • Generación de caracteres
  7. Instrumentación y medición

    • Contadores de frecuencia
    • Medición de período
    • Temporizadores y cronómetros digitales
    • Conteo de pulsos
    • Instrumentación científica

Limitaciones

  1. Restricciones de temporización

    • Requisitos de tiempo de establecimiento y mantenimiento
    • Sensibilidad al desfase de reloj en diseños síncronos
    • Limitaciones de frecuencia máxima de operación
    • Retardo de propagación a través de las etapas del contador
    • Requisitos de recuperación de reinicio
  2. Glitches y condiciones de carrera

    • Glitches de salida durante transiciones en diseños asíncronos
    • Crítico en aplicaciones de control
    • Puede requerir sincronización con el reloj del sistema
    • Las transiciones de múltiples salidas no son simultáneas en diseños asíncronos
    • Posibles glitches de decodificación durante transiciones
  3. Consumo de energía

    • La energía dinámica aumenta con la frecuencia
    • Alto consumo en aplicaciones de ejecución continua
    • Picos de energía durante transiciones de múltiples bits
    • Energía en espera en sistemas siempre encendidos
    • Preocupaciones sobre la vida de la batería en aplicaciones portátiles
  4. Susceptibilidad al ruido

    • Sensible al ruido en la línea de reloj
    • Conteo falso debido al ruido
    • Se requiere antirrebote de entrada para entradas mecánicas
    • Preocupaciones de interferencia electromagnética
    • Rebote de tierra en diseños de alta velocidad
  5. Limitaciones del contador

    • Rango máximo de conteo limitado por el ancho de bits
    • Requisitos de inicialización
    • Los contadores de secuencia específica necesitan lógica adicional
    • Complejidad de cascada para rangos de conteo más grandes
    • Sobrecarga en secuencias de conteo especializadas

Detalle de implementación del circuito

Contador síncrono ascendente de 4 bits

graph TB
    CLK[Clock CLK] --> FF0[Flip-Flop 0]
    CLK --> FF1[Flip-Flop 1]
    CLK --> FF2[Flip-Flop 2]
    CLK --> FF3[Flip-Flop 3]
    
    RST[Reset RST] --> FF0
    RST --> FF1
    RST --> FF2
    RST --> FF3
    
    FF0 --> Q0[Q0]
    FF1 --> Q1[Q1]
    FF2 --> Q2[Q2]
    FF3 --> Q3[Q3]
    
    EN[Enable Logic<br/>AND Gates] -.-> FF0
    EN -.-> FF1
    EN -.-> FF2
    EN -.-> FF3

Contador síncrono ascendente/descendente 74LS193 de 4 bits

    ┌───────────────────┐
    │                   │
    │      74LS193      │
    │                   │
    │                   │
CLK ┤CP↑           Q0   ├── Q0
    │                   │
MR  ┤MR            Q1   ├── Q1
    │                   │
D0  ┤D0            Q2   ├── Q2
D1  ┤D1            Q3   ├── Q3
D2  ┤D2                 │
D3  ┤D3            TC↑  ├── Cout
    │                   │
PE  ┤PE            TC↓  ├── Bout
    │                   │
CPU ┤CPU                │
CPD ┤CPD                │
    │                   │
    └───────────────────┘

CP↑ = Reloj de conteo ascendente, CPD = Reloj de conteo descendente, MR = Reinicio maestro, PE = Habilitación de carga paralela, D0-D3 = Entradas de datos para carga paralela, TC↑ = Conteo terminal ascendente, TC↓ = Conteo terminal descendente

Componentes relacionados

  • Contador binario: Contador básico que sigue una secuencia binaria
  • Contador de década: Cuenta de 0 a 9 (secuencia BCD)
  • Contador ascendente/descendente: Puede contar en ambas direcciones
  • Contador Johnson: Registro de desplazamiento con retroalimentación invertida
  • Contador de anillo: Registro de desplazamiento con retroalimentación directa para generación de secuencias
  • Contador programable: Contador con módulo programable
  • Contador de código Gray: Contador con solo un bit cambiando entre estados
  • Contador precargable: Contador con capacidad de carga paralela
  • Contador de propagación: Contador asíncrono usando flip-flops en cascada
  • Divisor de frecuencia: Contador usado específicamente para división de reloj

school Ruta de Aprendizaje

arrow_back Requisitos Previos

arrow_forward Siguientes Pasos

help_outline Preguntas Frecuentes

¿Cómo funcionan los contadores binarios?

Los contadores incrementan (o decrementan) su valor en cada pulso de reloj. Un contador de 4 bits secuencia 0000→0001→0010→...→1111→0000 (0-15).

¿Cuál es la diferencia entre contador en cascada y síncrono?

En cascada: cada etapa dispara la siguiente (más lento, más simple). Síncrono: todas las etapas comparten un reloj (más rápido, más complejo).

play_arrow Ejecutar Circuito en Vivo

Ver Otros Componentes