Simulador de Construcción de Circuitos Digitales con Escenarios Virtuales y Tutoriales Interactivos

Ing. Arturo Javier Miguel de Priego Paz Soldán
Email: arturo@tourdigital.net
Teléfono: (51 1) 987207696
Chincha - Perú
24 de mayo de 2011

Descripción General

El Simulador de Construcción de Circuitos Digitales con Escenarios Virtuales y Tutoriales Interactivos es un programa para construir circuitos digitales sobre un módulo digital virtual a partir de modelos lógicos de circuitos integrados estándares (familia TTL LS) y de aplicación específica (ASIC). Los circuitos pueden ser simulados en el módulo digital directamente y en algunos casos pueden ser validados con Escenarios Virtuales que representan al ambiente donde los circuitos operarán. Además, los circuitos hechos pueden ser almacenados, recuperados y editados. El programa también provee Tutoriales Interactivos de algunos circuitos lógicos típicos, y muchos de ellos incluyen descripciones VHDL. Este software ha sido diseñado para ser empleado como una herramienta de enseñanza y aprendizaje del diseño digital y actualmente está orientado a cursos básicos o de introducción a los circuitos digitales, tanto en el nivel escolar como universitario. El programa se ejecuta en MS Windows con una resolución de pantalla de al menos 1024 x 768. Esta versión del programa es gratuita, de copia y uso libre.

Ventajas del Programa

  • Cuenta con un gran número de modelos de circuitos integrados de la familia TTL LS.
  • Los circuitos construidos pueden ser almacenados y recuperados. Ello permite una verificación y una reutilización de los ejemplos tanto en la enseñanza como en el aprendizaje del diseño digital.
  • Los tutoriales al lado del módulo digital permiten validar rápidamente el conocimiento adquirido.
  • Los escenarios brindan una mejor perspectiva y facilitan una mejor primera especificación del diseño lógico.
  • Los ASICs simplifican los diseños y ahorran espacio en la tarjeta de alambrado (protoboard), y pueden ser usados como ejemplos de funcionamientos de los circuitos deseados. Esta característica puede servir, por ejemplo, para enseñar la partición del diseño digital. Nuevos modelos de ASICs pueden ser hechos a partir de descripciones VHDL o programas C++, mas por ahora sólo en el nivel de programación.

Limitaciones

  • Los modelos de circuitos están basados sobre circuitos TTL con encapsulados DIP. El usuario no puede crear nuevos modelos.
  • Todos los modelos son solamente lógicos, sin pines o puertos de tres estados ni bidireccionales.
  • Los modelos no consideran efectos eléctricos (retardos en la propagación de las señales, abanicos de entrada y salida, ruido, etc.)
  • El número de escenarios y tutoriales es pequeño.

El Módulo Digital

El módulo digital (figura 1) consta de los siguientes elementos:

  • Una tarjeta para alambrar circuitos (protoboard, breadboard)
  • Indicadores luminosos: 18 leds sencillos y 3 visualizadores de siete segmentos
  • Relojes de 1H y 10 Hz
  • Entradas digitales: 12 interruptores y 4 pulsadores
  • Alimentación: líneas de VCC y GND
  • Expansor de 18 líneas para conexión con un escenario
  • Un interruptor principal para el encendido y apagado del sistema 


Figura 1. Módulo digital.

Edición de Circuitos

La edición de circuitos es muy sencilla. Los chips se seleccionan desde un menú de categorías de circuitos y luego se insertan en el protoboard. Los cables o alambres se dibujan trazando líneas con el ratón. los cables y chips pueden retirarse pulsando con el botón derecho sobre el chip o sobre un extremo del cable.

Escenarios

Los escenarios pueden elegirse e insertarse desde el menú del programa. Estando el interruptor principal apagado el escenario trabaja en modo independiente siguiendo un comportamiento predefinido. En este modo el usuario observa cómo debe interactuar el circuito con el medio ambiente o lugar de trabajo. Cuando el interruptor se enciende el escenario obedece a las señales provenientes del módulo.

Tutoriales

Los tutoriales presentan los aspectos básicos de algunos temas. En varios casos se acompañan descripciones VHDL. En una versión siguiente se incluirán más tutoriales con mayores facilidades pedagógicas.

Los tutoriales actuales incluyen puertas básicas(And, Or, Not), descodificadores(1 de 2, 1 de 4, 1 de 8, 74138), multiplexores(de 2 entradas, de 2 entradas de 4 bits, 74157, de 4 entradas, de 8 entradas, 74151), sumadores (completo, de 2 bits, de 4 bits, 7483A), comparadores (de 1 bit, de 4 bits, 7485), latches (SR con NOR, SR con NAND) y flipflops (74LS76A).

