prÁctica 4: introducciÓn a la simulaciÓn y a la ... · implantaciÓn fÍsica con quartus ii v....

13
PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 OBJETIVOS Al finalizar la práctica el alumno ha de ser capaz de: - Simular un circuito usando la herramienta Quartus II, - Volcar el archivo de configuración en la FPGA y verificar su funcionamiento. MATERIAL - Ordenador personal con Quartus II, - Tarjeta de desarrollo de lógica programable. DURACIÓN 1 sesión. TRABAJO PREVIO Leer el enunciado de la práctica y anotar las dudas. Llevar al laboratorio los esquemas de la práctica anterior. INTRODUCCIÓN Aunque no se le vea utilidad a la fase de simulación del circuito capturado en la práctica anterior, es muy importante simular los sistemas que se desarrollen. En este caso tan simple se podría descargar el diseño en la tarjeta del laboratorio para comprobar su funcionamiento. Sin embargo, la simulación presenta varias ventajas: - Permite seguir fácilmente la evolución temporal de todas las señales. Para conseguir ver el mismo número de señales en el circuito real necesitaríamos un analizador lógico, que es más caro, voluminoso y delicado. - Además de las entradas y salidas del circuito se pueden analizar señales internas, lo que permite depurar el funcionamiento del circuito más a fondo.

Upload: lamduong

Post on 22-May-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0

OBJETIVOS

Al finalizar la práctica el alumno ha de ser capaz de:

− Simular un circuito usando la herramienta Quartus II,

− Volcar el archivo de configuración en la FPGA y verificar su funcionamiento.

MATERIAL

− Ordenador personal con Quartus II,

− Tarjeta de desarrollo de lógica programable.

DURACIÓN

1 sesión.

TRABAJO PREVIO

Leer el enunciado de la práctica y anotar las dudas.

Llevar al laboratorio los esquemas de la práctica anterior.

INTRODUCCIÓN

Aunque no se le vea utilidad a la fase de simulación del circuito capturado en la práctica

anterior, es muy importante simular los sistemas que se desarrollen.

En este caso tan simple se podría descargar el diseño en la tarjeta del laboratorio para

comprobar su funcionamiento. Sin embargo, la simulación presenta varias ventajas:

− Permite seguir fácilmente la evolución temporal de todas las señales. Para conseguir ver el

mismo número de señales en el circuito real necesitaríamos un analizador lógico, que es

más caro, voluminoso y delicado.

− Además de las entradas y salidas del circuito se pueden analizar señales internas, lo que

permite depurar el funcionamiento del circuito más a fondo.

Page 2: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

2 Práctica 4

− También se puede simular sólo una parte del circuito. Por ejemplo, se podría haber

simulado el componente Bina7Seg sin necesidad de haber hecho el esquema superior

(Pract3 ). Esto permite ir probando cada bloque jerárquico del circuito conforme se va

construyendo, con lo que la depuración es mucho más fácil al tener que centrarse cada vez

sólo en una pequeña parte del circuito, en lugar de enfrentarse al circuito completo.

− Permite corregir errores en el diseño y comprobar el funcionamiento del mismo sin

necesidad de disponer del hardware.

Sin embargo no son todo ventajas. Los principales inconvenientes de la simulación frente a la

implantación física son:

− No se dispone de los elementos de salida. Por ejemplo, en esta práctica, se tendrán que

analizar las siete señales que activan el display de siete segmentos y averiguar si el

número que aparecería en dicho display es el correcto,

− La especificación de la evolución temporal de las señales de entrada puede ser tediosa,

− En circuitos complejos, la simulación puede tardar demasiado tiempo en ejecutarse

(aunque este caso no se da en este libro).

La cuarta fase del desarrollo consiste en volcar el diseño realizado y simulado, en la FPGA.

Este volcado no es más que la escritura del conexionado interno de los LAB (Logic Array

Block) de la FPGA entre sí, y la configuración de las macroceldas vistas en la práctica

anterior.

Antes de comenzar a trabajar, no olvide crear el directorio de trabajo para la práctica de esta

sesión y copiar los archivos generados en la práctica del otro día.

DESARROLLO PRÁCTICO

ABRIR EL PROYECTO CREADO

En primer lugar, hay que copiar todos los archivos generados en la práctica anterior al

directorio de trabajo de esta práctica.

Después hay que arrancar Quartus II. Para ello hay que elegir la opción Quartus II 9.0 (32-Bit) que está en la ruta Botón de Inicio -> Programas -> Ingeniería ->

