Practica3 SDI

download Practica3 SDI

of 17

Transcript of Practica3 SDI

  • 7/25/2019 Practica3 SDI

    1/17

    LaboratoriodesistemasDigitalesI LAB 3

    1

    Escuela Tcnica Superior de Ingeniera (ICAI)Departamento de Electrnica y Automtica

    Lab-3: INTRODUCCIN A LA SIMULACIN Y A LA IMPLANTACIN FSICA CONQUARTUS II

    OBJETIVOS

    En esta prctica, adems de utilizar la herramienta para disear hardware digital Quartus II, del

    fabricante Altera, se empezar a usar una herramienta de simulacin de circuitos y sistemas digitales,llamadaModelSim del fabricanteMentor Graphics.

    Al finalizar la prctica, el alumno debe ser capaz de:

    - Simular un circuito digital usando Quartus II y ModelSim.

    - Volcar y configurar el diseo en un dispositivo de lgica programable FPGA. Verificando su

    funcionamiento.

    MATERIAL

    - Ordenador personal con Quartus II y ModelSim.

    - Tarjeta de desarrollo de lgica programable.

    DURACIN1 sesin.

    TRABAJO PREVIO E INFORMACIN DE CONSULTA

    En esta sesin se harn dos tareas previas:

    - Leer elManual de Usuario de la Placa de Lgica Programable DE1para familiarizarse con la

    tarjeta de desarrollo de lgica programable del laboratorio.- Leer el enunciado de la prctica.

    - Llevar al laboratorio todos los ficheros del proyecto de la prctica anterior.

    TRABAJO POSTERIOR Y ENTREGA DE RESULTADOS

    Despus del desarrollo de la prctica se debe entregar un informe de resultados (vase gua de informe)y el trabajo desarrollado en el laboratorio en soporte informtico que contenga el proyecto completo y

    que incluye la simulacin de esta prctica.

  • 7/25/2019 Practica3 SDI

    2/17

    LaboratoriodesistemasDigitalesI LAB 3

    2

    INTRODUCCIN

    Aunque no se le vea utilidad a la fase de simulacin del circuito capturado en la prctica anterior, es

    muy importante simular los sistemas que se desarrollen.

    En este caso tan simple se podra descargar el diseo en la tarjeta del laboratorio para comprobar su

    funcionamiento. Sin embargo, la simulacin presenta varias ventajas:

    - Permite seguir fcilmente la evolucin temporal de todas las seales. Para conseguir ver elmismo nmero de seales en el circuito real necesitaramos un analizador lgico, que es ms

    caro, voluminoso y delicado.

    - Adems de las entradas y salidas del circuito se pueden analizar seales internas, lo que permite

    depurar el funcionamiento del circuito ms a fondo.

    -

    Tambin se puede simular slo una parte del circuito. Por ejemplo, se podra haber simulado elcomponente comparador sin necesidad de haber hecho el esquema superior (Pract2). Esto

    permite ir probando cada bloque jerrquico del circuito conforme se va construyendo, con lo que

    la depuracin es mucho ms fcil al tener que centrarse cada vez slo en una pequea parte delcircuito, en lugar de enfrentarse al circuito completo.

    - Permite corregir errores en el diseo y comprobar el funcionamiento del mismo sin necesidad de

    disponer del hardware.

    Sin embargo no son todo ventajas. Los principales inconvenientes de la simulacin frente a la

    implantacin fsica son:

    -

    No se dispone de los elementos de salida. En esta prctica no es muy importante. Pero s porejemplo, si quisiramos comprobar un circuito de procesamiento de audio, sera ms fcil

    verificar su salida, escuchando el sonido que viendo muestras en una pantalla.

    - La especificacin de la evolucin temporal de las seales de entrada puede ser tediosa,

    - En circuitos complejos, la simulacin puede tardar demasiado tiempo en ejecutarse (aunque este

    caso no se da en este curso).

    La cuarta fase del desarrollo consiste en volcar el diseo realizado y simulado, en la FPGA. Este

    volcado no es ms que la escritura del conexionado interno de las macroceldas de la FPGA entre s, y laconfiguracin de las mismas vistas en la prctica anterior.

    Antes de comenzar a trabajar, no olvide crear el directorio de trabajo para la prctica de esta sesin y

    copiar los archivos generados en la prctica del otro da.

    DESARROLLO PRCTICO

    En primer lugar, hay que copiar todos los archivos generados en la prctica anterior al directorio de

    trabajo de esta prctica.

    A continuacin, hay que arrancar Quartus II 10.1 que est en la ruta:

  • 7/25/2019 Practica3 SDI

    3/17

    LaboratoriodesistemasDigitalesI LAB 3

    3

    Botn de Inicio Programas Altera Quartus II 10.1 Web Edition.

    A continuacin, hay que abrir el proyecto declarado en la prctica anterior (Pract2.qpf).Para ello, en el

    men File, hay que escoger la opcin Open Project y seleccionar el archivo Pract2.qpf de lacarpeta de trabajo de hoy.

    SIMULAR EL PROYECTO COMPILADO

    Antes de implantar fsicamente el circuito en la FPGA, se va a simular su funcionamiento con ayuda del

    entorno Quartus IIyModelSim.

    GENERACIN DE FICHERO DE VECTORES DE PRUEBA

    Para simular cualquier sistema o circuito, es necesario generar el conjunto de patrones de las seales de

    entrada que permiten evaluar el funcionamiento de nuestro sistema digital lo ms completo posible. La

    generacin de este conjunto de patrones es conocido como vectores de prueba o banco de pruebas(testbench). El simuladorModelSimest preparado para proporcionar estos patrones de prueba a travs

    de un fichero VHDL. Este fichero de pruebas se genera en el QuartusIIdespus de haber compilado el

    diseo de nuestro circuito digital. Este fichero hay que completarlo aadiendo una descripcin de cmoqueremos que evolucionen en el tiempo las seales de entrada o de excitacin. A partir de este fichero,

    mi circuito es capaz de simular su comportamiento y verificar que la evolucin de las seales es

    correcta. Para ello, se introducen los vectores de prueba, es decir las seales de entrada y su

    temporizacin, que permitan comprobar el bloque sujeto a simulacin

    Para generar este fichero, vaya al men (vase Figura 1).

    Processing Start Start Test Bench Template Writer

    Figura 1. Generacin del fichero de vectores de prueba (testbench).

  • 7/25/2019 Practica3 SDI

    4/17

    LaboratoriodesistemasDigitalesI LAB 3

    4

    La plantilla de este fichero se crea en la carpeta de trabajo bajo el directorio

    simulation/modelsim/pract2.vht

    VECTORES DE PRUEBA

    El proceso siguiente a la generacin de este fichero de vectores de prueba es la edicin de los estmulos

    que nos permitan simular el circuito. Antes de esto vamos a ver las caractersticas de este fichero. Tieneel aspecto del texto que a continuacin se presenta en donde se pueden ver varios bloques:

    - Un bloque de libreras empleadas en la simulacin.

    - Un bloque de entidad con el nombre dado por defecto: ENTI TY pr act 2_vhd_t st .

    - Un bloque de arquitectura con las seales de entrada y salida de nuestro circuito a simular.

    - Los componentes a simular (pract2), al que se le asigna la instancia (i 1) y sus conexiones.

    - Finalmente los procesos (PROCESS) que contienen los vectores de prueba. Es esta seccin la que

    anotaremos cmo nuestras seales de entrada de mueven para simular todos los casos posibles

    que permitan comprobar nuestro circuito.

    Es importante obtener una combinacin lo ms completa posible de las seales de entrada para verificarque el circuito funciona correctamente bajo cualquier circunstancia.

  • 7/25/2019 Practica3 SDI

    5/17

    LaboratoriodesistemasDigitalesI LAB 3

    5

    - - ***************************************************************************- - Thi s f i l e cont ai ns a Vhdl t est bench t empl ate that i s f r eel y edi t abl e t o- - sui t user ' s needs . Comment s are pr ovi ded i n each sect i on t o hel p t he user- - f i l l out necessary deta i l s .

    - - ***************************************************************************- - Generated on "01/ 19/ 2011 18: 22: 28"

    - - Vhdl Test Bench t empl ate f or desi gn : pr act2- -- - Si mul ati on t ool : Model Si m- Al t era (VHDL)

    LI BRARY i eee;USE i eee. st d_l ogi c_1164. al l ;

    ENTI TY pr act 2_vhd_t st I SEND pr act2_vhd_t st ;

    ARCHI TECTURE pract 2_arch OF pr act 2_vhd_t st I S- - const ant s- - s i gnal sSI GNAL A0 : STD_LOGI C;

    SI GNAL A1 : STD_LOGI C;SI GNAL Ai gual B : STD_LOGI C;SI GNAL Amayor B : STD_LOGI C;SI GNAL Amenor B : STD_LOGI C;SI GNAL B0 : STD_LOGI C;SI GNAL B1 : STD_LOGI C;

    COMPONENT pr act 2PORT (A0 : I N STD_LOGI C;A1 : I N STD_LOGI C;Ai gual B : OUT STD_LOGI C;Amayor B : OUT STD_LOGI C;Amenor B : OUT STD_LOGI C;B0 : I N STD_LOGI C;B1 : I N STD_LOGI C) ;

    END COMPONENT;

    BEGI Ni 1 : pract2PORT MAP (

    - - l i st connect i ons between master port s and si gnal sA0 => A0,A1 => A1,Ai gual B => Ai gual B,Amayor B => Amayor B,Amenor B => Amenor B,B0 => B0,B1 => B1) ;

    i ni t : PROCESS- - var i abl e decl ar at i ons

    BEGI N- - code that execut es onl y once

    WAI T;END PROCESS i ni t ;

    al ways : PROCESS- - opt i onal sens i t i vi t y l i s t- - ( )- - var i abl e decl ar at i onsBEGI N

    - - code execut es f or every event on sensi t i vi t y l i stWAI T;

    END PROCESS al ways;END pract 2_arch;

  • 7/25/2019 Practica3 SDI

    6/17

    LaboratoriodesistemasDigitalesI LAB 3

    6

    Con este fichero estamos ya listos para generar el proceso de edicin de vectores de prueba y

    simulacin.

    EDITANDO EL FICHERO DE TEST

    Para que la simulacin tenga efecto, es necesario introducir los estmulos en el fichero de test

    (prac2.vht). Para ello vamos a editarlo desde el QuartusII.

    Fi l e Open cl i c en di r ectori o si mul at i on cl i c en model si m

    Elegir tipo de fichero:Test Bench Out put Fi l es ( *. vht *. vt )

    Seleccionar pr act 2. vht El fichero se abre en la ventana de edicin de QuartusII.Se puede editar entonces los estmulos y su

    forma de onda para simular el circuito digital. El fichero generado lo podis ver completo en el apartado

    anterior. Para esta primera simulacin, editaremos el fichero e introduciremos unos cuantos vectores deprueba para los valores de A y B, con el objeto de hacer todas las combinaciones posibles. Es decir, para

    comprobar el circuito, le diremos en forma textual que la seales A0, A1, B0 y B1, cambien en el

    tiempo de la forma en que se indica en el diagrama de la Figura 2.

    Figura 2. Grfico de los vectores de prueba para test bench

    Para ello, y como estamos editando el fichero pract2.vht, introducimos estos valores en la seccin

    PROCESSsiguiente. Cada 100 nanosegundos haremos que cambie de valor una de las seales de forma

    que se representen todas las combinaciones posibles y en consecuencia ver el valor de las salidas paratodas las posibles combinaciones a la entrada. Termine de introducir los vectores de prueba segn el

    diagrama y guarde el fichero con el mismo nombre.

  • 7/25/2019 Practica3 SDI

    7/17

    LaboratoriodesistemasDigitalesI LAB 3

    7

    al ways : PROCESS- - opt i onal sens i t i vi t y l i s t- - ( )- - var i abl e decl ar at i onsBEGI N

    - - code execut es f or every event on sensi t i vi t y l i stA0

  • 7/25/2019 Practica3 SDI

    8/17

    LaboratoriodesistemasDigitalesI LAB 3

    8

    Figura 3. Cuadro de dilogo para compilacin del testbench.

    Debe estar indicado en el recuadroTool name, la opcin ModeSi m- Al t era. Si ha hecho la generacin

    del proyecto como se ha indicado, estar correcto, sino abra el recuadro y ponga esta opcin. A

    continuacin haga clic en la opcin Compi l e t est benchy haga clic enTest Benches. Se nos abre

    otro cuadro de dialogo, que nos permite seleccionar el fichero de test que vamos a usar. Clic en New.Este ltimo paso nos abre la siguiente ventana Figura 4. Ha de rellenar los campos mostrados en lafigura, teniendo especial cuidado en poner los nombres del test bench y de la instancia (i1)

    correctamente.Test bench name: es el nombre de la entidad que aparece al principio del fichero.

    Ha de seleccionar Use t est bench t o per f om VHDL t i mi ng si mul at i on y en el recuadro

    Desi gn i nst ance name i n t est bench poner i1.

  • 7/25/2019 Practica3 SDI

    9/17

    LaboratoriodesistemasDigitalesI LAB 3

    9

    Figura 4. Cuadro de dilogo seleccionar el fichero de testbench

    Ponga el camino en donde se encuentra el fichero de test bench en la seccinTest bench f i l es. Para

    ello abra el botn y bajo el directorio si mul at i on/ model si m, seleccione el fichero. (pr act 2. vht ).

    A continuacin clic en Add. Esto hace que aparezca el fichero en la lista del recuadro inferior. Figura 5.

    Figura 5. Fichero y cuadro de configuracin de testbench

    Rellene el cuadro de la Figura anterior tal como se ha indicado. El parmetro Test bench name, en la

    primera lnea poniendo el nombre del fichero pr act 2_vhd_t st . Clic el recuadro Use t est bench t o

    per f om VHDL t i mi ng si mul at i ony ponga el nmero de la instancia (i1) en la lnea. El cuadro queda

  • 7/25/2019 Practica3 SDI

    10/17

    LaboratoriodesistemasDigitalesI LAB 3

    10

    rellene tal como la Figura. Para finalizar clic OK. Para volver a la ventana anterior con los parmetros

    del test y del fichero de simulacin se abre, Figura 6. Dar OK.

    Figura 6. Fichero y configuracin de testbench.

    Se termina la configuracin de la simulacin dando OK en el recuadro de Si mul at i on. Figura 7.

    Figura 7. Configuracin de simulador con el fichero de testbench

  • 7/25/2019 Practica3 SDI

    11/17

    LaboratoriodesistemasDigitalesI LAB 3

    11

    Habiendo terminado de editar y configurar, procedemos a invocar el simuladorModelSim. Introduzca en

    el men principal la opcinTool s Run EDA Si mul at i on Tool EDA Gate Level Si mul at i on

    (Figura 8). Aparece entonces la ventana de la derecha en la figura. Clic en Run.

    Figura 8. Invocando al simulador.

    Este proceso arranca el simulador ModelSimcon el fichero de testbenchy una serie de ventanas en el

    simulador, segn este configurado el men Vi ew (en el men principal). La vista clsica es como se

    refleja en la Figura 9. En esta figura se ven tres ventanas, la primera de ellas indica la librera quecomponentes que se simulan (arriba izquierda). Otra ms con objetos, que representan seales del

    circuito (abajo izquierda) y la de formas de onda (Wave) a la derecha de la imagen.

    Figura 9. Vista delModelsim, ventanas activas-

    La ventana ms importante que nos interesa comprobar es la ventana de forma de onda (Wave). En ella

    se reflejan las entradas y salidas del circuito simulado. Las entradas tienen el aspecto que se les ha dadoen el fichero de test bench. En la Figura 9, tambin puede verse un conjunto de barras con iconos

  • 7/25/2019 Practica3 SDI

    12/17

    LaboratoriodesistemasDigitalesI LAB 3

    12

    (Toolbar). Estas barras de iconos se quitan o ponen, seleccionando en el men principal Window

    Toolbars.

    SIMULANDO Y VISUALIZANDO SEALES

    Para lanzar una nueva simulacin, se selecciona desde el men principal en Si mul ate Start

    si mul at i on. Esta opcin abre una ventana para seleccionar el circuito y testbench que queremos

    simular. Sel ecci one gate_work pr act 2_vhd_t st . Clic OK. Lo que reinicia el simulador. Figura

    10.

    Figura 10. Arranque del simulador desdeModelSim.

    En este momento, se arranca el simulador con las ventanas y barras de herramientas seleccionadas. En laventana Wave vamos a aadir las seales que queremos simular. Para ello, seleccione de la ventana de

    objetos, las seales de entrada y salida y arrstrelas a la ventana Wave. O, haga clic con el botn derecho

    del ratn y seleccione la opcin AddTo waveSel ect ed si gnal s. Aparecen ahora las seales en la

    ventana Wave. Estamos ya listos para lanzar los vectores de simulacin, vaya a: Si mul at eRunAl l .

    Esta opcin lanza todos los vectores de test del fichero de testbench durante el tiempo que se ha

    especificado en el fichero. Figura 11.

  • 7/25/2019 Practica3 SDI

    13/17

    LaboratoriodesistemasDigitalesI LAB 3

    13

    Figura 11. Simulando desdeModelSim.

    La barra de herramientas de simulacin contiene estas mismas opciones, en los iconos siguientes:

    . En ste, se pueden observar a la izquierda del cuadro

    de 100 ps, la opcin Rest ar t , que permite reinicar la simulacin. A continuacin Run, que lanza la

    simulacin el tiempo indicado en el recuadro, a continuacin Cont i nueRun, Run- Al l y Br eak.

    Una vez completada la simulacin se ha de verificar si el circuito se comporta correctamente,

    comprobando que las salidas cumplen la tabla de verdad del anexo de la prctica.

    EDITANDO EL FICHERO DE ESTIMULOS Y COMPILANDO

    El proceso normal que sigue el simular un circuito, es un proceso iterativo de comprobacin y

    depuracin, por lo que es normal que se necesite cambiar, ampliar o modificar los estmulos a la

    simulacin, bien sea por cambios en el circuito a simular o por visualizar otras seales, etc. Para ello,

    podemos editar el fichero de estmulos desde elModelSim, yendo a Fi l e Open, abre un cuadro de

    dilogo, donde tenemos que seleccionar el tipo de fichero Ti poVHDL Fi l es. Aparece entonces

    pract2.vht. Seleccionamos este fichero. Aparece una nueva ventana con el fichero de textbenchpara sereditado. Se ejecutan los cambios o modificaciones, en este ejemplo, cambie el tiempo entre las

    transiciones de las seales, en lugar de 100ns. ponga 200 ns., guarde el fichero.

    Antes de volver a simular, es necesario recompilar el fichero antes editado. Se puede hacer, desde el

    editor del fichero, en la barra de herramientas con el icono de compilacin, o desde la ventana Library

    haciendo clic en el botn derecho del ratn lo que abre una ventana con la opcin Recompi l e. Ver

    Figura 12.

  • 7/25/2019 Practica3 SDI

    14/17

    LaboratoriodesistemasDigitalesI LAB 3

    14

    Figura 12. Recompliando un fichero de testbench

    Recompilado el fichero de test, se reinicia el simulador. Esto se puede hacer con el botn o

    haciendo clic en Si mul at eRunRest ar t . Estamos ya listos para volver a simular, haciendo clic en el

    botn Run o haciendo clic en Si mul at eRunRun- Al l . Proceda cuando termine a guardar las

    simulaciones de sus diseos.

    CONFIGURAR LA FPGA CON EL CIRCUITO COMPILADO

    Una vez que ha finalizado la simulacin y que se ha comprobado que el circuito se comporta

    perfectamente, se puede pasar a su implantacin fsica en la FPGA.

    En primer lugar es necesario conectar la tarjeta de desarrollo de lgica programable del laboratorio alordenador mediante el cable USB.Despus hay que asegurarse de que el interruptor RUN/PROGque

    hay a la izquierda de la tarjeta est en RUN(vase la Figura 17).

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

    (vase la Figura 13).

  • 7/25/2019 Practica3 SDI

    15/17

    LaboratoriodesistemasDigitalesI LAB 3

    15

    Figura 13. Tarjeta de lgica programable del laboratorio.

    A continuacin hay que arrancar la opcin Programmer del QuartusII. En el Men principal seleccionar

    Tool sPr ogrammer . Aparece entonces la ventana siguiente, Figura 14, que contiene la seleccin del

    fichero y el puerto por donde se programa.

  • 7/25/2019 Practica3 SDI

    16/17

    LaboratoriodesistemasDigitalesI LAB 3

    16

    Figura 14. Ventana de programacin del dispositivo.

    Antes de continuar hay que verificar que el programa ha reconocido el hardware de programacin. 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 botn

    Har dwar e Set up, con lo que aparecer la ventana de la Figura 15. A continuacin hay que hacer

    doble clic en USB-Blasterde la listaAvailabeHardware itemsy comprobar que en el campo Cur r ent l ysel ect edhardwar e aparece USB-Blaster [USB-0]. Una vez hecho esto hay que pulsar el botn Cl ose.

    Figura 15. Ventana de configuracin del dispositivo.

    Por ltimo, hay que seleccionar la casilla de la columna Progr am/ Conf i gur e, tal y como se muestra en

    la Figura 14), y pulsar el botn Start para que se descargue el circuito diseado en la FPGA. Es buenmomento tambin para verificar que el dispositivo seleccionado es el correcto, debajo de la opcin

  • 7/25/2019 Practica3 SDI

    17/17

    LaboratoriodesistemasDigitalesI LAB 3

    17

    Device. Si todo ha ido bien, el circuito est descargado y puede comenzar a evaluarlo. Si ha habido

    algn error, lo muestra en la misma ventana de mensajes del QuartusII.

    Una vez configurado el circuito en la FPGA hay que probar TODAS las combinaciones posibles de lasentradas para verificar si su funcionamiento es correcto. Si se detecta algn error hay que corregir el

    esquema capturado en la prctica 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 alprofesor.