Sei sulla pagina 1di 35

Tutorial VHDL de Simulacin

y entrada HDL

1. Introduccin
El objetivo de este tutorial es servir de gua en el uso de la herramienta
de diseo VHDL ACTIVE 3.5

Estructura

En Active-HDL la estructura est implementada con base a una norma


(Fundacin de Microsoft Class) GUI de interfaz.

Las partes principales de Active-HDL son:

El Browser de diseo
El explorador de diseo
Editor de VHDL
Editor de mquinas de estado
Editor de forma de onda
Consola
Administrador de librera
Flujo de datos
Listado
Pila de llamadas
Procesos
Seales de observacin
Active-HDL 3.5 GUI

2. Comenzando ACTIVE-HDL
Para empezar a trabajar con el programa hay que ir, en Inicio de
Windows, al grupo de programas Start-Programs-Active-HDL PLUS y
hacer click en la etiqueta Active HDL.

Comienza la ejecucin de Active HDL, y en la pantalla se muestra:


Active-HDL Logo de Bienvenida

Al terminar el proceso de carga, aparece el siguiente cuadro de dilogo:

Ventana Getting Started

Para empezar un nuevo diseo, hay que seleccionar la opcin Create


new design y hacer click en OK.

Seguiremos el tutorial realizando un diseo ejemplo que ser un


contador.
Crear un nuevo diseo

Al seleccionar la creacin de un nuevo proyecto, aparece la


herramienta New Design Wizard, que permite, de forma sencilla,
comenzar un diseo con Active-HDL. Aqu puede darse el nombre del
proyecto (para este ejemplo puede ser Tutorial), decir en qu
subdirectorio se quiere almacenar y seleccionar la librera (por defecto
tendr el mismo nombre del diseo):

Ventana New Design Wizard

Especificar los contenidos del diseo

El siguiente cuadro de dilogo permite especificar los contenidos del


diseo que se crea. Es posible:

o Crear una nueva fuente de archivos


o Aadir ficheros existentes que pueden importarse a Active-
HDL
o Importar un diseo desde Active-CAD-VHDL netlists
generado por ALDEC´S
o Crear un diseo vaco, con lo que no se aadir al proyecto
ningn componente

Ventana New Design Wizard

De estas opciones seleccionamos Create new source files now. Tras


ello, hay que hacer click en el botn Next

Crear la estructura de archivos fuente

En el siguiente cuadro de dilogo se pueden especificar los componentes


que se incluirn en el diseo. Slo hay que hacer click sobre el
botn New y escribir el nombre de la entidad.
Ventana New Design Wizard - Entidad

La columna Source Type permite seleccionar una descripcin de texto


VHDL o una descripcin grfica dada por el editor de mquinas de
estados. Escribimos Counter enEntity Name y seleccionamos VHDL
como fuente. Tras ello, hay que seleccionar el nombre Counter, con lo
que quedar disponible el botn Ports, que seleccionaremos. Y ahora,
utilizando el Port Wizard de acceso habr que completar las
descripciones de las entradas y salidas del diseo, en este caso el
contador.

Ports Wizard

El Ports Wizard se utiliza para introducir los puertos de entrada y salida


del diseo. Para aadir un puerto slo hay que hacer click en el
botn New y escribir el nombre que se le quiere dar en Name. Puede
especificarse la direccin del puerto con los controles de direccin.
Tambin es posible aadir buses, basta con colocar el rango en Range.

Aadiremos los siguientes puertos:


o CLK: in puerto
o RESET: in puerto
o Q[3:0]: out puerto de bus, rango [3:0]

Despus de aadir cada puerto hay que hacer click en el botn de Type,
lo que permitir escoger el tipo de puerto.

Ventana Design Wizard - Ports

Escogeremos STD_LOGIC como opcin para puertos de 1 bit,


y STD_LOGIC_VECTOR para buses. Una vez introducidos todos los
puertos puede hacerse click en el botn Next para avanzar a la ltima
pgina de Design Wizard.

Aceptar las propiedades del diseo

El ltimo cuadro de dilogo de la ventana Design Wizard es un cuadro de


confirmacin. Se muestran en la ventana todas las propiedades del
diseo. Si resultan correctos, habr que hacer click en el botn Finish. Si
se quiere modificar algo, o las configuraciones son incorrectas, puede
volverse atrs utilizando el botn Back.
ltima ventana de Design Wizard

El Browser de Diseo

El Browser de diseo es una ventana que aparece a la izquierda y que