Altera -> Quartus II 9.0 . Si al arrancar aparece la ventana de la Figura 1, hay que

pulsar el botón No, pues en la práctica anterior se creó el proyecto que se va a utilizar en esta

práctica.

Figura 1. Ventana al arrancar Quartus II.

Page 3: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

Práctica 4

3

A continuación, hay que abrir el proyecto declarado en la práctica anterior (Pract3.qpf ).

Para ello, en el menú File , hay que escoger la opción Open Project… y seleccionar el

archivo Pract3.qpf de la carpeta de trabajo de hoy.

SIMULAR EL PROYECTO COMPILADO

Antes de implantar físicamente el circuito en la FPGA, se va a simular su funcionamiento con

ayuda del entorno Quartus II.

ABRIR EL EDITOR DE FORMAS DE ONDA

Antes de simular el circuito es necesario definir la variación temporal de las señales de

entrada del circuito, es decir, los valores lógicos que supuestamente van a tener las entradas

del circuito en función del tiempo, y especificar qué señales se desean visualizar. Para ello, el

programa Quartus II, integra un editor de formas de onda conocido como Waveform Editor .

Para crear un archivo de simulación hay que abrir, en primer lugar, una ventana del editor de

formas de onda. Para ello hay que elegir la opción New… del menú File y en la ventana que

aparece (ver Figura 2) hay que seleccionar Vector Waveform File .

Figura 2. Apertura del archivo de formas de onda.

Page 4: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

4 Práctica 4

VECTORES DE PRUEBA

Una vez que se tiene abierto el editor de formas de onda (véase la Figura 3), lo primero que se

tiene que hacer es guardar dicho editor con el nombre Pract3.vwf , para que el editor

reconozca las señales de entrada y salida del proyecto. Para ello se escoge la opción Save As… del menú File (véase la Figura 4). Asegúrese de que la opción Add file to current project , que está en la parte inferior de la ventana, esté activada, para no tener

problemas más adelante.

Figura 3. Archivo de formas de onda recién abierto.

Figura 4. Guardado del archivo de formas de onda.

A continuación hay que insertar los terminales de entrada y los de salida que se desean

visualizar en la simulación, que para esta práctica son las entradas de la D3 a la D0 y las

salidas de la ‘a’ a la ‘g’. Para ello hay que hacer clic con el botón derecho del ratón en la

columna Name de la ventana del editor, para desplegar el menú pop-up, y seleccionar

Insert Node or Bus… dentro de la opción Insert (véase la Figura 5).

Page 5: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

Práctica 4

5

Figura 5. Menú pop-up para insertar señales.

En la ventana llamada Insert Node or Bus (Figura 6) se pueden introducir los nombres

de las señales de entrada o salida manualmente, escribiendo el nombre de la señal, el tipo,

etc.., pero en la práctica se va a hacer con el buscador de nodos (Node Finder… ), pulsando

en el botón con dicho nombre, que es más cómodo y rápido.

Figura 6. Cuadro para insertar terminales manualmente.

En la ventana que aparece (Figura 7) primero hay que decir al programa que muestre todas las

variables. Esto se hace eligiendo Pins:all en el cuadro Filter , y después pulsando el

botón List , para que se genere un listado de todas las señales accesibles del diseño.

Page 6: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

6 Práctica 4

Figura 7. Ventana para seleccionar los terminales a visualizar.

A continuación, hay que seleccionar con el ratón, en la lista de la izquierda, las señales del D0

al D3 y pulsar el botón para que las señales seleccionadas pasen a la lista de la derecha

(como se muestra en la Figura 7) y, posteriormente, se visualicen en el editor de formas de

onda. Repetir la operación con los nodos del ‘a’ al ‘g’, para poder ver la evolución de las

salidas. Por último pulsar el botón OK para volver a la ventana de la Figura 6, y volver a

pulsar OK .

En este caso, como queremos simular todas las señales del circuito, se puede hacer lo anterior

de una vez pulsando directamente sobre el botón después de mostrar las señales en la lista

de la izquierda.

AGRUPAR SEÑALES EN EL EDITOR DE FORMAS DE ONDAS

En muchas ocasiones varias señales componen un bus de forma que los valores de estas

señales, convenientemente ordenadas, representan un número binario. En estas ocasiones es

muy cómodo formar un grupo de señales con todas ellas, para que tanto la visualización como

la modificación de las señales se realice de forma numérica, pudiéndose elegir entre varias

bases (BIN , OCT, DEC y HEX) para su representación.

En esta práctica se pueden agrupar las señales de la D3 a la D0 y representar sus valores

