Vous êtes sur la page 1sur 18

UNIVERSIDAD RICARDO PALMA

ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES
LABORATORIO DEL QUARTUS II AL
MODELSIM ALTERA
Objetivo:

Manejar y diseñar circuitos digitales esquemáticos y textuales en QUARTUS II y usar


ModelSim

Logro:

Al finalizar este laboratorio el estudiante estará en capacidad de usar El Quartus II


como herramienta CAD para crear proyectos y editar de circuitos lógicos simples en
esquemáticos y códigos VHDL, luego compilarlos y simularlos para comprobar su
correcto funcionamiento.

Introducción:

El Quartus II de Altera agrupa un conjunto de herramientas para realizar el diseño de


sistemas digitales sobre dispositivos FPGA y CPLD de Altera.
El Quartus II permite el ingreso de diversas formas de diseño, síntesis y simulación
lógica, conexionado, análisis temporal y gestión de la potencia de los diseños y la
programación de sus dispositivos integrados FPGA y CPLD.
Se le recomienda consultar en el URL www.altera.com para conocer más sobre esta
herramienta, dispositivos y recursos de Altera. En esa web pueden bajar la última
versión de este CAD, entre otros recursos más, de forma gratuita, con algunas
pequeñas limitaciones pero que para nuestro caso no serán críticas, pero deberán
inscribirse previamente

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

CREANDO UN PROYECTO EN QUARTUS II


Una vez que inicie la edición web del Quartus II. Primero debe crear un nuevo
proyecto seleccionando al asistente de proyecto de la pantalla de bienvenida:

1. En la página de introducción, haga clic en siguiente.


2. Empiece creando un nuevo nombre de directorio y proyecto, tal como se
muestra en la figura 1. Guárdelo en un lugar que se pueda acceder
fácilmente (por ejemplo, D:/Curso/lab_logica). En nombre de proyecto
ponga lab_logica.

Figura 1

3. Haga clic en siguiente. Le saldrá una ventana, ver fig 2, que le dice que
el directorio no existe y si lo quiere crear, acepte.

Figura 2

4. En la siguiente página, normalmente añadiría archivos de diseño para su


proyecto, si este es su primer laboratorio, no tiene nada para importar,
tan sólo haga clic en siguiente.

5. En el paso de configuración de la familia y del dispositivo, seleccione el


dispositivo que va a usar en esta asignatura, Family: Cyclone II, en la
sub ventana Target device marcar Specific device selected in
‘Available devices’ list en Available devices: seleccionar el
dispositivo EP2C35F672C6, usando la barra de desplazamiento vertical,
que está a la derecha, según se muestra en la figura 3, luego haga clic
en siguiente.

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

Figura 3. Selección de la familia y del dispositivo a usar en el proyecto

5. En la ventana 4 de 5, EDA Tool Settings (opciones de la herramienta


de EDA), seleccione en la columna Tool Name a la altura de Simulation
por medio del menú desplegable ModelSim-Altera, tal como aparece en
la figura 4:

Figura 4 seleccionando la herramienta EDA de simulación a usar en el proyecto

Le debe quedar como se muestra en la figura 5 donde se aprecia la página [4


de 5] de configuración de la herramienta EDA y haga clic en siguiente

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

Figura 5 configurando el lenguaje HDL a usar en ModelSim-Atera

6. En la página [5 de 5] de resumen (Summary), de configuración de la


herramienta EDA, que se muestra en la figura 6, haga clic en el botón
Finish.

Figura 6 resumen de la configuración

A continuación en la figura 7, se le muestra el circuito “lab_logica” que se trabajará a


continuación, solo en el código VHDL, usando la descripción funcional mediante
operadores lógicos:

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

--*************************************
-- diseñador: Gustavo Roselló
-- Entidad: Universidad Ricardo Palma
-- Facultad: Ingeniería, Escuela de Electrónica
--Descripcion: Implementación de un circuito simple en VHDL,
-- Nombre del archivo: lab_logica.vhd
--************************************************
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity lab_logica is
port ( x1,x2,x3: in std_logic;
F: out std_logic );
end lab_logica;