muestra los contenidos del diseo. Como resultado de todo lo hecho
hasta el momento, visualizar lo siguiente:

Ventana del browser de diseo


Como puede verse, el nombre del proyecto es Tutorial. El proyecto
contiene Counter.VHD como nico archivo, y maneja la librera con el
mismo nombre del proyecto.

Para compilar el archivo fuente (Counter.VHD) y poder utilizarlo, pueden


seguirse dos caminos. O bien elegir la opcin Compile dentro del
submen Design, o bien, una vez seleccionado Counter.VHD haciendo
click con el botn derecho del ratn, y en el men que aparece
seleccionando Compile. Esta ltima opcin se muestra en la siguiente
figura:

Compilando el fichero fuente

Despus de la compilacin, y si esta se ha realizado con xito, aparecer


el signo a la derecha del archivo, y aparecer tambin el signo que
permite la expansin de la estructura del proyecto:
Ventana Browser de Diseo despus del comando Compile

Haciendo click en puede expandirse la estructura:

Ventana Browser de Diseo con la estructura expandida

La ventana muestra una entidad -arquitectura.

Haciendo doble click en Counter.VHD puede llamarse al Editor de


VHDL.

Editor de VHDL

El editor de VHDL es un editor de textos con palabras clave de VHDL


que aparecen coloreadas. Active-HDL ofrece otra caracterstica til que
permite agrupar, contrayendo y expandiendo VHDL para mejorar la
legibilidad del cdigo.
Ventana del editor de VHDL

Como se apunt anteriormente, la forma de visualizar el cdigo VHDL del


diseo del contador realizado, es hacer doble click en Counter.VHD, en
la ventana Browser de diseo. El cdigo generado es una plantilla con
base a las configuraciones de puertos realizadas.

El Asistente de Lenguaje

El siguiente paso a realizar es definir la estructura del contador. Para ello


hay que seleccionar la opcin Language Assistant en el men Tools, o
directamente pulsar el icono sobre la barra de herramientas. Por
cualquiera de los dos caminos, aparecer la siguiente ventana:
Ventana de Language Assistant

Expandiendo la etiqueta de Tutorial (haciendo click en ) puede verse lo


siguiente:

Ventana de Language Assistant

Haciendo click en la etiqueta de Counter:


Ventana de Language Assistant

En la parte derecha de la ventana aparece una descripcin VHDL de un


contador BCD. Para aadir esta plantilla en el diseo del contador
realizado, hay que ejecutar los pasos siguientes:

1. Editar el cdigo VHDL del contador haciendo doble click


en Contador.VHD en la ventana Design Browser
2. Mirar el cdigo VHDL en la ventana de Editor y encontrar la
lnea con el siguiente texto:

-- << enter your statements here >>

3. Emplazar el cursor en la siguiente lnea


4. Seleccionar Counter en el rbol Language
Assistant haciendo click con el botn derecho del ratn.
5. Seleccionar Use en el submen que aparece.
6. La plantilla VHDL del contador BCD del Language
Assistant aparece instantneamente en la localizacin
donde se haba emplazado el cursor en el paso 3.
7. De esta forma se ha completado el diseo del contador, que
slo tena especificados los puertos de entrada y salida, con
la arquitectura propia, es decir, la especificacin de cmo
funciona el contador.

Para formatear el cdigo VHDL hay que hacer click en el icono y para
generar la estructura habr que hacer click en el icono . Con esto se
edita la unidad Contador.

Aadiendo libreras

El cdigo editado requiere algunos paquetes adicionales. Para aadirlos,


hay que situarse despus de la lnea

use IEEE.std_logic_1164.all;

y escribir la instruccin: use IEEE.std_logic_unsigned.all;

El resultado, tras todas estas operaciones, es:

Ventana de Editor con el cdigo de Contador

Comprobando la sintaxis

Para estar seguros de que los cambios introducidos en el diseo no


contienen error ser necesario compilar de nuevo el cdigo. Para ello hay
que ir a la ventana de Design Browser, seleccionar Counter.VHD y
hacer click en el botn derecho del ratn, como ya se explic con
anterioridad. En el submen que aparece habr que escoger la
opcin Compile:
El shortcut men en la ventana de Design Browser