mediante un número en base hexadecimal. Para ello primero hay que asegurarse de que las

señales están ordenadas, en la lista de la ventana, de la más significativa (arriba) a la menos

significativa (abajo). Si no es así, se pueden arrastrar una a una hasta su posición correcta.

Después hay que seleccionar con el ratón las cuatro señales, pulsar el botón derecho y

seleccionar Group de la opción Grouping del menú pop-up (véase la Figura 8).

Page 7: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

Práctica 4

7

Figura 8. Opción para agrupar señales.

Aparecerá, entonces, la ventana de la Figura 9, donde se puede introducir el nombre del grupo

y la base de representación de sus valores. Escriba Numero como nombre de grupo y

seleccione la representación hexadecimal, tal como se muestra en la figura.

Figura 9. Ventana para formar un grupo de señales.

SELECCIONAR EL TIEMPO FINAL DE LA SIMULACIÓN

Una vez definidas las señales a visualizar es necesario indicar el tiempo final de la simulación

del circuito, es decir, durante cuánto tiempo se quiere simular el funcionamiento del circuito.

Para ello, mientras está activa la ventana del editor de formas de onda,1 hay que seleccionar la

opción End Time… del menú Edit (véase la Figura 10), introducir el tiempo, que en esta

práctica va a ser de dos microsegundos (2 us ), y pulsar Ok.

1 Tenga presente que la barra de menús cambia según la ventana que esté activa en cada momento.

Page 8: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

8 Práctica 4

Figura 10. Ventana para indicar el tiempo final de simulación.

SELECCIONAR LA REJILLA DE SIMULACIÓN

El simulador sólo permite cambios de las señales de entrada en los bordes de la rejilla

predefinida. En esta práctica se va a hacer que el número de entrada cambie cada 100 ns, por

lo que habrá que seleccionar una rejilla con un espaciado de ese valor o múltiplo inferior (1, 2,

4, 5, 10, 20, 25 ó 50 ns). Para ello hay que elegir la opción Grid Size… del menú Edit

(véase la Figura 11), mientras está activa la ventana del editor de formas de onda, introducir el

valor de 100 ns y pulsar Ok.

Figura 11. Selección de la rejilla.

ASIGNAR VALORES A LAS ENTRADAS

Una vez definidos el tiempo final y la rejilla de simulación se está en condiciones de dar

valores a las entradas del circuito. En este caso interesa que el grupo formado por las entradas

D3 a D0 varíe desde 0h hasta Fh, para comprobar que el decodificador muestra en el display

el valor correcto PARA TODOS LOS VALORES POSIBLES DE LA ENTRADA.

Page 9: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

Práctica 4

9

Para ello hay que seleccionar el grupo Numero y pulsar sobre el botón de cuenta , que se

encuentra en la barra de botones de la izquierda. Aparecerá entonces la ventana de la Figura

12, que tiene dos pestañas: Counting y Timing . En la primera se puede seleccionar la

base en la que se quiere contar, el valor inicial de la cuenta, cuánto se incrementa, y si se

cuenta en código Gray o en Binario. En la pestaña Timing se puede indicar en qué momento

de la simulación comienza la cuenta, hasta cuándo dura y cada cuánto se incrementa.

Figura 12. Ventana para definir una cuenta en un grupo de señales. Pestaña Counting.

En esta práctica hay que seleccionar la base o Radix en Hexadecimal; como valor inicial el

cero (‘0’); el incremento de uno en uno (‘1’); y el tipo de cuenta en Binario, tal y como se

muestra en la Figura 12. Y en la pestaña Timing hay que indicar 100 ns en Count Every

(véase la Figura 13).

Figura 13. Ventana para definir una cuenta en un grupo de señales. Pestaña Timing.

Page 10: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

10 Práctica 4

VISUALIZACIÓN Y ZOOM

Para ver mejor la evolución de las señales se puede variar el nivel del zoom en el editor de

formas de onda con las opciones Zoom In y Zoom Out del menú View , o pulsando sobre

el icono , el cual con el botón izquierdo del ratón hace un Zoom In y con el derecho un

Zoom Out .

Antes de terminar hay que guardar en el disco todos los cambios realizados al archivo de

simulación, eligiendo la opción Save del menú File .

SIMULAR EL DISEÑO

Una vez definidos los valores de las entradas del circuito en función del tiempo de

simulación, se puede simular el comportamiento del circuito. Para ello hay que arrancar el

simulador eligiendo la opción Simulator Tool del menú Processing , con lo que

aparece la ventana de la Figura 14.

Figura 14. Ventana del Simulador.