Modelos de Circuitos Integrados Estándares

En la siguiente lista se muestran los circuitos integrados LS TTL modelados en este programa:

  • Circuitos combinacionales
    • And
      • 7408 - And de 2 entradas (x4)
      • 7411 - And de 3 entradas (x3)
      • 7421 - And de 4 entradas (x2)
    • Nand
      • 7400 - Nand de 2 entradas (x4)
      • 7410 - Nand de 3 entradas (x3)
      • 7420 - Nand de 4 entradas (x2)
      • 7430 - Nand de 8 entradas
      • 74133 - Nand de 13 entradas
    • Not
      • 7404 - Not (x6)
    • Nor
      • 7402 - Nor de 2 entradas (x4)
      • 7427 - Nor de 3 entradas (x3)
      • 74260 - Nor de 5 entradas (x2)
    • Or
      • 7432 - Or de 2 entradas (x4)
    • Xor
      • 7486 - Xor de 2 entradas (x4)
      • 74386 - Xor de 2 entradas (x4)
    • And - Or - Invert
      • 7451 - 2 productos, 2-3-entradas
      • 7454 - 3-2-2-3 entradas
      • 7455 - 2 productos, 4-entradas
    • Codificadores
      • 74147 - Codificador de prioridad, 10 líneas a 4
      • 74148 - Codificador de prioridad, 8 líneas a 3
    • Descodificadores
      • 7442 - Descodificador 1 de 10 líneas (BCD a decimal)
      • 7447 - Descodificador BCD a 7 Segmentos
      • 74137 - Descodificador/demultiplexor 1 de 8 líneas
      • 74138 - Descodificador 1 de 8 líneas
      • 74139 - Descodificador/demultiplexor 1 de 4 líneas (x2)
      • 74155 - Descodificador/demultiplexor 1 de 4 líneas (x2)
      • 74247 - Descodificador BCD a 7 Segmentos
    • Multiplexores
      • 74151 - Multiplexor de 8 líneas a 1
      • 74153 - Multiplexor de 4 líneas a 1 (x2)
      • 74157 - Multiplexor de 2 líneas a 1 (x4)
      • 74158 - Multiplexor de 2 líneas a 1 (x4)
      • 74298 - Multiplexor de 2 líneas a 1 con registro (x4)
      • 74352 - Multiplexor de 4 líneas a 1 (x2)
      • 74398 - Multiplexor de 2 líneas a 1 con registro (x4)
      • 74399 - Multiplexor de 2 líneas a 1 con registro (x4)
    • ALU
      • 74181 - Unidad lógica y aritmética de 4 bits
    • Generador de paridad
      • 74280 - Generador/Revisor de paridad par/impar de 9 bits
    • Comparador
      • 7485 - Comparador de magnitud, 4 bits
    • Sumadores
      • 7483A - Sumador, 4 bits
      • 74283 - Sumador, 4 bits
  • Circuitos secuenciales
    • Flipflops
      • 7473A - Flipflop JK flanco negativo(x2)
      • 7474A - Flipflop D, preset, clear, flanco positivo (x2)
      • 7476A - Flipflop JK, preset, clear, flanco negativo (x2)
      • 74107A - Flipflop JK flanco negativo (x2)
      • 74109A - Flipflop JK flanco positivo (x2)
      • 74112A - Flipflop JK flanco negativo (x2)
      • 74113A - Flipflop JK flanco negativo (x2)
      • 74114A - Flipflop JK flanco negativo (x2)
    • Registros con Latches
      • 7475 - 4 latches D
      • 7477 - 4 latches D
      • 74256 - Latch direccionable de 4 bits (x2)
      • 74259 - Latch direccionable de 8 bits
      • 74279 - 4 latches con set y reset
      • 74375 - 4 latches D
    • Registros con Flipflops
      • 74174 - 6 flipflops D
      • 74175 - 4 flipflops D
      • 74273 - 8 flipflops D con clear
      • 74377 - 8 flipflops D con enable
      • 74378 - 6 flipflops D con enable
      • 74379 - 4 flipflops D con enable
    • Registros de Desplazamiento
      • 7495B - 4 bits
      • 74164 - Entrada serie, salida paralela
      • 74165 - 8 bits, paralelo a serial
      • 74166 - Entrada paralela, salida serie
      • 74194A - bidireccional, 4 bits
      • 74195A - 4 bits, universal
    • Memoria
      • 74170 - Memoria de lectura y escritura 4 x 4
    • Contadores Asíncronos
      • 7490 - Divisor por 2 y 5
      • 7492 - Divisor por 2 y 6
      • 7493 - Divisor por 2 y 8
      • 74196 - Divisor entre 2 y 5
      • 74197 - Divisor entre 2 y 8
      • 74290 - Divisor entre 2 y 5
      • 74293 - Divisor entre 2 y 8
      • 74390 - Divisor entre 2 y 5 (x2)
      • 74393 - Contador binario de 4 bits (x2)
      • 74490 - Contador de décadas (x2)
    • Contadores Síncronos
      • 74160A - Módulo 10, reset asíncrono
      • 74161A - Módulo 16, reset asíncrono
      • 74162A - Módulo 10, reset síncrono
      • 74163A - Módulo 16, reset síncrono
      • 74168 - Bidireccional, módulo 10
      • 74169 - Bidireccional, módulo 16
      • 74190 - Módulo 10
      • 74191 - Módulo 16
      • 74192 - Bidireccional, BCD
      • 74193 - Bidireccional, módulo 16
      • 74669 - Bidireccional, módulo 16