Si el archivo fuente contiene un error (si por ejemplo nos equivocamos al


teclear la instruccin que aada una librera y escribimos use
IEEE.srd_logic_unsigned.all;), el signo aparece al lado del nombre del
fichero. Adems la lnea que contiene el error aparece subrayada en rojo
en la ventana de editor, y en la ventana Console, en la parte baja de la
pantalla, aparece tambin el error especificado en color rojo. Si se
posiciona el ratn sobre la lnea roja que subraya el error en la ventana
de editor, aparece el error especificado en una etiqueta:
Ventana de editor con errores indicados

Habr que corregir el error y recompilar de nuevo el archivo fuente. No


deberan entonces aparecer problemas y se ver el signo a la derecha
del archivo Counter.VHD en la ventana Design Browser.

Aadiendo Archivos al Diseo

Para aadir un archivo al diseo, hay que escoger la opcin New - VHDL
Source en el men File, o hacer click en la etiqueta Add New File en la
ventana Design Browser
Comando New - VHDL Source

Aparecer la ventana:

Ventana New Source Wizard


Hay que pulsar el botn Next> para continuar.

En la ventana que aparece, escribiremos Decoder como el nombre del


archivo que vamos a crear:

Ventana New Source Wizard

Pulsando de nuevo Next> pasaremos a la ventana que nos permitir


aadir los puertos de entrada y salida, que sern los que muestra la
figura siguiente:
Ventana New Source Wizard - Ports

Tras esto, El Design Browser muestra:

Ventana de Design Browser


Hemos creado dos diseos separados dentro de los archivos
Counter.VHD y Decoder.vhd, correspondientes a un contador y a un
decodificador, respectivamente. Para ver el cdigo fuente de
Decoder.vhd hay que hacer doble click sobre su nombre. Procederemos
de igual forma que en el contador, completando la arquitectura del
decodificador con la plantilla que proporciona el Language Assistant.
Para ello hay que entrar en Language Assistant y
seleccionar Decoder dentro de la carpeta de Tutorial:

Cdigo fuente del decodificador

A continuacin, y como ya se hizo para el contador, hay que editar el


cdigo de Counter.vhd en la ventana de editor, e insertar la plantilla que
proporcionael Language Assistant tras la instruccin:

-- << enter your statements here >>

El resultado es el siguiente:
Contenido de Decoder.vhd

Crear un Archivo Top Level

Para crear un nuevo archivo VHDL sin contenido, hay que hacer doble
click en Add New File en el Design Browser y seleccionar el
icono VHDL Source Code. Ponemos en nombre Top y damos OK.
Ventana Add New File

Ahora los pasos a seguir son los siguientes:

1. Ir a Language Assistant y seleccionar Top dentro de la


carpeta Tutorial
2. Hacer click con el botn derecho en Top y seleccionar Use
para pegar la plantilla en el cdigo
3. Ir al men File y escoger la opcin Save

Arquitectura del Top Level

El contenido del Design Browser:


Contenidos de Design Browser

Los contenidos del editor de VHDL despus de la generacin de


estructura y auto-formateo:

Contenidos del Editor de VHDL


Compilamos el diseo entero. Para ello utilizamos la opcin Compile
All que aparece al hacer click con el botn derecho del ratn sobre
cualquiera de los archivos (Counter.VHD, decoder.vhd o Top.vhd):

Compilacin de todos los archivos

Ver la Estructura de Diseo

Tenemos, ahora, que especificar cul es la entidad de alto nivel. Para


ello pulsaremos los botones de listado desplegable (haciendo click en )
para ver la entidad y arquitecturas disponibles. Seleccionaremos la
etiqueta Top (Structure), y haciendo click sobre ella con el botn
derecho del ratn, hay que seleccionar, en el men que aparece Set as
Top-Level:

Seleccin de la Arquitectura Top

Para visualizar la estructura del diseo hay que ir a Design Browser y


seleccionar Structure justo en la parte baja de la ventana:
Contenidos de Structure

En el diseo Top, que tiene el atributo raz (Top) hay dos componentes:
El contador y el decodificador. Cada uno de estos componentes tiene un
proceso:

Puertos seleccionados del modelo

3. Simulacin
Comenzar la simulacin

Para comenzar una simulacin es necesario inicializar el simulador


eligiendo la opcin Initialize Simulation desde el men de Simulation.
Despus de que el simulador se haya inicializado, hay que abrir una
ventana de Waweform. Para ello es necesario hacer click en el botn de
la barra de herramientas que indica New Waweform . La nueva
ventana Waweform aparece:
Ventana de Waweform

