Sei sulla pagina 1di 19

INTRODUCCIN

ANTECEDENTES

1.1 Matriz Genrica Programable


ACTIVE HDL 3.6 es un software basado en lenguaje VHDL y Verilog que nos
permite realizar simulaciones de diversos sistemas, es un ambiente completo y
totalmente integrado para el diseo y la verificacin de diseos digitales [1].
El enfoque de este trabajo es la implementacin de circuitos lgicos digitales en
VHDL para efectuar la simulacin de circuitos y consta de siete secciones. En
la seccin II se llevara a cabo un anlisis de la estructura general de la
codificacin en VHDL, en la seccin III se presenta una metodologa para el
modelado de circuitos lgicos digitales, en la seccin IV se presentara la
interfaz grafica as como la descripcin y definicin de las caractersticas
principales de los asistentes que conforman esta herramienta de diseo. En la
seccin V se darn ejemplos del modelado de circuitos digitales, en la seccin
VI se presentaran las opciones de simulacin que integra Active HDL 3.6.

1.2 OBJETIVOS
1.2.1 GENERALES
Aprender a disear y simular circuitos digitales por medio del programa ACTIVE
HDL. En este documento se presentan de manera detallada los pasos a seguir
desde el planteamiento de un circuito digital.

CAPITULO 2

MARCO TEORICO
2.1 LENGUAJE DE DESCRIPCIN DE HARDWARE.
VHDL es el acronimo de Very High Speed Integrated Circuit Hardware
Description Language, el cual es un lenguaje de programacin aplicado a la
descripcin de circuitos lgicos y su implementacin en SICs
(Specific Integrated Circuits), FPGAs (Field-Programmable Gate Array) y
circuitos digitales convencionales [2], de acuerdo a su funcin, al
comportamiento del flujo en sus datos o bien a su estructura. Aunque VHDL no
fue diseado para su implementacin en lenguajes de propsito general, es
posible disear algoritmos con este lenguaje, la mayora de su sintaxis deriva
del lenguaje Ada [3]. VHDL fue diseado para satisfacer numerosas
necesidades en el proceso de diseo. Es posible realizar la especificacin de
las funciones para los diseos mediante el uso de un lenguaje de programacin
pero sobre todo posee la capacidad de simular el diseo antes de su
fabricacin, dando as a los fabricantes la posibilidad de comparar alternativas
y realizar pruebas correctivas sin el retraso y el costo que implica la
construccin de prototipos del hardware [4]. El modelado de circuitos en VHDL
se basa principalmente en la definicin de arquitecturas que representan a
cada una de las estructuras que pueden aplicarse al diseo de circuitos. A partir
de esto es posible la declaracin de entidades y sus respectivos componentes
para llevar a cabo la simulacin. Para realizar la simulacin en VHDL del diseo
de un circuito se necesita de tres procesos fundamentales:
Compilacin, Elaboracin y Simulacin.

Figura 2-1.-Compilacin, Elaboracin y Simulacin de Cdigo VHDL [5].

Obsrvese que la generacin de cdigo intermedio y el uso de bibliotecas entre


la compilacin y la simulacin tienen similitud a los pasos del desarrollo en

lenguajes de programacin tpicos. A. Cdigo sintetizable y no sintetizable


Debido a la estandarizacin de VHDL, tambin se utiliza como un lenguaje
descriptivo de los datos de entrada a herramientas de sntesis. Dentro del
contexto de herramientas de software y VHDL, la sntesis es un mtodo
automtico de una conversin de una abstraccin de alto nivel en una de bajo
nivel [6]. El principal problema que surge cuando se pretende el uso de
herramientas de sntesis es consecuencia de las restricciones propias de
VHDL, provocando que solo un subconjunto de elementos de VHDL sea
sintetizable. Las restricciones se encuentran basadas en dos factores [6]
Los elementos VHDL adecuados para la simulacin no pueden
sintetizarse porque no existe un hardware equivalente para su
implementacin. Por ejemplo: Valores inciales, retrasos de seales,
etc.
Restricciones basadas en las capacidades de las herramientas de
sntesis.

Figura 2-2.- Cdigo sintetizable.

