Simulador de Construcción de Circuitos Digitales con Escenarios Virtuales y Tutoriales Interactivos
Ing. Arturo Javier Miguel de Priego Paz Soldán
Email: amiguel@pucp.edu.pe
Teléfono: (51 1) 9 9707 7479
Chincha - Perú
11 de junio de 2008
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. Este programa es gratuito, de copia y uso libre, y se encuentra en constante mejora.
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, y no pueden crearse nuevos modelos dinámicamente. En una versión posterior se agregarán compiladores sencillos de VHDL y C++ para crear modelos a la medida de las necesidades pedagógicas o de diseño.
- No se consideran efectos eléctricos (retardos en la propagación de las señales, abanicos de entrada y salida, ruido, etc.)
- Todos los modelos son lógicos, los chips modelados no cuentan con pines o puertos de tres estados ni bidireccionales.
- El número de escenarios y tutoriales es pequeño, poco a poco se agregarán más de ellos.
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
- 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, correciones, etc., son bienvenidos. También son bienvenidas las oportunidades de trabajo y de colaboración. Mi nombre es Arturo y mi correo electrónico es amiguel@pucp.edu.pe. Datos sobre mi trayectoria profesional puedes encontrarlos en mi CV.
Consulta esta página periódicamente por novedades y actualizaciones. Si deseas saber cuando una nueva versión esté disponible envíame un mensaje para agregar tu cuenta de correo a una lista de interés.
Si estás interesado en tomar cursos a distancia o presenciales, visita mi página 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
Este programa ha sido realizado con mucho cariño. Es una muestra de gratitud a mi familia que me ha apoyado en todo momento y también a muchas personas más. Gracias a todos ellos, puedo crecer y aprovechar los días y ver la vida como una oportunidad de hacer cosas buenas y también para contemplar, apreciar y crear.
Recibe cordiales saludos desde Chincha, en Perú. Que estés muy bien! :)