2013_Clase Introduccion a Xilinx

download 2013_Clase Introduccion a Xilinx

of 24

Transcript of 2013_Clase Introduccion a Xilinx

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 1

    Introduccin al software ISE de Xilinx

    Introduccin

    Actualmente cualquier proceso de investigacin dispone de un soporte software que asiste al cientfico en el desarrollo de sistemas complejos. Los sistemas electrnicos reconfigurables del tipo FPGA son un buen ejemplo de la complejidad que se puede alcanzar, esta complejidad no sera abarcable sin la ayuda de un entorno con herramientas que asistan en el proceso de diseo, simulacin, sntesis del resultado y configuracin del hardware. Un ejemplo de un entorno de este tipo es el software de la empresa Xilinx denominado ISE (Integrated Software Environment). En esta prctica veremos el proceso de instalacin, se muestra en detalle un ejemplo sencillo de diseo de un circuito combinacional para entregar las bases de funcionamiento del programa, se recomienda realizar ejemplos adicionales para familiarizarse con las herramientas de diseo y anlisis. Este software constituye un verdadero entorno EDA (Electronic Desing Automation). La Figura 1 representa el esquema de los componentes ms importantes del ISE y la secuencia en que se utilizan.

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 2

    Figura 1

    La interfaz grfica de usuario (GUI: Graphic User Interface) se denomina Proyect Navigator y facilita el acceso a todos los componentes del proyecto. Los diseos de usuario se pueden introducir mediante diferentes formatos. Los ms utilizados son: los esquemticos, los grafos de estados y las descripciones hardware en VHDL. Una vez compilados los diseos se puede simular su comportamiento a nivel funcional o a nivel temporal. A nivel funcional no tiene en cuenta los retardos provocados por el hardware y a nivel temporal simula el diseo teniendo en cuenta cmo se va a configurar el hardware. En este curso se utilizara ISE Design Suite 13 software que permitir un mejor aprovechamiento y optimizacin de costos con una mayor productividad del diseo. Por primera vez, las herramientas de diseo de ISE entregan "la tecnologa de sincronizacin de reloj inteligente "que reduce el consumo de potencia dinmica en hasta un 30 %. Adems, incorporado una serie de mejoras de infraestructura de software y metodologa que mejora el tiempo de ejecucin, agilizando la integracin de sistemas, y ampliar la interoperabilidad IP a travs de su ms reciente generacin de familias de dispositivos y plataformas de diseo dirigido.

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 3

    Inicio del software ISE (Integrated Software Environment) de Xilinx. En esta primera prctica se realizar un circuito muy simple, se detallar el proceso de diseo con la herramienta ISE de Xilinx, usando la versin 13.1 del ISE.

    Veremos adems la diferencia entre los dos tipos de descripcin que se pueden utilizar en VHDL: el diseo estructural y el diseo por comportamiento.

    Iniciemos, para abrir ISE Project Navigator vamos al men Inicio -> Todos los programas -> Xilinx ISE Design Suite 13.1 -> ISE Design Tools y ejecutamos la aplicacin Project Navigator.

    Al iniciar el programa, carga automticamente el ltimo proyecto con el cual se trabaj.

    Nos puede aparecer una ventana con el Tip of the day que son indicaciones que hace la herramientas cada vez que la arrancamos. Hundimos en OK, con lo que se cierra dicha ventana. Para crear el nuevo proyecto, entramos a File y se crea New Project como la mostrada en la figura.

    En ella pondremos el nombre del proyecto, que lo llamaremos FuncionAND, indicamos la ruta donde guardaremos el proyecto (Project location), que ser C:/...

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 4

    Para el ltimo recuadro de la ventana, donde pone TopLevel Source Type seleccionaremos HDL, ya que nuestro diseo lo haremos mediante lenguajes de descripcin de hardware. A continuacin aparecer otro cuadro de dilogo en el que se pregunta por el tipo de dispositivo que se va a usar y por las herramientas que se van a utilizar a lo largo del flujo de diseo. En esta curso se implementaran todos los desarrollos en la FPGA Spartan 3E de Xilinx

    A partir de la informacin de los encapsulados de las FPGA tendremos que rellenar la ventana de la figura.

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 5

    Para la seleccin de la herramienta de sntesis no tenemos alternativa, y para el simulador en esta prctica no es importante y lo dejamos en ISE Simulator (VHDL/Verilog), aunque si lo tienes instalado, podras poner el Modelsim. En el lenguaje de descripcin de hardware preferido (Preferred Language) se deja el VHDL, que es el que usaremos. Al terminar haga click en Next.

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 6

    Ya tenemos el proyecto creado y ahora nos disponemos a crear nuestro diseo. Para ello creamos una nueva fuente (fichero) para el proyecto hacemos click en ProjectNew Source o haciendo doble clic en Create New Source, que se encuentra en la subventana Processes.

    Con esta aparecer una nueva ventana que nos pedir el tipo de fuente que queremos crear. Como estamos trabajando en VHDL, seleccionamos VHDL Module, y nombramos al fichero compuerta_and. Este paso se muestra en la figura, a continuacin hacemos click en Next.

    Digite en el campo file name el nombre iniciando por una letra (A-Z, a-z) y debe contener solamente carcteres alfanumericos (A-Z, a-z, 0-9) y underscores (_).

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 7

    Para este caso digite compuerta_and..el campo Location contiene la ruta del proyecto actual por defecto. Verifique que la casilla Add to project este seleccionada, para adicionar el archivo fuente al proyecto como muestra la figura, para informacin y ayuda detallada dar click en botn More Info.

    Despus hacemos clic en el botn Next y pasaremos a la ventana Define Module, aqu indicamos las caractersticas de nuestro mdulo, como el nombre de entidad y de arquitectura (ms adelante veremos qu es esto), y las entradas y salidas con que contar, hagamos la edicin necesaria para que tengamos algo como esto:

    Ahora hacemos clic en el botn Next, se mostrar un resumen del nuevo archivo fuente que estamos agregando al proyecto:

    En la figura se observa el cuadro resumen del nuevo archivo fuente del proyecto que se est realizando. Ahora damos click en Finish.

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 8

    El archivo fuente contiene el par entidad / arquitectura visualizados en el espacio de trabajo, y el display de compuerta_and. es como se muestra en la figura.

    Vamos a analizar el cdigo que tenemos desde el inicio, la primera seccin que se aprecia con texto de color verde, es cdigo predefinido que ISE Project Navigator inserta al inicio de cada mdulo que se agrega a un proyecto, si notamos, todas las lneas en esta primera seccin inician con un par de guiones : al igual que en los lenguajes de programacin de software, VHDL permite insertar comentarios en el cdigo, los cuales se indican mediante esos dos guiones, todo el texto que siga a estos guiones se toma como un comentario. Es buena idea proporcionar de esta forma informacin sobre el mdulo que estamos creando, aunque nosotros vamos a borrar la mayor parte de esa primera seccin de comentarios para dejar solamente:

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 9

    A continuacin en el cdigo, tenemos:

    library IEEE; use IEEE.STD_LOGIC_1164.ALL;

    La instruccin library nos permite indicar una biblioteca externa (o librera, como se ha hecho comn llamarles), de la que deseamos utilizar sus tipos de datos, operadores y algunas otras declaraciones, sera equiparable a la instruccin #include de los lenguajes C y C++. Y tambin, de manera similar a estos lenguajes, VHDL termina cada instruccin con punto y coma: ;. Despus tenemos una instruccin use, que nos permite indicar qu paquete vamos a utilizar de la biblioteca que antes habamos declarado con library. En este caso, se indica que vamos a hacer uso de la biblioteca IEEE, que es una biblioteca estndar definida por IEEE, que de esa biblioteca utilizaremos el paquete STD_LOGIC_1164, y que de dicho paquete utilizaremos todas sus declaraciones (instruccin ALL).

    Podemos encontrar un poco ms de informacin sobre este paquete en el siguiente enlace: VHDL Online Help Std_Logic_1164 Package.

    Aprovecharemos ahora para mencionar que VHDL es un lenguaje que no distingue minsculas de maysculas, por lo que la declaracin de la biblioteca IEEE podra hacerse tambin de esta forma:

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 10

    LIBRARY ieee USE ieee.std_logic_1164.all;

    A continuacin en el cdigo de nuestro mdulo, tenemos otra seccin de comentarios que tambin agrega ISE Project Navigator por defecto en nuevos mdulos:

    -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values --use IEEE.NUMERIC_STD.ALL; -- Uncomment the following library declaration if instantiating -- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all;

    Se trata de paquetes adicionales que podramos utilizar en nuestro mdulo VHDL, el primer paquete, IEEE.NUMERIC_STD.ALL cuenta con funciones aritmticas para valores con y sin signo, el otro paquete pertenece a la biblioteca UNISIM de Xilinx, por ahora no necesitamos ninguno de estos paquetes y, de hecho, no los usaremos durante este tutorial, as que podemos eliminar toda esa seccin.

    Entidad y arquitectura

    En VHDL, cada mdulo est compuesto por dos partes: la entidad y la arquitectura. La entidad es la seccin donde se indican las conexiones (seales) del mdulo con el resto de componentes, indicamos el nmero de entradas y salidas, adems del tipo de cada una de ellas. La sintaxis de declaracin de entidad y de sus conexiones es la siguiente:

    entity NOMBRE_ENTIDAD is port ( NOMBRE_SEAL1 : MODO TIPO; NOMBRE_SEAL2 : MODO TIPO ); end NOMBRE_ENTIDAD;

    En primer lugar se indica el nombre de la entidad, utilizando la palabra reservada entity, y despus de la instruccin is se inicia la descripcin de la entidad, en este caso de las seales (o puertos) mediante las que se comunicar con el exterior; para cada seal se indica su nombre, el modo que puede ser de entrada, salida o ambos y el tipo. Notemos que las declaraciones de puertos finalizan con punto y coma, excepto la ltima antes del parntesis que culmina la instruccin port. As, continuando con nuestro mdulo, donde ISE Project Navigator ha insertado este cdigo:

    entity compuerta_and is

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 11

    Port ( A : in STD_LOGIC; B : in STD_LOGIC; Z : out STD_LOGIC); end compuerta_and;

    Se declara una entidad cuyo nombre es compuerta_and, tiene tres puertos, todos de tipo std_logic, los dos primeros denominados A y B, son entradas (in), mientras que el tercero, denominado Z, es una salida, se puede representar en la siguiente figura:

    De cierta forma, se considera la declaracin de entidad como una caja negra, para la cual se conocen sus entradas y salidas, pero no su funcionamiento interno, que es lo que se describe en la arquitectura.

    La arquitectura es la seccin de un mdulo VHDL en la que se describe el funcionamiento de la entidad, y puede hacerse de dos maneras diferentes: describiendo su estructura interna mediante interconexiones entre compuertas y componentes que constituyen al mdulo, lo que se denomina una descripcin estructural, o con una descripcin de lo que hace el mdulo, ya sea mediante funciones booleanas o mediante una descripcin algortmica, lo que se conoce como una descripcin de comportamiento. La sintaxis para declarar una arquitectura es:

    architecture NOMBRE_ARQUITECTURA of NOMBRE_ENTIDAD is -- Aqu se declaran elementos auxiliares para usar en la descripcin begin -- Aqu se realiza la descripcin de la arquitectura, -- mediante la utilizacin de sentencias secuenciales, -- combinacionales o subprogramas. end NOMBRE_ARQUITECTURA;

    Utilizamos la instruccin architecture para iniciar la declaracin de la arquitectura, despus indicamos su nombre y el nombre de la entidad a la cual corresponde la

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 12

    descripcin que se realizar, continuamos con la instruccin begin para indicar el inicio del cdigo que describe el funcionamiento de la arquitectura, y finalizamos con la instruccin end y el nombre de la arquitectura. Entre las instrucciones is y begin, es posible declarar seales, componentes o elementos auxiliares para la descripcin de la arquitectura, algunos de estos elementos los veremos ms adelante en este curso.

    Por el momento, regresemos al mdulo que hemos creado en ISE Project Navigator, donde tenemos la declaracin de la arquitectura comportamiento asociada a la entidad compuerta_and:

    architecture comportamiento of compuerta_and is begin end comportamiento;

    Vamos a agregar una lnea de cdigo despus de la instruccin begin, as:

    architecture comportamiento of compuerta_and is begin Z

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 13

    Abra las plantillas de lenguaje seleccionando Edit Language Templates como muestra la Figura.

    Usando el smbolo +, busque el siguiente cdigo de ejemplo : VHDLSynthesis ConstructsCoding Examples Basic Gates AND2-Input AND Gate como indica la Figura.

    Ubique el

    cursor aqu

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 14

    Con 2-Input AND Gate, seleccione Edit Use in File para copiar plantilla como muestra la Figura.

    La plantilla copiada dentro del archivo fuente de compuerta_and. se indica en la figura

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 15

    Cierre las plantillas de lenguaje seleccionando la pestana Languaje Templates y dar click en icono de cierre arriba a la derecha, ver Figura .

    Edicin final del archivo fuente VHDL Edite el archivo fuente para la compuerta AND diseada reemplazando el nombre del puerto entre corchetes con uno real como sigue

    reemplace con Z con A con B

    Salve el archivo seleccionando File Save.

    Sintaxis de

    compuerta and

    entradas copiada

    desde la plantilla

    de VHDL

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 16

    Usted tiene creado ahora el archivo fuente VHDL luego procedemos a verificar la sintaxis del nuevo modulo. Chequeando la sintaxis del modulo de la compuertand4 Verifique que Synthesis/Implementation es seleccionado en la lista de la ventana PROCESS como se indica en la figura

    Espere hasta que termine la implementacin. Haga doble cilik en xc3s500e-4fg320 Click en + cerca al proceso Synthesize-XST para expandir el grupo de procesos.

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 17

    Ya hemos revisado el cdigo de nuestro mdulo, nos resta comprobar que funcione correctamente, para ello podemos realizar una simulacin antes de proceder a implementarlo en un dispositivo reconfigurable.

    Simulacin

    Creamos nuestro primer mdulo VHDL, una compuerta AND de dos entradas. Es un mdulo muy simple y sencillo, pero crearlo nos permite familiarizarnos de manera ms fcil con el entorno de trabajo.

    Una vez que hemos verificado la sintaxis del cdigo de nuestro mdulo, una forma de verificar que funcione y se comporte como deseamos es realizar una simulacin. Dependiendo del entorno de trabajo sern las herramientas de simulacin que tendremos a nuestra disposicin, nosotros usaremos ISim, un simulador que viene integrado en ISE Design Suite y que sirve perfectamente para nuestros propsitos.

    Veamos cmo realizar una simulacin de nuestro componente compuerta_and. Primero, en Project Navigator, en la seccin Design, en la opcin View, debemos seleccionar Simulation:

    A continuacin, dentro de la ventana Hierarchy, seleccionamos el componente que deseamos simular, al hacerlo cambiarn las opciones disponibles en la ventana Processes, en este caso se muestra ISim Simulator, hacemos clic en el signo + a la izquierda de ISim Simulator y nos mostrar dos procesos:

    Behavioral Check Syntax y Simulate Behavioral Model

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 18

    Este ltimo proceso es el que nos permitir realizar la simulacin, hacemos doble clic y esperamos a que se abra ISim:

    ISim muestra por defecto cuatro ventanas o secciones, una en la parte inferior y tres en el medio: Instances and Processes, que nos muestra las entidades, bibliotecas y procesos existentes en nuestro mdulo; Objects, que despliega una lista de los puertos que forman parte de nuestro mdulo, indicando con pequeo icono con la letra I aquellos que son entradas y con la letra O los que son salidas; y la ventana de simulacin, donde tenemos desplegados nuevamente los puertos del mdulo con lneas de tiempo que nos permitirn visualizar el comportamiento de cada uno de dichos puertos para cada instante de la simulacin.

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 19

    Vamos a recordar ahora la tabla de verdad de una compuerta AND de dos entradas:

    A 0 0 1 1

    B 0 1 0 1

    Z 0 0 0 1 Tenemos cuatro combinaciones posibles de valores para las entradas A y B, para comprobar el funcionamiento de nuestro mdulo es conveniente simular estos cuatro casos, para ello, asignaremos valores a las entradas de manera que tengamos las cuatro combinaciones posibles y podamos evaluar el valor que toma la salida para cada una de ellas. Empezaremos por la primera combinacin, cuando ambas entradas valen 0, para indicar que una entrada tendr el valor 0 en el simulador, hacemos clic con el botn derecho del ratn sobre dicha entrada en la ventana de simulacin, del men que se despliega seleccionamos la opcin Force Constant

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 20

    Aparecer la ventana Force Selected Signal, en la opcin Force to Value: escribiremos un 0:

    Hacemos clic en el botn OK. Repetiremos estos pasos para la seal de entrada b: hacemos clic con el botn derecho sobre el nombre de la entrada en la ventana de simulacin, seleccionamos la opcin Force Constant, y establecemos a 0 la opcin Force to Value:, hacemos clic en el botn OK. No se nota ningn cambio en la ventana de simulacin una vez que hemos indicado los valores de 0 para las dos seales, estos se notarn hasta que ejecutemos la simulacin. Para ello use la barra de herramientas ISim. Haga clic en el botn que tiene como icono una punta de flecha y un reloj de arena, se ejecuta la simulacin por un tiempo determinado, el que se indica a la derecha del botn, en este caso, 1 us, la ventana de simulacin ahora mostrar:

    Observemos que en los valores en la columna Value han cambiado de U a 0, la U indica valor desconocido, que era el caso antes de iniciar la simulacin, ahora que hemos simulado por un tiempo de 1us, las entradas se encuentran en valores 0, que fue como nosotros lo forzamos, adems la seal de salida z tambin tiene el valor 0, esta no la hemos forzado, sino que toma el valor de acuerdo a lo que hemos especifidado en nuestro mdulo: la operacin AND entre las entradas a y b, que en este caso es 0.

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 21

    Ahora, vamos a cambiar el valor de la entrada a a 1, para evaluar el segundo caso de la tabla de verdad de la operacin AND de dos entradas, hacemos clic con el botn derecho sobre el nombre de la seal y seleccionamos el comando Force Constant, y ahora pondremos un 1 en la opcin Force to value:

    Haga clic en el botn para ejecutar la simulacin por cierto tiempo y ahora tendra en la ventana de simulacin:

    La columna Value ha cambiado a 1 para el caso de la seal a, adems, en la ventana de tiempo la lnea verde a la derecha de la misma seal se encuentra ms arriba y ahora con una zona sombreada debajo, esto indica que durante ese tiempo la seal se encuentra en un estado alto (1). La seal de salida z se mantiene en 0, que es correcto pues solamente cambiar de estado cuando ambas entradas sean 1. Finalmente simulemos el caso cuando ambas entradas valen 1:

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 22

    Finalmente, la salida z ha cambiado a 1, lo cual corresponde con la tabla de verdad de la operacin AND, as hemos comprobado que nuestro componente funciona correctamente. Si lo han notado, en cada paso, en la ventana de simulacin apareci a la derecha un valor con letras amarillas que cambi de 1,000,000 ps a 2,000,000 ps en el primer tiempo de simulacin, y as hasta llegar a 5,000,000 ps. Esto nos indica que entre cada paso avanzamos 1 us, que es el tiempo que configuramos en la barra de herramientas, podemos visualizar la simulacin completa si hacemos clic en el botn Zoom to Full View:

    Podemos ver los cuatro pasos de simulacin que ejecutamos, y apreciamos por completo que corresponden con la tabla de verdad de nuestro componente.

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 23

    Guarde el archivo y regrese a ISE project Navigator y --> Implementation en la ventana Design.

    Haga doble clic en el elemento de sintetizar-XST en los procesos de caja de herramientas.

    Esto es equivalente a la compilacin de un programa. Sintetizador genera un circuito de nuestras construcciones HDL. Si usted ve un error en la etapa de sntesis puede corregir el proyecto. Haga doble clic en el elemento View RTL Schematic y consulte el diagrama de bloques del circuito

  • Curso de circuitos lgicos Instituto de Fsica Universidad de Antioquia

    28/04/2013 Notas de clase Profesora Lucelly Reyes 24

    Haga doble clic en el bloque (caja negra) para ampliar y ver que tenemos un circuito como se esperaba.