Figura 2-3. Cdigo no sintetizable

2.2 INTERFAZ GRFICA


La interfaz grafica de Active HDL se compone bsicamente de un explorador de
diseno, un editor de HDL y una consola. En el explorador de diseo es posible
ver el contenido de todas las entidades, tambin se puede generar o
agregar archivos de VHDL de manera automatica con la opcin Add new
file [7]. Dentro del editor de HDL es posible hacer modificaciones
directamente al cdigo del diseo, y en la consola se puede visualizar un
resumen de cada compilacin y/o simulacin. Active HDL incorpora diferentes

herramientas dentro de su barra de menus, tales como: Compilacin,


Ejecucin de Macros, Asistente de Lenguaje.

Figura 2-4.- Interfaz grafica de Active VHDL 5.1

2.3 MODELADO DE CIRCUITOS USANDO ACTIVE HDL 3.6


Active HDL 3.6 integra diferentes asistentes para la creacin de elementos
VHDL, como se menciono en la seccin II, el uso de este lenguaje implica la
definicin de entidades (elementos y comportamiento), las cuales son
incorporadas en el diseo de circuitos. Los asistentes con que se cuentan son:
el Editor de Lenguaje Descriptivo de Hardware, el Editor de Maquinas de
Estados Finitas y el Editor de Diagramas de Bloques. A continuacin se
describen cada uno de ellos.

A. EDITOR DE LENGUAJE DESCRIPTIVO DE HARDWARE


(HDE) El asistente HDE (Hardware Description Language Editor) incluido en
Active HDL, es un generador de archivos VHDL donde se describe una entidad.
Una vez que se ha elegido este editor y se le ha asignado a un nombre, se
generaran las entradas y las salidas correspondientes segn se aprecia en la
Figura 5, especificando el nombre y el tipo de dato [8].

Figura 2-5.- Ventana de inicio del programa.

Un espacio de trabajo puede contener diversos diseos independientes. Si es


la primera vez que trabaja con esta herramienta, es conveniente iniciar con un
nuevo espacio de trabajo propio. Al cual deber asignrsele un nombre, en este
caso se le puso tutorial.

Figura 2-6.-Asignacion de nombre a el proyecto.

Si se abre un espacio de trabajo existente, automticamente ser abierto el


ltimo diseo elaborado. Para los espacios de trabajo nuevos, se presentar el
asistente para iniciar con nuevos diseos.

Figura 2-7.- Asistente para iniciar con nuevos diseos.

1. La primera opcin se usa cuando ya se cuenta con mdulos que se


agregarn al diseo.
2. La segunda es para importar un diseo completo.
3. La ltima opcin es necesaria para nuevos diseos, para este caso es la
opcin que debe seleccionarse y despus pasar al paso siguiente.
Lo siguiente, deben insertarse una a una las seales que formarn parte de la
entidad (interfaz), la insercin de una seal comienza con un click en el botn
new, luego se le pone un nombre, si es un vector su tamao se determina con
los ndices y debe definirse su modo (entrada o salida).

Insercin de seales al programa.

Figura 2-8.-

El proceso debe repetirse con cada una de las seales, de acuerdo a las
especificaciones del diseo.

Figura 2-9.- Asignacin de entrada/salida puertos

Figura 2-10.- Asistente generador de las


Entradas/salida de una entidad.

La generacin del archivo se lleva a cabo automticamente al finalizar el


proceso anterior. A partir de esto es necesario agregar el cdigo que determina
el comportamiento del circuito dentro del bloque de la arquitectura.

B. Mquina de estados finita (FSM)


Un diagrama de estados se define como un mtodo grafico descriptivo de una
maquina de estados [9]. El asistente de diseo FSM (Finite State Machine)
permite la construccin de un archivo de diagrama de estados mediante la
seleccin de diferentes elementos colocados en la parte inferior del editor HDL,
el cual incluye opciones como: estados, uniones, transiciones, condiciones,
puertos de entrada, Seales/variables, constantes, estados iniciales, etc.

Un ejemplo de una maquina de estados diseado con este asistente se