Ahora hay que activar la opción Overwrite simulation input file with simulation results , tal y como se muestra en la figura anterior. Por último, hay que

pulsar el botón Start para ejecutar la simulación. Cuando termine, si todo ha ido

correctamente, avisa con un mensaje como el de la Figura 15. Si se produce algún error o

aviso (warning), lo indica en el mensaje anterior y lo detalla en la ventana de mensajes, de

forma similar a como se muestra en las Figuras 23 y 25 de la práctica 3.

Page 11: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

Práctica 4

11

Figura 15. Aviso de finalización de la simulación.

Para observar la evolución de las salidas del circuito hay que abrir la ventana de simulación.

Para ello hay que pulsar el botón Open de la ventana del Simulador, tras lo cual aparecerá

una ventana de aviso en la que hay que pulsar el botón Sí . A continuación se verá una

ventana similar a la de la Figura 16, donde se observa la evolución temporal de las salidas del

circuito en función de los valores de las entradas.

Figura 16. Simulación obtenida.

Como puede observar, cuando la entrada vale ‘0’, todos los segmentos están activados salvo

el ‘g’, que es el del centro, con lo que en el display aparecerá un ‘0’.2 Cuando la entrada vale

‘1’, sólo se activan los segmentos ‘b’ y ‘c ’, apareciendo por tanto un ‘1’ en el display.

Verifique que, para el resto de valores de la entrada, el circuito funciona correctamente. Si se

detecta algún error hay que corregir el esquema del circuito, guardar los cambios, compilar,

volver a simular y verificar que el funcionamiento es correcto.

CONFIGURAR LA FPGA CON EL CIRCUITO COMPILADO

Una vez que ha finalizado la simulación y que se ha comprobado que el circuito se comporta

perfectamente, se puede pasar a su implantación física en la FPGA.

En primer lugar es necesario conectar la tarjeta de desarrollo de lógica programable del

laboratorio al ordenador mediante el cable USB. Después hay que asegurarse de que el

interruptor RUN/PROG que hay a la izquierda de la tarjeta está en RUN (véase la Figura 17).

2 Tenga en cuenta el alumno que los displays de la tarjeta son activos a nivel bajo, por lo que, un segmento a ‘0’

hará que el segmento se encienda y a ‘1’ hará que se apague.

Page 12: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

12 Práctica 4

Por último, hay que encender la tarjeta pulsando el interruptor rojo que hay en la parte

superior izquierda (véase la Figura 17).

Figura 17. Tarjeta de lógica programable del laboratorio.

A continuación hay que arrancar el Programador de Quartus, que se encuentra en la opción

Programmer del menú Tools , con lo que aparecerá la ventana de la Figura 18.

Figura 18. Ventana del programador.

Page 13: PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA ... · IMPLANTACIÓN FÍSICA CON QUARTUS II V. 9.0 ... la modificación de las señales se realice de forma numérica, pudiéndose

Práctica 4

13

Antes de continuar hay que verificar que el programa ha reconocido el hardware de

programación. Para ello hay que mirar si en la parte superior izquierda de la ventana del

programador pone USB-Blaster [USB-0] o si pone otra cosa distinta, como No Hardware (tal y como se muestra en la figura anterior). En este último caso hay que

configurar el hardware correcto, y para ello hay que pulsar en el botón Hardware Setup… ,

con lo que aparecerá la ventana de la Figura 19. A continuación hay que hacer doble clic en

USB-Blaster de la lista Availabe Hardware items y comprobar que en el campo

Currently selected hardware aparece USB-Blaster [USB-0] . Una vez hecho

esto hay que pulsar el botón Close .

Figura 19. Ventana de configuración del hardware.

Por último, hay que seleccionar la casilla de la columna Program/Configure , tal y como

se muestra en la Figura 18), y pulsar el botón Start para que se descargue el circuito

diseñado en la FPGA. Si todo ha ido bien, en la ventana de mensajes se debe ver algo como lo

mostrado en la Figura 20. Si ha habido algún error, lo muestra en la misma ventana.

Figura 20. Mensajes tras la programación.

Una vez configurado el circuito en la FPGA hay que probar TODAS las combinaciones

posibles de las entradas para verificar si su funcionamiento es correcto. Si se detecta algún

error hay que corregir el esquema capturado en la práctica anterior, guardar los cambios

realizados, compilar, simular y volver a volcar a la placa, comprobando el correcto

funcionamiento en cada paso del proceso.

Una vez que el funcionamiento del circuito es correcto en todos los pasos, muestre el

resultado al profesor.