architecture func of lab_logica is


begin

F<=(x1 and x2) or ((not x2) and x3);

End func;
--*************************************************
Figura7 código VHDL del circuito lablogica

Copie el archivo VHDL en quartus, guardelo y compilelo.debe quedarle


coloreado como en la figura 8:

Figura 8

Las líneas verdes, son comentarios, las palabras azules son palabras
reservadas para el compilador, y las palabras rojas son las funciones que
usamos.

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

COMPILACIÓN DEL DISEÑO EN QUARTUS II


Una vez que se tienen todos los archivos de diseño, usted está listo para
compilarlos:

1. En el menú principal, seleccione: Processing  Start Compilation


(procesamiento  inicie la compilación). Tal como se muestra en la
figura 9

Figura 9

2. La ventana de mensaje que se presenta en la figura 10 mostrará el


estado de la compilación, y también se mostrará una ventana de informe
de compilación. Si el diseño se compila con éxito, puede cerrar el
informe.

Figura 10

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

CONFIGURACIÓN DEL CAMINO PARA LA


EJECUCIÓN DEL SIMULADOR EDA
Para ejecutar un simulador EDA, que en el caso de este tutorial es el
Modelsim-Altera, de forma automática desde el software Quartus II, es
mediante la función NativeLink, se debe especificar la ruta a la herramienta de
simulación realizando los siguientes pasos:

1. En el menú Tools (Herramientas), haga clic en Options (opciones). Le


aparecerá la ventana de diálogo Options (Opciones) que se muestra en
la figura 11.

Figura 11

2. En la lista, Category (categoría), bajo la categoría General, seleccione


EDA Tool Options (Opciones de herramientas EDA) tras lo cual
aparecerá la siguiente figura 12.

Figura 12

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES
3. En la ventana de opciones En la entrada del Modelsim-Altera, la
ubicación del ejecutable debe ser algo como la siguiente expresión:
"c:\altera\12.0\modelsim_ase\win32aloem", si no aparece entonces con
hacer clic en el botón […] de buscar carpeta, le aparecerá la ventana
que se muestra en la figura 13, ubique el ejecutable de Modelsim-Altera

Figura 13

4. Paso a paso vaya al directorio que contiene el ejecutable del simulador


Modelsim-Altera. recuerde "c:\altera\12.0\modelsim_ase\win32aloem".
Lo vera como se muestra en la figura 14

figura 14

5. Haga clic en Aceptar.

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

QUE ES UN BANCO DE PRUEBA


O TEST BENCH

Figura 15

Los fabricantes de FPGA han modificado su EDA para dejar de producir las
formas de onda directamente como modo de prueba del diseño esquemático,
pasando a realizar la simulación a partir de la versión HDL desde lo que se
llama tesbench.

Para generar un testbench es necesario:


 conocer el Seteo de escala de tiempo
 darle un nombre de la entidad del testbench
 declarar los cables y registros
 instanciar el testbench a lo mas alto de la jerarquía
 crear patrones de señal de entrada
 crear un código de verificacion

El VHDL permite mayor nivel de abstracción en la simulación, que con la


síntesis. Es posible por lo tanto modelar el comportamiento de dispositivos sin
que ellos sean luego sintetizados. Por ejemplo se puede simular un procesador
especializado, donde se puede describir el comportamiento de un dispositivo
especial, aunque ésta no sea luego físicamente sintetizado.

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES
Con el VHDL, no sólo es posible modelar el hardware o el diseño del
sistema digital de interés, sino también un banco de pruebas para aplicar el
estímulo para el diseño y para analizar los resultados o comparar los resultados
de dos simulaciones del modelo. En efecto, VHDL puede utilizarse como un
lenguaje de definición de estímulo, y no solo como un lenguaje de Descripción
de hardware, como se le ha visto antes.