Para aadir seales al simulador hay que utilizar la facilidad drag and
drop. Para ello se abre el tab. de Structure en la parte baja de la ventana
de Design Browser, seleccionando el top level con el atributo de Root,
seleccionando con el botn izquierdo del ratn y arrastrndolo a la parte
derecha de la ventana (waweform). Esta es una operacin estndar de
seleccionar y arrastrar (drag and drop).
Adicin de seales a la ventana de Design Browser

Si desea borrarse una seal, basta con seleccionarla y presionar el botn


derecho del ratn. Aparecer un submen donde podr elegirse la opcin
de borrar, Delete.

Active-HDL permite inspeccionar la simulacin. La ventana List Viewer


activa la monitorizacin de los valores de las seales. Para abrir la
ventana de visualizacin hay que hacer click en el botn New List ( ) de
la barra de herramientas. La ventana que se muestra a continuacin es el
resultado de dicha operacin:
Ventana de List Viewer

La adicin de seales a la ventana List Viewer es similar al que se hizo


para el visualizador de formas de onda (Waveform). Hay que arrastrar las
seales requeridas desde la tabla de estructura de la ventana Browser
Design a la ventana List Viewer. El resultado es el mostrado a
continuacin:
Ventana List Viewer con seales aadidas

La ventana List Viewer muestra una visualizacin interactiva que refleja


todos los resultados y acciones de simulacin.

Asignar Estmulos

Para asignar estmulos a las seales hay seleccionar la seal CLK en la


seccin izquierda de la ventana de Waveform Viewer . Pulsando el botn
derecho del ratn aparecer un men de contexto:

Asignar estmulos a seales


En el men de contexto elegimos Stimulators y aparece la siguiente
ventana:

Ventana de estmulos

Escogemos la opcin Clock en Type:


Aplicar Clock a una seal

Para cambiar la frecuencia hay que hacer click en el cuadro adyacente


a Frequency y escribir el valor deseado, en este caso 10 MHz. Tras ello
hay que hacer click en el botn Apply para asignar el estmulo.

Ahora hay que seleccionar la seal RESET en la ventana Waveform


Viewer y Stimulators desde el men de contexto, y en la ventana de
Stimulators seleccionar Formula. Cuando aparece el cuadro de dilogo
escribimos la expresin para la frmula de la siguiente manera:

1 0, 0 10000

Aplicar frmula a la seal

Damos a Apply y despus Close para cerrar la ventana.

Vamos a simular
Para que aparezcan las seales en la ventana de simulacin, hay que
hacer click sobre el botn Trace Over y en el botn Run For. Se
obtendrn los resultados:

Resultado de la simulacin

El bus Internal, que apareca hasta ahora comprimido, se ha expandido


en la siguiente figura al hacer click sobre el signo de la etiqueta:

Resultado de la simulacin
La simulacin termina seleccionando End Simulation en el
men Simulator.

Para visualizar el resultado en forma de tabla, con tiempo delta, hay que
abrir la ventana List Viewer. Debera aparecer lo siguiente:

Resultado de la simulacin en el List Viewer

Para visualizar los resultados con precisin delta, hay que hacer click en
el icono sobre la barra de herramientas.

Seguimiento del cdigo fuente

Active-HDL permite seguir el cdigo durante la simulacin de paso. La


ventana de cdigo se abre automticamente despus de haber hecho
click en un botn de simulacin de paso. La instruccin que se ejecutar
a continuacin aparece en amarillo en el editor de VHDL.
Lo primero que haremos ser terminar la simulacin previa presionando
la opcin End Simulation desde el men Simulation y reiniciar la
simulacin con la operacinInitialize. Despus escogeremos la
opcin Watch en el men View.

Durante la fase de depuracin se encuentran disponibles los siguientes


comandos:

Trace into: Ejecuta una nica instruccin VHDL. Si se encuentra una


llamada de subprograma la ejecucin desciende en el cuerpo del
subprograma instruccin a instruccin.

Trace over: Ejecuta una nica instruccin VHDL. Si se encuentra una


llamada de subprograma ejecuta en un paso nico las instrucciones que se
encuentran dentro del cuerpo del subprograma.

Trace out: Ejecuta las instrucciones VHDL necesarias para completar la


ejecucin de un subprograma. Si los subprogramas estn anidados, el
comando completa nicamente la ejecucin del subprograma ms interno.

Utilizando estos comandos podr verse cmo cambian los valores de las
seales en la ventana de informacin Watch.

Potrebbero piacerti anche