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.
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.
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 (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.
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.
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.
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).
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.
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)
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.
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.
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 enConstructorVirtualySimuladorDigitalConChipsTTL.pdf y puede ser descargado desde SimuladorDigital_097.zip.