Tutorial Captura de esquemas y simulación lógica con la herramienta ISE Área de Arquitectura y Redes de Computadores Dpto. de Tecnologías y Sistemas de Información Escuela Superior de Informática 1
Objetivos El objetivo de este tutorial es el de familiar al alumno con las herramientas y el flujo básico para el diseño de circuitos integrados. Este objetivo puede desglosarse en los siguientes objetivos parciales: Conocer las cuestiones básicas sobre la herramienta de diseño ISE Capturar un sencillo diseño combinacional. Crear un banco de pruebas para la verificación del diseño, utilizando para ello un cronograma. Verificar el diseño y validar el cronograma resultante. Implementar el diseño en una placa de prototipazo. Captura del diseño Creación del proyecto 1) En primer lugar debe iniciarse el entorno de diseño ISE tecleando ise-9.1 9.1i & abriendo en Linux una sesión de Terminal. Figura 1: Asistente para la creación del proyecto 2) El primer primer paso para la creación del diseño es abrir un nuevo proyecto. Selecciona File=>New Project desde el menú de la aplicación, tras lo cual aparecerá un cuadro de diálogo en el que deberás completar la siguiente información y pulsar Next. Project Name: tutorial Project Location: /tmp 1 TopLevelSource Type: Schematic 1 Puede utilizarse cualquier ubicación del sistema de ficheros válida. A partir de ella se creará un directorio con el nombre del proyecto (/tmp/tutorial en el ejemplo), donde se ubicarán todos los ficheros del proyecto. 2
3) A continuación aparecerá un nuevo cuadro con las propiedades del proyecto. Rellena los campos tal y como indica la figura 1, y pulsa Next de nuevo. 4) En un nuevo cuadro (Create New Source) se da la posibilidad de crear y añadir un fichero al proyecto. En nuestro caso se tratará de un esquemático sobre el que realizar la captura del diseño. Para ello pulsa el botón New Source... En el nuevo cuadro selecciona Schematic e indica un nombre (tutorial.sch, por ejemplo). A continuación pulsa Next, y Finish para retornar al asistente. Es posible que diga que el directorio no existe y pregunta si se quiere crear. Se le responde que sí. 5) Como no se va a añadir ningún fichero más al diseño pulsa de nuevo Next para saltar el cuadro de inclusión de ficheros ya existentes y Finish en el resumen final del proyecto. Figura 2: Entorno de trabajo Al finalizar el proceso de creación del proyecto, el entorno de desarrollo tendrá un aspecto como el de la figura 2. En él se pueden distinguir varias áreas. En la zona inferior se encuentra la consola, en la que se muestran los mensajes de notificación, advertencia y error de la herramienta. En la parte derecha del entorno se abren las distintas ventanas de edición o la de estado del proyecto (la mostrada en la figura). La parte izquierda sirve para mostrar la estructura del diseño, las bibliotecas de componentes y las distintas etapas del flujo de diseño. 3
Selecciona la pestaña Sources en la parte izquierda de la ventana de trabajo y comprueba cómo el proyecto contiene únicamente el esquema vacío definido al crear el proyecto (anotado jerárquicamente bajo el dispositivo xc2vp306ff896. Captura del diseño El diseño que se va a capturar y verificar en este tutorial es el que se muestra en la figura 3. Corresponde con la implementación de una puerta AOI de 4 entradas, construida a base de un nivel de puertas AND y una puerta OR que realiza la suma final. Figura 3: Esquema a capturar Para la edición del esquema haz doble click sobre el fichero de esquema (tutorial.sch). Al hacerlo aparecerá una ventana de edición en blanco, así como una nueva pestaña en la parte izquierda (Symbols). Esta pestaña permite acceder al menú de símbolos disponibles como base para la construcción del esquema. A partir de aquí, el procedimiento para la captura del circuito es el siguiente: 1) Selecciona el componente AND2 del cuadro de símbolos. Para facilitar la navegación puedes filtrar por categoría los elementos mostrados. Las puertas lógicas que vamos a utilizar se encuentran dentro de la categoría Logic. Pinchar encima de AND2 (menú symbols). 2) Mueve el ratón hacia el esquema en blanco, y comprueba como junto al cursor se desplaza también el símbolo seleccionado. Elige una zona donde ubicarlo y pulsa el botón izquierdo del ratón para fijarlo. 3) Haz una segunda instancia del componente inmediatamente debajo del primero. 4) Ahora selecciona el símbolo OR2 e instáncialo también en el esquema, según la disposición mostrada en la figura 3. Pulsa la tecla ESC para dejar de insertar componentes. 5) Amplía ahora el área de trabajo para facilitar la visualización del diseño. View=>Zoom=>To Box, y después traza un rectángulo alrededor del área que se desea ampliar. 6) A continuación se cablearán las salidas de las puertas AND2 y las entradas de las puertas OR2, según la figura 3. Selecciona para ello el modo de cableado (Add=>Wire), después haz click entre los dos terminales a conectar. Al finalizar el cableado pulsa ESC para pasar al modo de selección (el modo por defecto). 4
7) Para finalizar la captura es necesario incluir los símbolos para los puertos de entrada y salida. El programa detecta automáticamente si es de entrada o de salida. Selecciona ahora el modo de conexión de puertos (Add=>I/O Marker), y conecta uno a cada entrada y salida del diseño. Hay que ponerse justo encima del pin. No olvides pulsar ESC para salir. Edita después el nombre de cada uno haciendo doble click sobre ellos, siguiendo lo indicado en la figura 3. 8) El último paso consistirá en comprobar si todas las conexiones se han realizado correctamente, para lo cual se ejecutará Tools=>Check Schematic. Si no se detectan errores, se habrá completado la captura del diseño. En caso contrario deberán revisarse los puntos indicados y repetir el chequeo. 9) Almacena el esquemático recién creado, pulsando File Save (no hay que darle nombre, ya lo tiene desde el principio). Verificación del circuito Una vez finalizada la captura, el siguiente paso en el flujo de diseño consiste en verificar la funcionalidad del circuito. El método que se sigue habitualmente para ello es el de la creación de un banco de pruebas. La misión del banco de pruebas es la de suministrar valores a las entradas del circuito, que generarán una serie de resultados en las líneas de salida. En este caso nos serviremos de un cronograma, tanto para indicar cuáles deben ser las entradas que forman parte del conjunto de pruebas, como para inspeccionar visualmente si dichas entradas se corresponden con los valores esperados según la funcionalidad del circuito. Edición del cronograma 1) Selecciona la pestaña sources en el cuadro del área izquierda de la ventana principal. 2) Selecciona el dispositivo xc2vp306ff896, del que cuelga el esquema completado anteriormente, y del menú emergente que se despliega con el botón derecho, selecciona la opción New=>Source. 3) Aparecerá un cuadro de diálogo (New Source Wizard) en el que debe escogerse la opción Test Bench Waveform, además de asignarle el nombre correspondiente (File name), por ejemplo tutorial_tb. El asistente sugerirá asociar dicho banco de pruebas a un diseño, que en nuestro caso es el del esquema realizado anteriormente. Pulsa Next, y posteriormente Finish. 4) A continuación, un nuevo cuadro de diálogo solicitará introducir las características del reloj del sistema. Puesto que nuestro sistema es combinacional, y por tanto no requiere reloj, selecciona la opción Combinational, en la parte derecha del cuadro de diálogo. Modifica el valor del campo Initial Length of Testbench a 1800 ns para que la duración de la simulación sea suficiente, mantén el resto de valores por defecto, y pulsa Finish para terminar. 5) Al finalizar el proceso aparecerá un cronograma como el de la figura 4, pero con todos los valores de las señales puestos a 0. 6) Puesto que el circuito a verificar es muy sencillo, y solamente consta de 4 entradas, es posible comprobar de forma exhaustiva todas las posibles combinaciones (16 en total). Para ello debes editar el cronograma como muestra la figura 4. Puedes modificar los valores de las señales pulsando con el ratón sobre las zonas sombreadas de azul. 5
7) Almacena el cronograma creado. File Save Figura 4: Cronograma para la verificación del diseño 8) Para pasar a los aspectos relacionados con la simulación, debe seleccionarse la vista de simulación, seleccionando Behavioral Simulation en la parte superior izquierda de la ventana la opción Sources for, esto tendrá como resultado la modificación de los procesos relacionados con cada fichero. 9) Selecciona ahora el fichero de testbench tutorial_tb en el cuadro Sources, y despliega en Processes la opción Xilinx ISE Simulator hasta visualizar Simulate Behavioral Model. Ejecuta ahora este último proceso, que tendrá como resultado la puesta en marcha del simulador digital y la aparición de una ventana de simulación como la de la figura 5. 10) Comprueba que los valores de la salida Z son los indicados en la figura 5. Dado el diseño capturado, la salida debe mostrar un '1' cuando los pares de entradas (A1/A2) y/o (A3/A4) tomen también el valor '1'. Figura 5: Resultado de la simulación 6