NOTA: el pin bidireccional del 7447 se ha modelado sólo como salida.

Modelos de Circuitos Integrados de Aplicación Específica

Existen cuatro modelos de ASICs:

  • 74801 (semáforo de seis luces con modos diurno y nocturno)
  • 74802 (contador BCD con salida en binario y con decodificador de 7 segmentos incorporado)
  • 74803 (contímetro de 0 a 8)
  • 74804 (semáforo con sensores de paso)

 

Ejemplos de Circuitos, Escenarios y Tutoriales

A continuación se muestran ejemplos de un tutorial, varios circuitos y dos escenarios incorporados en el programa.

La figura 2 muestra un tutorial interactivo para la puerta AND. El propósito de los tutoriales es que el usuario determine, identifique y/o descubra las funciones lógicas interactuando con los circuitos preconstruidos.


Figura 2. Ejemplo de un tutorial para la puerta AND

La figura 3 muestra un circuito de prueba basado en un contador para probar todas las combinaciones de puertas lógicas simples.


Figura 3. Circuito de prueba basado en contador.

La figura 4 muestra un circuito decodificador binario con un decodificador de siete segmentos.


Figura 4. Circuito decodificador binario con decodificador de siete segmentos.

La figura 5 muestra un circuito de contador BCD con habilitación de cuenta ascendente/descendente de 0 a 999.


Figura 5. Circuito contador decimal de 0 a 999.

La figura 6 muestra un caso de interacción entre un circuito construido sobre el módulo digital y un escenario para un tanque de agua que se llena con una bomba. Cuando el módulo está apagado el escenario opera en modo simulación, con un control independiente que muestra el comportamiento deseado. Cuando el módulo se enciende el escenario responde a las salidas del circuito construido sobre la tarjeta de pruebas (breadboard).


Figura 6. Interfaz entre módulo y escenario.

La figura 7 ilustra un escenario para el control de las luces de un semáforo con sensores de paso de vehículos por una calle de bajo tránsito. Los autos obedecen al estado de las luces de los semáforos.


Figura 7. Escenario de un cruce de avenida con calle de bajo tránsito.

Más Información

Todos los comentarios, consultas, sugerencias, reportes de errores y fallas, sugerencias y correciones son bienvenidos. También son bienvenidas las oportunidades de colaboración. Me interesa la educación en ingeniería y el diseño y programación de sistemas digitales. Para detalles, puedes consultar mi información profesional.

Si estás interesado en cursos y talleres visita la sección de Cursos y Talleres. Ahí hallarás información sobre cursos de circuitos digitales y de diseño digital, lógica programable, microcontroladores, lenguajes de descripción de hardware, VHDL, programación de computadoras, programación orientada a objetos, C++, simulación de circuitos electrónicos, y talleres de ciencia e ingeniería para colegios, institutos técnicos y universidades.

 

Descargas

El programa puede ser descargado desde SimuladorDigital_095.zip
Una guía preliminar está en GuiaPreliminar_095.zip
Ejemplos de algunos circuitos están en EjemplosDeCircuitos_095.zip
 

La versión 0.9.7 sin tutoriales ni escenarios pero con varios protoboards y tableros de entrada y salida se describe en ConstructorVirtualySimuladorDigitalConChipsTTL.pdf y puede ser descargado desde SimuladorDigital_097.zip.

Intentemos hacer un mundo mejor. Que estés muy bien! Recibe cordiales saludos desde Chincha, Perú :)