presenta en la Figura 6. Dicho diseo resuelve un problema de
apagado/encendido de una bomba de agua en una cisterna, considerando dos
Estados: S1 (Apagado) y S2 (Encendido). Para la transicin de un estado a
otro se utilizan dos seales de entrada que simulan los niveles de la
Cisterna: EH (Nivel Alto) y EL (Nivel bajo).

Figura 2-11.- Modelado de un problema mediante una


Maquina de estados.

Una vez que el diseo ha sido terminado, el archivo resultante con extensin
asf podr ser seleccionado y mediante la opcin Generate Code
automticamente generara el archivo de tipo .vhd que corresponde a este
modelo.

C. Editor de diagramas de bloques(BDE)


BDE (Block Diagram Editor) es una herramienta grafica para diseos en
lenguajes de descripcin de hardware como son VHDL, Verilog y EDIF [10].
Una vez que se han diseado las entidades que participan en el diseo del
circuito es posible entonces utilizar esta herramienta. BDE se basa en la
agregacin de entidades en forma de bloques, de esta manera, permite la
interconexin entre ellas de una manera sencilla. Adems hay que tomar en
cuenta que es posible agregar componentes de una misma entidad las veces
que sean necesarias.
Ejemplo de un diseo utilizando este asistente. Consiste en la unin de dos
entidades en un solo diseo, cada entidad con entradas y arquitecturas
propias, y a su vez integradas en un solo circuito donde las salidas de una
entidad (U1) sirven de entrada a la otra (U2).

Figura 2-12.- Diseo de un circuito mediante BDE.

Para comprender el ejemplo anterior es necesario mencionar que U1 es una


entidad con una arquitectura representada por (1), y respectivamente U2 es un
proceso de seleccin mediante un multiplexor donde la secuencia generada por
el selector decide cual ser la salida.

CAPITULO 3

METODOLOGIA
3.1 DISEO DE VHDL
Una vez que se ha elegido este editor y se le ha asignado a un nombre, se
generaran las entradas y las salidas correspondientes especificando el nombre
y el tipo de dato [8].
Al concluir con la insercin de seales se presiona el botn finalizar, con lo que
se crear una plantilla del mdulo en un archivo que es agregado al diseo (se
observa en el navegador) y ste es automticamente abierto en el rea de
trabajo.

Figura 3-1.- rea de trabajo del active HDL.

Los comentarios de la plantilla pueden completarse para una adecuada


documentacin.
En este momento ya se tiene descrita la entidad (la interfaz del mdulo) y falta
por describir su arquitectura para determinar su comportamiento.
Nota: Si se quiere modificar la entidad, para agregar una nueva seal, eliminar
una existente o modificar algn parmetro, debe hacerse manualmente,
respetando la sintaxis de VHDL, no es posible regresar al asistente anterior.
El mdulo a desarrollar es un comparador de 4 bits, de manera que su
comportamiento puede determinarse por el proceso siguiente:

process( A, B )
begin
mayor <= 0;
menor <= 0;
igual <= 0;
if A > B then
mayor <= 1;
elsif A < B then
menor <= 1;
else
igual <= 1;
end if;
end process;
Existen otras alternativas, sin embargo la descripcin funcional es mas
entendible por que refleja directamente la solucin del problema.
Nota: Despus de la palabra process se coloca la lista de sensibilidad, son
seales que activarn la ejecucin del proceso, cuando ocurra un cambio en
cualquiera de ellas.
Este cdigo debe insertarse en la arquitectura, sustituyendo al comentario:
-- enter your statements here

Figura 3-2.Codigo insertado en

la arquitectura.

Una vez insertado el cdigo, se verifica su sintaxis realizando su compilacin.


Para ello se selecciona al archivo
y se presiona al botn
compilar.
Otra alternativa consiste en obtener un men contextual dando un click derecho
en el archivo y seleccionar la opcin de compilacin (compile).

Si no hay errores de sintaxis, el archivo tendr otro marcador indicando su


estado
y la consola reflejar el xito de la compilacin.
En caso de que hubiera errores, el archivo en el navegador quedar marcado
de manera diferente
y los errores se mostrarn en la consola.

Figura 3-3.- Error de una mala compilacin.

