Digital Systems Studio: herramienta para el diseño, comprobación y simulación de sistemas digitales
Abstract
Este artículo versa sobre una aplicación, denominada Digital Systems Studio (DSS), desarrollada en el contexto de un proyecto de fin de carrera de Ingeniería en Informática, dirigido por la profesora Gemma Sánchez Antón [1]. Dicha aplicación es una herramienta de CAD para el diseño, comprobación y simulación en el tiempo de sistemas digitales. Su uso está destinado, principalmente, a alumnos de primer curso, pertenecientes a las asignaturas en las que se estudian sistemas digitales de las tres titulaciones de Informática que se imparten en nuestra escuela: Ingeniería Técnica en Informática de Sistemas, Ingeniería Técnica en Informática de Gestión, e Ingeniería en Informática.
Full text
1 DIGITAL SYSTEMS STUDIO: HERRAMIENTA PARA EL DISEÑO, COMPROBACIÓN Y SIMULACIÓN DE SISTEMAS DIGITALES. Gemma Sánchez 1, Antonio Barbancho 2 e Isabel Gómez 3 1 Universidad de Sevilla. [email protected] 2 Universidad de Sevilla. [email protected] 3 Universidad de Sevilla. [email protected] RESUMEN Este artículo versa sobre una aplicación, denominada Digital Systems Studio (DSS), desarrollada en el contexto de un proyecto de fin de carrera de Ingeniería en Informática, dirigido por la profesora Gemma Sánchez Antón [1]. Dicha aplicación es una herramienta de CAD para el diseño, comprobación y simulación en el tiempo de sistemas digitales. Su uso está destinado, principalmente, a alumnos de primer curso, pertenecientes a las asignaturas en las que se estudian sistemas digitales de las tres titulaciones de Informática que se imparten en nuestra escuela: Ingeniería Técnica en Informática de Sistemas, Ingeniería Técnica en Informática de Gestión, e Ingeniería en Informática. 1. INTRODUCCIÓN. En la enseñanza de los sistemas digitales, con frecuencia se observa que los alumnos adolecen de un entendimiento completo sobre dichos sistemas, no llegando a tomar conciencia de la transcendencia y aplicaciones de los mismos en el mundo que les rodea. Por otro lado, plantean la problemática de cómo determinar por sí mismos la corrección de sus soluciones a nuevos problemas de los cuales no disponen de una solución correcta o, si la tienen, ésta difiere de la suya. La herramienta ofrece un entorno amigable y fácil de usar, con una interfaz gráfica basada en ventanas y menús, y un sistema completo de ayuda, que cubre todas las fases involucradas en el diseño, testado y simulación de sistemas digitales. [2] 2. OBJETIVOS. Esta herramienta surge con la doble finalidad de servir como herramienta de apoyo para el estudio de la teoría de sistemas digitales y como base para la realización de prácticas de laboratorio. En su aplicación como herramienta de apoyo al estudio de la teoría, se pretende dar respuesta a una doble necesidad de los alumnos: la de comprobar la corrección, tanto morfológica como semántica, de los sistemas digitales diseñados por ellos, tomando así conciencia de los errores más comúnmente cometidos en el diseño de la unidad de datos, la carta ASM y la unidad de control, lo cual les ayudará a corregirlos; y la de estudiar el comportamiento de los sistemas digitales, simulando su evolución en el tiempo, lo cual les ayudará a entender y asimilar con mayor facilidad los conocimientos adquiridos en la parte teórica de la asignatura, relacionándolos con las aplicaciones reales de dichos sistemas.
2 En su aplicación como herramienta para realizar prácticas de laboratorio, permite al alumno la modificación de las condiciones de entorno del sistema digital y ver su respuesta a dichas modificaciones. 3. DESCRIPCIÓN DE LA HERRAMIENTA DIGITAL SYSTEMS STUDIO. 3.1. Plataforma. DSS funciona sobre plataformas Windows (98, Me, Nt, 2000, XP, ...). 3.2. Funcionalidad que ofrece. La herramienta DSS ofrece al alumno las siguientes funciones: 3.2.1. Creación y edición de sistemas digitales. La herramienta dispone de opciones en la barra de edición para crear sistemas digitales nuevos, abrir otros ya existentes o cambiar entre sistemas digitales ya abiertos. La barra de navegación (figura 1) es muy útil para moverse por los sistemas digitales que el alumno tenga abiertos en cada momento. Como puede observarse, para cambiar de sistema digital tan sólo habría que hacer clic sobre el nombre del sistema al que queremos cambiar. Se permite acceder por separado a la unidad de datos y a la de control. A la hora de crear un nuevo sistema digital, la primera tarea sería el diseño de la unidad de datos. Para ello, la herramienta posee la barra de elementos (figura 2), que ofrece distintos tipos de dispositivos: circuitos combinacionales, circuitos secuenciales, buses, entradas y salidas. En cada categoría existe una librería de circuitos prediseñados, de forma que el alumno tan sólo tendría que elegirlos e insertarlos. Además de los dispositivos prediseñados, se ofrece la posibilidad de definir sus propios circuitos, especificándolos completamente, y guardarlos como plantillas integrantes de las librerías que podrán ser utilizadas en cualquier ocasión. El lenguaje usado en la definición de los elementos secuenciales es el lenguaje RT, y para el resto de elementos una sintaxis muy intuitiva análoga a dicho lenguaje. Una vez diseñada la unidad de datos, se le asocia una unidad de control, lo cual se hace fácilmente mediante un botón de la barra de elementos (figura 2). El proceso para diseñar la unidad de control comienza con el diseño de la carta ASM. Para ello, el programa nos trasladará en la ventana de diseño de la carta ASM y nos ofrecerá una nueva barra de Barra de navegación Figura 1 Barra de elementos Figura 2
3 elementos al efecto (figura 3). Esta barra de elementos nos ofrece los distintos elementos que forman la carta ASM: caja de estado, de acción condicional y de decisión. La inclusión de los mismos en la carta ASM se realizaría de una manera tan simple como seleccionándolos de la barra de elementos, lo cual nos abriría el cuadro de diálogo correspondiente al elemento seleccionado, permitiéndonos establecer sus características: para las cajas de estado y de acción condicional permite definir la actividad de cada una de las salidas de una unidad de control; para las cajas de decisión, permite definir las condiciones asociadas. Las conexiones entre los distintos tipos de cajas se realiza de forma muy simple, con sólo hacer clic en los elementos origen y destino de la conexión. Al crear una conexión saliente de una caja de acción condicional, se abrirá un diálogo que nos ofrece las distintas condiciones libres que se le podría asignar a la misma, pudiéndose elegir tantas como el usuario desee. Dichas opciones serán simplificadas automáticamente por el programa, de forma que si un camino incluyese las condiciones 001 y 011, la conexión aparecería etiquetada con 0-1. Una opción interesante es la definición de macros. Se trata de definir una transferencia entre registros y asignarle las señales que deben estar activas para que dicha transferencia se realice. De esta manera, se podrá elegir directamente la macro y el sistema incluirá, en la caja de estado o de acción condicional correspondiente, las variables que la integran. Al pasar el ratón sobre cualquiera de los elementos de ambas unidades, aparecerá su descripción asociada, dada por el usuario a la hora de definirlo. Las características de cualquier elemento de ambas unidades pueden ser modificadas de forma sencilla, simplemente haciendo clic dos veces sobre él. Una posibilidad también interesante es la de mover o cambiar de tamaño un elemento o grupo de elementos de la unidad de datos o de la de control sin que ello afecte al resto de elementos, ya que las conexiones y relaciones entre ellos se mantiene. La herramienta dispone de todas las opciones de edición propias de las herramientas de CAD, lo cual permite copiar, cortar y pegar elementos o grupos de elementos de los sistemas digitales. También ofrece la posibilidad de hacer zoom, y una completo menú de impresión. 3.2.2. Testado de sistemas digitales. Durante todo el proceso de diseño descrito, la herramienta controla la corrección léxica de los elementos diseñados, avisando al usuario ante cualquier error. Para la comprobación de los sistemas diseñados, se dispone de una Ventana de mensajes (figura 4), que mostrará todas aquellas incidencias que se produzcan Barra de elementos Figura 3 Ventana de mensajes Figura 4
4 durante la corrección de un sistema digital, mostrando los errores, en caso de haberlos, acompañados de una explicación. Si hace clic sobre algún error, los elementos implicados aparecerán resaltados en el diagrama correspondiente (unidad de datos o carta ASM). La aplicación ofrece un botón, , que comprobará la corrección de la parte del sistema digital (unidad de datos o carta ASM) desde la cual se haya pulsado. Como respuesta, se muestran en la Ventana de mensajes los errores cometidos y los elementos asociados a dichos errores. Ante la inexistencia de errores, se mostrará un mensaje informando de tal circunstancia. En la comprobación de la unidad de datos se revisa la descripción RT de todos sus componentes. En la de la unidad de control se comprueba la corrección de la carta ASM, cerciorándose de cuestiones tales como la existencia de todas las señales de entrada y de salida de las que la carta ASM hace uso; la existencia del estado inicial; que la carta ASM sea un grafo cerrado y conexo; que todos los bucles contengan, como mínimo, una caja de estado; que todos los elementos tengan, al menos, un enlace de entrada y otro de salida; y que todos los posibles valores de la condición de una caja de decisión hayan sido contemplados. Todos los posibles errores disponen de cuadros de diálogos que hacen su corrección cuasiautomática y muy sencilla. 3.2.3. Ejecución de sistemas digitales. La ejecución del sistema se puede solicitar mediante el menú Ejecución o haciendo uso del botón . Elegida esta opción, se comprueba el sistema, mostrándose en la Ventana de mensajes los errores detectados, según se ha explicado en el apartado anterior (ver figura 4). Si el sistema digital es correcto, aparecerá el cuadro de diálogo mostrado en la figura 5, en el que se muestran: • Ventana 1: Esta ventana muestra los valores de las entradas y el contenido de los circuitos secuenciales en cada ciclo de reloj, donde Ei representa al ciclo iésimo. Estos valores pueden ser modificados para el ciclo actual, escribiendo directamente en la última columna mostrada en esta ventana (que representa a este ciclo) el nuevo valor que deseemos darle. Al realizar esta operación, se comprobará la corrección del valor introducido por el usuario antes de ser asignado, avisando con un mensaje del error cometido, en caso de ser un valor incorrecto. Si se selecciona algún circuito secuencial de esta ventana, sus señales de entrada y salida aparecen en la ventana de señales (ventana 6). • Ventana 2: Contiene la lista de memorias disponibles en el sistema. Si se selecciona alguna, sus señales de entrada y salida aparecen en la ventana de señales. Si se hace doble clic sobre alguna, se puede visualizar y modificar su contenido, tal como se muestra en el siguiente apartado. • Ventana 3: Contiene la lista de circuitos combinacionales del sistema. Si se selecciona alguno de ellos, sus señales de entrada y salida aparecen en la ventana de señales.
5 • Ventana 4: Esta ventana contiene las salidas y los buses del sistema digital. Sigue el mismo formato de la ventana 1. Estos valores no se pueden modificar ya que no tiene sentido. Si se selecciona algún elemento, sus valores aparecen en la ventana de señales. • Ventana 5: Cada casilla indica el estado en el que se encontraba la carta ASM en el ciclo de reloj que se muestra en la cabecera de la columna. Hay dos columnas especiales: Actual, que indica el estado actual de la carta y Siguiente, que indica el estado al que pasaría con los valores actuales. Si se selecciona algún elemento (sólo es seleccionable la columna Actual), sus señales de entrada y salida aparecen en la ventana de señales. • Ventana 6: Esta ventana contiene las señales del último elemento seleccionado, codificadas según un código de colores (entradas en rojo, salidas en azul y entrada/salidas en blanco). Cada casilla indica el valor de la señal en el estado en que se seleccionó el elemento. • Ventana 7: Ofrece la posibilidad de salvar el histórico de la ejecución en un fichero html que contiene toda la información de este cuadro de diálogo. • Ventana 8: Permite elegir la representación numérica utilizada para representar los valores, puede ser binaria, octal, decimal y hexadecimal. • Ventana 9: Permite elegir la duración (en segundos) de los ciclos de reloj. La opción 0 determina que el cambio de ciclo se realice de forma manual. • Ventana 10: Avanza un ciclo de reloj. • Ventana 11: Avanza tantos ciclos de reloj como le indiquemos. • Ventana 12: Permite detener la ejecución si ésta se está realizando en modo automático. • Ventana 13: Sale de la ejecución para volver a la pantalla de edición. Cuadro de diálogo de ejecución del sistema Figura 5
6 3.2.4. Edición del contenido de las memorias. El contenido de una memoria puede ser visualizado y modificado fácilmente, seleccionándola en el cuadro de diálogo de ejecución del sistema. Esto nos llevará al cuadro de diálogo mostrado en la figura 6, en el cual se muestra el contenido de todas las posiciones de la memoria seleccionada en la representación numérica elegida. Para modificar una determinada posición, tan sólo habrá que seleccionarla haciendo clic sobre ella e introduciendo su nuevo valor, cuya corrección se comprobará antes de realizar la asignación de valor a la posición de memoria. Se permite también cargar la memoria con una asignación de valores contenida en un archivo al efecto, dicho fichero ha de tener un tamaño coincidente con el de la memoria. Asimismo, el contenido de la memoria puede ser guardado en un fichero. 3.2.5. Sistema de ayuda. Junto con la herramienta, se adjuntan las soluciones correctas a múltiples ejemplos de sistemas digitales que el alumno puede estudiar. Estos ejemplos se han obtenido de problemas procedentes de los boletines, exámenes de la asignatura y libros. [3], [4], [5], [6] Además de esto, la herramienta cuenta con una ayuda en línea muy completa. 4. METODOLOGÍA. Las prácticas basadas en el uso de esta herramienta no se están llevando a cabo todavía, dado que la novedad del software aún no ha permitido desarrollar los boletines de prácticas adecuados. La metodología prevista para la realización de prácticas con la herramienta DSS consiste en dos sesiones, de dos horas cada una, que se realizarán en laboratorios dotados de PCs en los que se instalará dicha herramienta. Los alumnos dispondrán, asimismo, de la herramienta para instalarla en sus ordenadores de forma que puedan utilizarla tanto para preparar las prácticas como para estudiar la teoría y resolver los boletines de problemas. La primera sesión consistiría en una toma de contacto con la herramienta en el laboratorio. En dicha sesión, se explicarán las distintas funcionalidades de la herramienta y su manejo. Para afianzar los conceptos adquiridos en la misma, se pedirá que los alumnos (por parejas) manipulen, comprueben, corrijan y ejecuten un sistema digital suministrado por el profesor. Cuadro de diálogo de memorias Figura 6
7 Como segunda sesión, se propondrá un sistema digital que los alumnos (por parejas) tendrán que diseñar. En el laboratorio, tendrán que editar, comprobar, corregir y ejecutar dicho sistema. Se valorará el manejo que los alumnos tengan de la herramienta, y se les pasará un test que tendrán que resolver delante del profesor, teniendo que responder las preguntas que éste les pueda formular al respecto. Dicho test planteará cuestiones diversas, por ejemplo, sobre los estados por los que pasa el sistema digital para unas determinadas entradas de control y/o de datos, o la evolución de los distintos elementos secuenciales o de los valores guardados en las memorias. 5. RESULTADOS. Hasta no disponer de resultados derivados de la realización de prácticas, se les ha suministrado la herramienta a un pequeño grupo de alumnos interesados en evaluarla. Los resultados han sido muy positivos, mostrando todos un grado de satisfacción alto, tanto con la facilidad de manejo de la herramienta como con los resultados obtenidos respecto a la consecución de los objetivos. 6. CONCLUSIONES. DSS se constituye como una útil herramienta para los alumnos, cubriendo de forma satisfactoria los objetivos con los que se emprendió el proyecto de fin de carrera en el que se diseñó. Una factor importante a la hora del diseño fue su amigabilidad y facilidad de manejo, que se han conseguido en un grado bastante razonable. Además, el sistema de ayuda y el completo manual de instrucciones facilitan aún más su uso. Su potencia en la detección de errores ha sido probada concienzudamente, poniendo mucho énfasis en que la herramienta dé una respuesta satisfactoria a todos los errores que se puedan cometer en el diseño de un sistema digital. Además de la potencia en la detección de errores, ofrece la posibilidad de ejecutar sistemas digitales ofreciendo un completo control, sobre todo cuando acontece en los mismos, y permitiéndonos modificar a nuestra conveniencia los distintos valores de entradas, elementos secuenciales, memorias, etc., lo cual facilita el estudio de la respuesta del sistema digital ante distintas condiciones de ejecución. 7. BIBLIOGRAFÍA [1] J. Caballero y F.M. García, “Digital Systems Studio: Documentación”. Proyecto de Fin de Carrera, Departamento de Tecnología Electrónica, Universidad de Sevilla, 2003. [2] J. Caballero y F.M. García, “Digital Systems Studio: manual de usuario”. Proyecto de Fin de Carrera, Departamento de Tecnología Electrónica, Universidad de Sevilla, 2003. [3] C. Baena, M. Bellido, A. Molina, P. Parra, M. Valencia: "Problemas de Circuitos y Sistemas Digitales". Ed. McGraw-Hill Interamericana, 1997. [4] C. Baena, I. Gómez, J. Escudero, M. Valencia: "Sistemas Digitales". Servicio de Publicaciones del Dpto. de Tecnología Electrónica,1997.
8 [5] J.P. Hayes: "Diseño de Sistemas Digitales y Microprocesadores". Ed. McGraw-Hill,1986. [6] http://www.dte.us.es/tec_inf/itis/estr_comp/programa.htm