Al ser VHDL un lenguaje portable es posible trabajar con simuladores de


distintas empresas. Así al usar el VHDL, para modelar un banco de prueba se
tiene la ventaja que ese banco de prueba es portable entre las diferentes
herramientas VHDL de los diferentes compañías que los venden.

Un banco de pruebas tiene una entidad sin puertos, una caja sin señales de
conexión exterior, es decir está vacía, esto es porque el banco de prueba
mismo no tiene entradas ni salidas. Su estructura contiene un componente que
corresponde al circuito que se desea simular. Así mismo contiene la alteración
de todas las señales de entrada, que llamaremos estímulos o vectores de
prueba, del componente, para poder abarcar un mayor número de casos de
prueba. Los vectores de prueba se generan y se aplican al dispositivo bajo
prueba en el Banco de pruebas. Tenga en cuenta que es ilegal tener un cuerpo
de arquitectura sin una declaración de la entidad.
El test-bench es un tipo de descripción entre la estructural y la comportamental.
Se utiliza para comprobar el correcto funcionamiento de los modelos mediante
un programa independiente de la plataforma de compilación-simulación.
La arquitectura cuenta con una instancia del modelo bajo test y un proceso que
le inyecta señales. Las señales de entrada adoptarán los valores que se
requiera en el instante de tiempo preciso para comprobar el correcto
funcionamiento del modelo.

Componentes

Se necesita realizar una declaración de componente, para enlazar a la entidad


XXX en el Banco de pruebas. Lo cual permite realizar una descripción
estructural en VHDL, así el compilador VHDL puede comprobar la consistencia
de la unidad de diseño que utiliza el componente antes de que la entidad
correspondiente de diseño se haya escrito. Para que el simulador VHDL pueda
enlazar a la entidad de diseño XXX con el componente XXX, los nombres y
tipos de los puertos deben coincidir entre la entidad y el componente.

Cuando se simula un test-bench se obtiene un cronograma de respuesta a las


señales de entrada que previamente programamos en el proceso.

Proceso Entidad bajo


test

Figura 16. Esquema de test-bench.

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

GENERANDO EL BANCO DE PRUEBAS

Pero para simular el archivo aun es necesario crear otro archivo, se le llama test bench
o banco de prueba, afortunadamente el quartus lo genera automáticamente, para ello
del menú desplegable seleccione:
PROCESSING START  START TESTBENCH TEMPLATE WRITER.

Tal como se muestra en la figura 17

Figura 17

Luego de crearlo el archivo, este tendrá el mismo nombre pero con otra extensión de
archivo, ábralo con open file y cambie el tipo de archivo por el de test bench output
files, tal como se muestra en la figura 18.

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

Figura 18

El archivo debe ser como el que se muestra en la figura 19, observe que la entidad es
easy_vhd_tst , contiene las declaraciones de señales, el componente y el mapeo
después crea dos procesos init y always, son procesos que inician el circuito y otro
que siempre se ejecuta. No es necesario mantenerlos y puede si quiere solo tener un
solo proceso.

Figura 19

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

Guarde el archivo con el mismo nombre borrando vhd_tst reemplazandolo con _tb y
con extension .VHD. Tal como se muestra en la ventana de la figura 20. No se olvide
que es importante que reemplace dentro del archivo vhd_tst con _tb, sino no va
funcionar su simulación.

Figura 20

Agregarle las siguientes expresiones en uno de los process y elimine el otro, para
luego poder usarlo como patrón de estímulos de las señales, para ver luego las formas
de ondas directamente.

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES
GENERANDO LOS ESTÍMULOS PARA EL
BANCO DE PRUEBA
Para generar la señal de reloj por un tiempo dado:

--genero la señal de reloj a una frecuencia de 5MHz o un periodo de 200ns


