Uso del simulador Modelsim

Anuncio
Introducción al laboratorio:
Uso del simulador Modelsim
Diseño y Simulación de Circuitos Electrónicos por Asistido por Computador
Ingeniería Técnica Industrial Electrónica
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
Modelsim es un software que administra un entorno que permite editar, compilar,
simular y depurar diseños de sistemas digitales
descritos en VHDL, Verilog y
SystemC, aunque para la asignatura DSEAC solo se utilizará con VHDL. La siguiente
figura representa el flujo de diseño con Modelsim:
Crear una librería de trabajo
Crear un proyecto
Añadir archivos al proyecto
Compilar diseño
Ejecutar el simulador
Depurar resultados
Existen tres modos de operación:
- Mediante procesos por lotes.
- Línea de comandos (se trata de un entorno interactivo en modo texto, accesible
desde el ‘prompt’ del sistema operativo con el comando vsim -c).
- Ejecución basada en GUI (Graphic User Interface). Es el modo por defecto y el
más habitual pues utiliza una interface amigable con el usuario. Es interactiva,
maneja menús, ventanas, botones y líneas de comando (asumiremos que se
conoce el manejo del sistema operativo Windows XP).
Podemos acceder a Modelsim desde Inicio> Programas> Modelsim XE III 6.3c>
Modelsim o ejecutando C:\Modeltech_xe_starter\win32xoem\modelsim.exe. Si se
va a utilizar frecuentemente es interesante crear un Acceso Directo en el escritorio.
2
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
La pantalla inicial se muestra en la siguiente figura:
Además de los elementos básicos de una ventana del sistema operativo Windows
(menú, barra de herramientas y barra de estado), se distinguen dos zonas, una
llamada Workspace (espacio de trabajo) en la que a través de unas pestañas
tendremos acceso a diferentes bloques relacionados con un diseño: Project, Structure,
Library, Sim, Files y Memories. La segunda zona (Transcript Session) se utiliza para
dar órdenes de compilación, simulación, etc. en modo texto (aunque la mayoría de
estos comandos se pueden ejecutar también desde el menú y barra de herramientas)
y para mostrar los mensajes que nos proporciona el programa, como respuesta a
nuestras acciones: resultados de una compilación, mensajes de error, etc.
En primer lugar crearemos un proyecto, aunque no es necesario para realizar
simulaciones, simplifica y automatiza el proceso de interacción con Modelsim. Un
proyecto es una colección de archivos VHDL (o referencia a ellos), ficheros del tipo
‘README’ o con documentación relativa al diseño, librerías locales, referencias a
librerías globales, configuraciones de simulación, etc. Los proyectos se albergan en un
directorio raíz, en el que se encuentra un archivo con extensión mpf donde se
almacena información relativa al estado de la sesión, opciones, orden de compilación,
etc. Incluye también otro directorio para la biblioteca de diseño local llamada
generalmente work y que posee unos atributos especiales. No es necesario declararla
3
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
explícitamente (library work) y es considerada por el compilador como destino por
defecto de las unidades de diseño.
Una biblioteca de diseño es un directorio donde se almacenan las unidades de diseño
compiladas: entidades, arquitecturas, paquetes y configuraciones. Concretamente la
información almacenada para cada unidad de diseño es su código ejecutable o
relocalizable e información sobre dependencias o depuración.
Además de la biblioteca local de trabajo a la que hemos hecho referencia
anteriormente, existen bibliotecas de recursos. Estas se pueden utilizar desde las
unidades VHDL que se están compilando (library/use), en ellas podremos
encontrar declaraciones de tipos, constantes, funciones o unidades de diseño
(componentes) de otros proyectos o proporcionadas por fabricantes, que podemos
reutilizar.
Puesto que el objetivo de esta primera práctica es sobre todo conocer el entorno de
Modelsim, se ha seleccionado un circuito combinacional muy sencillo para introducir
las posibilidades de simulación-verificación de un circuito digital. En la siguiente figura
se presenta el circuito a modelar y simular:
Al crear un proyecto Modelsim automáticamente crea una
librería de trabajo asignándole el nombre work salvo que
se indique lo contrario. Podemos crear un diseño con el
nombre primero en el directorio c:\fpga\tutorial, A través
de File>New>Project
Tras pulsar OK, desde la ventana que se muestra a la izquierda
indicaremos el tipo de acción a realizar.
4
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
Cretate New File: añade un fichero nuevo al proyecto.
El tipo de fichero puede ser de texto, tcl, verilog,
SystemC o VHDL, etc.
Add Existing File: incorpora un fichero que está
creado, se puede trabajar con una copia o haciendo
referencia al mismo.
Create Simulation: con esta opción podremos indicar ficheros fuente y opciones de
simulación.
Create New Folder: si organizaremos los archivos del proyecto en diversas carpetas.
Desde Create New File, introduciremos mediante el editor tres ficheros VHDL:
puertas.vhd, circuito.vhd y testbench.vhd. En el primer archivo especificaremos las
entidades-arquitecturas de sendas puertas nand, or y xor de dos entradas, con un
tiempo de propagación seleccionable a través de un genérico. Combinacional.vhd
modelará el circuito anterior mediante una descripción estructural y otra funcional. Por
último en testbench.vhd escribiremos los vectores de test para todos los valores
posibles de las entradas, que nos permitirá la comprobación del funcionamiento del
circuito durante la simulación, en la que se comparará el resultado del modelo
estructural con el del modelo funcional.
Cada vez que se crea un archivo VHDL, aparece una línea con esa entrada en la
pestaña ‘Project’, de la zona Workspace en la ventana principal, que naturalmente no
tiene todavía ningún código. Al hacer doble-click sobre el aparecerá el editor. Este
reconoce las palabras reservadas del VHDL y las resalta mediante un color específico,
esta característica será muy útil a la hora de comprobar errores de transcripción. El
uso del editor es sencillo, con las funcionalidades típicas de un programa de este tipo
en Windows (teclas de edición, cortar, copiar, pegar, etc.), a las que hay que añadir
otras específicas orientadas a la compilación y simulación.
5
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
Cuando la descripción esté completa se grabará y se compilará, hay varias formas de
hacerlo:
-
desde el menú principal: opción Compile
-
con click-derecha en la ventana Workspace o
-
desde la barra de herramientas de la ventana principal y
Compilar
Compilar todo
de edición:
Click-derecha
En el menú desplegable Compile o desde del menú contextual se pueden encontrar
otras opciones: compilar todos los archivos del proyecto (Compile All), solo los
seleccionados (Compile Selected) o únicamente los que hayan sido modificados
(Compile Out of Date).
El
Orden de
compilación
6
Compilación correcta
Sin compilar
Compilación con errores
orden
de
compilación
es
importante, en primer lugar se
han de procesarse los archivos a
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
cuyas unidades se hará referencia en los diseños que se compilarán después. El
orden se establece a medida que se van añadiendo archivos al proyecto, aunque este
se pude cambiar mediante la opción Compile Order. Se pueden obtener detalles de la
compilación mediante Compile Report y Compile Summary. Las opciones de
compilación se pueden indicar en Compile Propierties.
El resultado de la compilación se muestra en la ventana de Tanscript, si se producen
errores o avisos, además se indicará la línea del código fuente implicada y la posible
causa. Con doble-click abriremos el editor en el que la línea de código correspondiente
estará resaltada (desde el menú Source>More>Clear Highlights, con la ventana de
edición el texto seleccionada, volverá a su aspecto normal), cuando solventemos el
error, antes de volver a compilar debemos salvar.
La figura superior muestra el resultado de la opción Compile All, en la que la que solo
se produce un error en puertas.vhd, debido a que falta un ‘;’ al final de la línea 9.
Aunque hemos utilizado el Interface Gráfico de Usuario (GUI), en la ventana Transcript
podemos observar la orden en línea de comandos equivalente:
vcom -work work -2002 -explicit C:/fpga/tutorial/puertas.vhd
7
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
Cuando no exista ningún error de compilación estaremos en disposición de simular el
diseño: Simulate>Star Simulation…:
Tendremos que indicar entonces
en la ventana de simulación,
que entidad-arquitectura (en la
figura se muestran las que
actualmente incluye la biblioteca
work)
es
verificar.
la
que
queremos
También
podremos
indicar la resolución del tiempo
de simulación.
Desde View>Wave activaremos la ventana donde podremos mostrar los resultados de
la simulación para las señales seleccionadas. Podremos elegir las señales a simular
desde la pestaña Sim de la ventana Workspace, mediante la opción Add>Add to
Wave del menú contextual correspondiente a cada señal o grupo de señales:
8
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
Para obtener mayor claridad en la simulación, se pueden arrastrar las señales a la
posición deseada dentro del panel izquierdo de la ventana Wave y agruparlas
mediante ‘divisores’ tal y como muestra la siguiente figura
La Simulación se iniciará desde el menú Simulate o su correspondiente acceso en las
barras de herramientas:
9
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
Para analizar los resultados con precisión se pueden utilizar cursores, situarse en
eventos de las señales
y realizar ‘zooms’
sobre la ventana Wave.
10
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
ANEXO
A continuación se lista un ejemplo de código para los archivos puertas.vhd,
combinacional.vhd y testbench.vhd:
11
DSEAC. Introducción al laboratorio: Uso del simulador Modelsim
12
Descargar