Los errores deben resolverse considerando la sintaxis del lenguaje

3.2 Simulacin.
La simulacin en Active HDL se hace mediante una herramienta conocida
como Visor de formas de onda (Waveform Viewer). Waveform Viewer, es una
herramienta especfica para el despliegue de los resultados de la simulacin
grafica en forma de ondas [10]. Es posible el despliegue de mltiples ventanas
con este editor, inclusive pueden estar sincronizadas entre ellas. Tambin se
puede buscar dentro de la simulacin alguna senal y su valor, localizar eventos,
pulsos en cada o subida, comentarios, etc. Otra de sus caractersticas es la
capacidad de desplegar en el visor de lista (List Viewer) los datos en un tabular
semejante a una hoja de clculo [1]. Una simulacin se lleva a cabo mediante
la generacin de un archivo awf en donde se agregan las seales que se
observaran en la simulacin, cabe mencionar que es posible asignarles valores
inciales. Posteriormente se le asigna tiempo a la simulacin y se procede a su
ejecucin.
Una vez realizada la compilacin de un mdulo es posible simularlo. La
simulacin se inicializa seleccionando la opcin Initialize Simulation en el men
Simulacin.

Figura 3-4.- Seleccin de simulacin.

Al iniciar la simulacin, el navegador indica cual es el mdulo de mayor


jerarqua y conmuta automticamente las cejas inferiores para mostrar la
estructura de los mdulos. Si se expande alguno de los mdulos, podrn verse
las seales que contiene:

Figura 3-5.- Modulo indicador de jerarquas.

Para simular se requiere agregar una nueva forma de onda (new Waveform)
dando un click al botn
la siguiente:

aparecer una ventana de seales vaca, similar a

Figura 3-6.- Ventana de seales.

Las seales se agregan activando el men Waveform y seleccionando la


opcin Add Signals, con lo que se obtiene el cuadro de dialogo:

Figura 3-7.- Activacin de seales con Add.

Una alternativa ms simple consiste en seleccionar las seales del navegador y


arrastrarlas a la ventana de seales, en ambos casos el resultado ser el
siguiente:

Figura 3-8.- Ventana con las seales a generar.

Adems del nombre de las seales, se tienen una columna con su valor y otra
indicando el tipo de estmulo. A la derecha hay una zona donde se mostrar el
comportamiento temporal de cada seal.
No hay que olvidar que se est simulando hardware y para probar un elemento
de hardware es necesario ingresar algunas seales a las entradas y observar
las salidas, con ello se evala si la funcionalidad del mdulo es o no correcta.
Las seales de entrada son proporcionadas a travs de estmulos, existen
estmulos de diferentes tipos, adecuados para diferentes tipos de seales. Los
estmulos se obtienen al dar un click derecho a una seal de entrada, con ello
aparece un men contextual en el cual debe seleccionarse la opcin estmulos
( Stimulators ).

Figura 3-9.- Seleccin de stimulators.

Con esto se obtiene un cuadro de dialogo en el cual de izquierda a derecha


muestra: La seal bajo consideracin, la lista de estmulos y las caractersticas
propias de cada tipo de estmulos (ests se obtienen al seleccionar un estmulo
particular y en algunos casos es necesario introducir algunos parmetros).
Para el comparador de 4 bits, puesto que A y B son vectores, para ambas
seales se elegirn estmulos tipo contador, slo que para observar la
activacin de las diferentes salidas A ser ascendente y B descendente.

Figura 3-10.- Seleccin de estimulos y parmetros.

El ltimo botn (Restart) ignora los eventos transcurridos para iniciar


nuevamente con la simulacin.
Las seales se generan conforme se avanza en la simulacin, las entradas
estn dadas por los estimuladores y las salidas son una funcin de las
entradas.

Figura 3-11.- Ventana de seales a generar.

Una vez realizada la simulacin, puede garantizarse que el mdulo funciona y


se procede a la Sntesis e Implementacin. Pero antes, habr que detener la
simulacin seleccionando la opcin End Simulation en el men Simulation.

Figura 3-12.- Finalizado de la simulacin.

Potrebbero piacerti anche