-- "patron de clock" : dutycycle = 50 %
-- Start Time = 0 ns, End Time = 1 us, Period = 200 ns
Process
Begin
clk <= '0' ; -- valor de inicio de la señal
wait for 100 ns ; --duracion de la señal

for Z in 1 to 4 loop --declaro un evento ciclico por equivalente al tiempo de simulación de 800ns
clk <= '1' ;
wait for 100 ns ; -- tiempo que el 1 esta activo
clk <= '0' ;
wait for 100 ns ; -- tiempo que el cero esta activo
end loop; -- hasta los 900 ns, repite patron del loop.

clk <= '1' ; wait for 100 ns ; -- valor final de la señal


wait; -- hasta que se complete los 1000ns ó 1us
End Process;

Si voy a declarar una señal de un bitio como un patrón constante.

-- "Constant Pattern"
-- Start Time = 0 ns, End Time = 1 us, Period = 0 ns
Process
Begin
mm <= '1' ;
wait for 1 us ;
-- dumped values till 1 us
wait;
End Process;

Si voy a declarar un vector como un patrón constante durante ciertos instantes de


tiempo:

-- "Constant Pattern"
-- Start Time = 0 ns, End Time = 1 us, Period = 0 ns
Process
Begin
pc_in <= "00000000000000000001000100010001" ;--00001111
wait for 320 ns ;
pc_in <= "11111111111111111110111011101110" ;--FFFFEEEE
wait for 192 ns ;
pc_in <= "00000000000000000001000100010001" ;--00001111
wait for 488 ns ;
-- dumped values till 1 us
wait;
End Process;

Para el caso que nos interesa declararemos las señales X1; X2; X3 como reloj pero
cada una del doble de periodo que el anterior.

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES
Una vez hecho esto del menú desplegable seleccione PROCESS START
START ANALISYS AND ELABORATE, tal como se muestra en la figura 21.

Figura 21

Luego llame al ModelSim seleccionando en el menu desplegable TOOLRUN


SIMULATION TOOL RTL SIMULATIONtal como se muestra en la figura 22.

Figura 22

Le debe llamar automaticamente al modelsim y aparecer las señales de simulacion en


forma de ondas de tiempo como se desea.

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

DESDE UN CIRCUITO ESQUEMÁTICO A


MODELSIM
Comience un nuevo proyecto con el nombre de su elección y realice el circuito
esquemático mostrado en la siguiente figura 23

Figura 23

Una vez compilado, pasamos al siguiente paso, que es obligatorio.

GENERANDO EL ARCHIVO VHDL


Empezado el diseño con el esquemático de la figura anterior. Para simularlo en
MODELSIM requerimos tener un archivo en VHDL y no esquemático por ello se
le debe convertir en VHDL, una vez compilado el diseño. Seleccione en el
menú desplegable FILE CRÉATE /UPDATE CRÉATE HDL DESIGN FILE
FROM CURRENT FILE, tal como se muestra en la figura 24

Figura 24

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

Le aparecerá la siguiente ventana donde debe marcar el lenguaje HDL de diseño a


usar según se muestra en la figura 25

Figura 25

Luego de crearlo el archivo, este tendrá el mismo nombre, (a la hora de compilarlo


solo uno de ellos debe estar en el file de proyector), ábralo con open file tal como se
muestra en la figura 26

Figura 26

Debe salirle el texto como el que se muestra en la figura 27

Dipl., Ing. Gustavo Roselló


UNIVERSIDAD RICARDO PALMA
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES

Figura 27

Observe que es un archivo tipo estructural, como el bloque es uno solo, este es un
solo componente, antes de describir la arquitectura, se define el componente a
instanciar, luego en la arquitectura se mapea al componente de manera explícita y se
cierra el archivo.

Conviértalo en el archivo principal y compilelo

Luego cree un test bench a partir de él, para ello retome los pasos desde la página 10
hasta la página 15 y realice la simulación en el Modelsim y muestreselo al docente.

Dipl., Ing. Gustavo Roselló

Vous aimerez peut-être aussi