You are on page 1of 7

1

Aplicacin de Los Estilos de Descripcin en VHDL


Daniel Camilo Roln Quintero - Cd.: 1160467, Diego Andrs Parada Rozo - Cd.: 1160449
es especialmente til en simulacin, ya que permite simular un sistema sin conocer su estructura interna. As, este tipo de herramientas de sntesis permiten la creacin automtica de circuitos a partir de una descripcin de su funcionamiento. Muchas veces la descripcin comportamental se divide a su vez en dos, dependiendo del nivel de abstraccin y del modo en que se ejecuten las instrucciones. Estas dos formas comportamentales de describir circuitos son la de ujo de datos y la algortmica.4 [1] II. O BJETIVOS II-A. Objetivo General Aplicar a un sistema electrnico digital los tres estilos bsicos de descripcin en lenguaje VHDL: funcional, ujo de datos, y estructural, para describir su comportamiento, identicar sus componentes fundamentales al interior de cada unidad bsica de diseo y deducir las ventajas y desventajas de cada uno. II-B. La segunda forma consiste en describir un circuito indicando lo que hace o cmo funciona, es decir, describiendo su comportamiento. Naturalmente esta forma de describir un circuito es preferible para un diseador puesto que lo que realmente le interesa es el funcionamiento del circuito ms que sus componentes. Por otro lado, al encontrarse lejos de lo que es realmente un circuito, se pueden plantear algunos problemas al momento de implementarlo a partir de la descripcin de su comportamiento.[1] El VHDL va a ser interesante puesto que va a permitir los dos tipos de descripciones3 [1]: Estructura: VHDL puede ser usado como lenguaje de Netlist comn y corriente donde se especican por un lado los componentes del sistema y por otro sus interconexiones. Comportamiento: VHDL tambin se puede utilizar para la descripcin funcional o comportamental de un circuito. sta es la diferencia con un lenguaje de Netlist. Sin necesidad de conocer la estructura interna de un circuito es posible describirlo explicando su funcionalidad. Esto
1 El Netlist, o lista de conexiones, es la primera forma de describir un circuito mediante un lenguaje, y consiste en dar una lista de componentes, sus interconexiones y las entradas y salidas. No es un lenguaje de alto nivel, por lo que no describe cmo funciona el circuito, sino que simplemente se limita a describir los componentes que posee y las conexiones entre ellos. 2 Pg. 30 de la referencia 1. 3 Pg. 42 de la referencia 1.

ResumenEn este documento se presentan tres estilos de descripcin en VHDL: descripcin algortmica o funcional, descripcin ujo de datos o Data Flow y descripcin estructural. El procedimiento consiste en implementar los estilos mencionados a un ejemplo comn, adems de analizar la funcin lgica booleana que lo representa, encontrar la tabla de la verdad que describe su comportamiento, construir su smbolo y realizar su diagrama de tiempos. Todo ello implementando la herramienta Xilinx WebPack. El principal objetivo consiste en determinar cules son las ventajas y desventajas que se le atribuyen a cada estilo de descripcin en VHDL. Index TermsFuncin lgica booleana, when - else, component, estilo de descripcin funcional, data ow, estructural.

I.

I NTRODUCCIN

LVHDL permite al diseador describir un circuito a travs de dos formas. Por un lado se puede describir indicando los diferentes componentes que lo forman y su interconexin, de esta manera se tiene especicado un circuito y se sabe cmo funciona. Las herramientas que utiliza esta forma son las capturas de esquemas y las de descripcin Netlist1,2 .[1]

Objetivos Especcos Analizar la funcin lgica booleana que representa el sistema electrnico digital a implementar. Encontrar la tabla de la verdad que describe su comportamiento. Construir el smbolo esquemtico que lo representa. Realizar el diagrama de tiempos que muestre el comportamiento de las seales de entrada y salida del sistema.

III. M ARCO T ERICO III-A. Estilos de Descripcin en VHDL VHDL presenta tres estilos de descripcin de circuitos dependiendo del nivel de abstraccin. El menos abstracto es una descripcin puramente estructural. Los otros dos estilos representan una descripcin comportamental o funcional, y la diferencia proviene de la utilizacin o no de la ejecucin serie.[1] La sintaxis del VHDL no es sensible a maysculas o minsculas, por lo que se debe escribir como se preera. En primer lugar, sea el tipo de descripcin que sea, hay que denir el smbolo o entidad del circuito. En efecto lo primero es precisar las entradas y salidas del circuito, es decir, la caja negra que lo dene. Se la llama entidad porque en la sintaxis de VHDL se declara con la palabra entity. Esta denicin de entidad, que suele ser la primera parte de toda descripcin VHDL, se expone en la g. 1 [1], [2].5
4 Pg. 5 Pg.

42 y 43 de la referencia 1. 44 de la referencia 1, pg. 3 de la referencia 2.

sintetizar el diseo a partir de una descripcin comportamental. La diferencia con un Netlist es directa: en una descripcin comportamental no se estn indicando ni los componentes ni sus interconexiones, sino simplemente lo que hace, es decir, su comportamiento o funcionamiento.7 [1] III-A2. Descripcin Flujo de Datos o Data Flow: La descripcin anterior es puramente comportamental, de manera que con una secuencia sencilla de instrucciones se podra describir el circuito. Naturalmente, a veces resulta ms interesante describir el circuito de forma que est ms cercano a una posible realizacin fsica del mismo. En este sentido, VHDL posee una forma de describir circuitos que adems permite la paralelizacin de instrucciones8 , y que se encuentra ms cercana a una descripcin estructural del mismo, siendo todava una descripcin funcional. En la g. 3 9 se muestra el formato de una descripcin concurrente, tambin llamada de ujo de datos o de transferencia entre registros, en dos modos: aplicando funciones lgicas booleanas y la clave when - else.[1]

Figura 1. Aproximacin al formato de la entidad, las constantes y los puertos.

La entidad de un circuito es nica. Sin embargo, un mismo smbolo, en este caso entidad, poda tener varias vistas, que en el caso de VHDL se llaman arquitecturas. Cada bloque de arquitectura, que es donde se describe el circuito, puede ser una representacin diferente del mismo circuito. Por ejemplo, puede haber una descripcin estructural y otra comportamental, las dos son descripciones diferentes, pero ambas corresponden al mismo circuito, smbolo o entidad.[1] III-A1. Descripcin Algortmica o Funcional

if-then-else: El formato de este estilo de descripcin se

muestra en la g. 2 [2]6 .

Figura 3. Aproximacin al formato de descripcin ujo de datos: (a) aplicando funciones lgicas booleanas y (b) aplicando la clave when else.

Figura 2. Aproximacin al formato de descripcin funcional if-then-else.

Como primera aproximacin, se considera que el bloque


process es una especie de subrutina cuyas instrucciones se

ejecutan secuencialmente cada vez que alguna de las seales de la lista sensible cambia. sta es una lista de seales que se suele poner junto a la clave process.[1] Esta descripcin comportamental es muy sencilla de entender, ya que se sigue un estructura parecida a los lenguajes de programacin convencionales. Es por lo que se dice que se trata de una descripcin comportamental algortmica. Lo que se est indicando es simplemente que si se cumple con una(s) condicin(es) especca(s) entonces se procede a cumplir con una secuencia de instrucciones. Esta forma tan sencilla de describir el circuito permite a ciertas herramientas
6 Pg.

En la descripcin (a) de la g.3 hay varias instrucciones concurrentes, es decir, se ejecutan cad vez que cambia alguna de las seales o puertos que intervienen en la asignacin. Este primer caso es casi una descripcin estructural, ya que de alguna manera se estn describiendo las seales y los componentes que la denen; aunque no es estructural, ya que en realidad se trata de asignaciones a seales o a puertos y no a una lista de componentes y conexiones. El caso (b) es tambin una descripcin de ujo de datos, solo que implementa condiciones para cumplir con la funcin lgica booleana predeterminada.[1] III-A3. Descripcin Estructural: El VHDL tambin permite ser usado como Netlist o lenguaje de descripcin de estructura. Esta descripcin estructural sirve tambin para realizacin de diseos jerrquicos. La descripcin estructural tambin se incluye dentro de un bloque de arquitectura, si bien la sintaxis interna es completamente diferente (vase la g.4
45 de la referencia 1. lenguaje que describa hardware debe permitir la ejecucin paralela o que hayan instrucciones concurrentes. 9 Pg. 46 de la referencia 1.
8 Un 7 Pg.

5 de la referencia 2.

10

)[1], [3]

Figura 4.

Aproximacin al formato de descripcin estructural.

Figura 5.

Circuito lgico digital a implementar.

Se observa fcilmente que esta descripcin es un poco ms larga y mucho menos clara que las anteriores. En el cuerpo de la arquitectura se hace lo que en una Netlist normal, es decir, se ponen los componentes y sus interconexiones. Para los componentes se utilizarn entidades que estarn denidas en alguna biblioteca, y para las conexiones se usarn seales que se declararn al principio de la arquitectura.11 [1] Al igual que ocurre en cualquier Netlist, las seales o conexiones deben tener un nombre. En el esquema se le han puesto nombres a las lneas de conexin internas al circuito. Estas lneas hay que declararlas como signal en el cuerpo de la arquitectura y delante antes del begin. Una vez declaradas las seales que intervienen se procede a conectar entre s las seales que representas componentes. Para ello la sintaxis es muy simple. Lo primero es identicar y poner cada componente, que es lo que comnmente se conoce como replicacin, es decir, asignarle a cada componente concreto un smbolo; en principio, el nombre puede ser cualquier identicador vlido y la nica condicin es que no haya dos nombres iguales. Despus se realizan las conexiones poniendo cada seal en su ligar correspondiente con las palabras port map. De esta forma se va creando el Netlist o la denicin de la estructura.12 [1]

V-A.

Expresin Booleana

Teniendo en cuenta el nmero de entradas y salidas del circuito de la g. 5, lo cual se muestra en el cuadro I, se llega a dos expresiones lgicas booleanas y son como se muestran a continuacin. F =AC +BC +ABC G=ABC D Como se ver ms adelante, es necesario declarar las seales presentes internamente en el circuito. El cuadro I tambin incluye estas seales. La expresin booleana para cada una de ellas se muestra a continuacin. N0 = A C N1 = C N2 = A N3 = D N4 = B N1 N5 = B C N2 As, las salidas, F y G, se pueden expresar de la siguiente manera. F = N0 + N4 + N5 G = N3 N5

IV.

E QUIPO I MPLEMENTADO

Computadora. Herramienta de simulacin Xilinx WebPack 10.1. Tarjeta PEGASUS de Digilent. Cable de conexin JTAG. Cable de alimentacin para la PEGASUS.

Entradas A B C D

Seales N0 N1 N2 N3 N4 N5

Salidas

E F

V.

D ESARROLLO DE LA P RCTICA

La prctica se desarrolla en torno a los objetivos planteados (teniendo como base el marco terico expuesto) sobre el circuito lgico de la g. 5.
10 Pg.

Cuadro I P UERTOS DE ENTRADA Y SALIDA Y SEALES INTERNAS DEL CIRCUITO DE LA FIG .5.

2-6 de la referencia 3. 11 Pg. 46 de la referencia 1. 12 Pg. 47 de la referencia 1.

V-B.

Tabla de Verdad

La tabla de verdad que modela el circuito de la g. 5 se muestra explcitamente en el cuadro 6.

A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

N0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1

N1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0

N2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0

N3 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

N4 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0

N5 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0

F 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1

G 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

Figura 8. Estilo de descripcin ujo de datos a partir de ecuaciones booleanas para el circuito de la g. 5.

Figura 6.

Tabla de verdad del circuito de la g. 5.

V-C.

Diseo en VHDL

V-C3. Estilo Flujo de Datos (when-else): La g. 9 muestra el programa creado a partir de este estilo.

A continuacin se muestra los programas en VHDL creados para el circuito de la g. 5. Se ha tenido en cuenta 4 estilos de descripcin (ramicados de los expuestos en la seccin 3). Estos son: Estilo funcional. Estilo ujo de datos a partir de ecuaciones booleanas. Estilo ujo de datos a partir de las instrucciones when-else. Estilo estructural. V-C1. Estilo Funcional: La g. 7 muestra el programa creado a partir de este estilo.

Figura 9.

Estilo de descripcin ujo de datos a partir de las instrucciones

when-else para el circuito de la g. 5.

V-C4. Estilo Estructural: La g. 10 muestra el programa creado a partir de este estilo. La implementacin de este estilo de descripcin requiere de la declaracin o creacin de subrutinas. Precisamente, estas subrutinas son:

Figura 7.

Estilo de descripcin funcional para el circuito de la g. 5.

V-C2. Estilo Flujo de Datos (Ecuaciones Booleanas): La g. 8 muestra el programa creado a partir de este estilo.

Compuerta Compuerta 12). Compuerta 13). Compuerta

not de una entrada (no) (vase la g. 11). and de dos entradas (and_2) (vase la g. and de tres entradas (and_3) (vase la g. or de tres entradas (or_3) (vase la g. 14).

Figura 12. Programa que declara la subrutina "and_2" para complementar el programa estructural de la g. 10.

Figura 10.

Estilo de descripcin estructural para el circuito de la g. 5.

Figura 13. Programa que declara la subrutina "and_3" para complementar el programa estructural de la g. 10. Figura 11. Programa que declara la subrutina "no" para complementar el programa estructural de la g. 10.

Figura 16. g. 8.

Smbolo del programa de estilo ujo de datos (booleano) de la

Figura 14. Programa que declara la subrutina "or_3" para complementar el programa estructural de la g. 10.

V-D.

Smbolo
Figura 17. Smbolo del programa de estilo ujo de datos (when-else) de la g. 9

Para crear el smbolo del sistema se sigue que: Seleccionar el archivo del programa al cual se le va a crear el smbolo. Esto es, activar el programa .vhd a implementar. En la ventana "Process" abrir el men "Desisng Utilities". Luego ejecutar con doble click la opcin "Create Schematic Symbol". Ello se sigue para todos los archivos creados (en los diferentes modos) de la misma manera. Se anota que estos smbolos quedan guardados por defecto en el directorio donde se encuentra el proyecto. Adems, se recuerda que el smbolo es esquemtico, entonces para implementarlo se requiere crear una fuente de tipos "Schematic". El smbolo del estilo funcional, del estilo data ow (booleano), del estilo data ow (when-else) y del estilo estructural se muestran en la g. 15, g. 16, g. 17 y g. 18 respectivamente.

Figura 18.

Smbolo del programa de estilo estructural de la g. 10

V-E.

Diagrama de Tiempos

Figura 15.

Smbolo del programa de estilo funcional de la g. 7.

Aplicando la opcin de simulacin "Behavioral Simulation" de Xilinx, se procede a declarar las seales de entrada (A, B, C y D) como se muestra en la g. 19. Obsrvese que se hace coincidir con la asignacin presentada en el cuadro6 (tabla de verdad). Al correr la simulacin, se obtienen las seales presentadas en la g. 20. De nueva cuenta, obsrvese que las seales de salida (E y F) corresponden a las mostradas en el cuadro 6.

Figura 19.

Asignacin de las seales de entrada.

nalidad. De ello se deduce que as como algunos de los estilos pueden funcionar para ciertas aplicaciones, hay aplicaciones que son exclusivamente aplicables con cierto estilo; No siempre se puede contar con todos los estilos para solucionar un problema. Adems, se anota que puede haber casos en el que sea necesario involucrar varios estilos de descripcin en una misma secuencia de asignaciones. R EFERENCIAS
[1] Fernando Pardo Carpio and Jos A. Boluda Grau, "VHDL Lenguaje para sntesis y modelado de circuitos", Tercera ed. Mxico D.F., Mxico: Alfaomega Grupo Editor, S.A. de C.V., 2011. [2] John Jairo Ramirez Mateus, "Introduccin al Lenguaje VHDL", Universidad Francisco de Paula Santander, San Jos de Ccuta, Gua de laboratoio. [3] John Jairo Ramrez Mateus, "Estilo de Programacin Estructural con VHDL", Universidad Francisco de Paula Santander, San Jos de Ccuta, Gua de laboratorio.

Figura 20. Diagrama de tiempos presentado por el archivo de simulacin .tbw creado para cada estilo de descripcin.

VI.

C ONCLUSIONES

Cumpliendo con el principal objetivo de esta prctica, determinar cules son las ventajas y desventajas que poseen los estilos de descripcin VHDL, se ha llegado a las siguientes conclusiones. El estilo de descripcin menos complejo y que requiere de menos instrucciones, es el ujo de datos a partir de expresiones booleanas. No obstante, este estilo se hace obsoleto al momento de no tener a disposicin la ecuacin lgica booleana que describa el circuito. Por otro lado, este estilo no permite tener nocin alguna acerca de cmo funciona el circuito. Ello hace destacar al estilo ujo de datos por when-else, ya que este permite dar una primera aproximacin al comportamiento del circuito, estableciendo para ello condiciones que introduzcan a lo dicho. El estilo funcional permite en gran medida la nocin de qu y cmo se comporta el circuito a modelar. Si bien, requiere de ms lneas de cdigo en comparacin con el Data Flow, ello le permite intrnsecamente adoptar la esencia de las condiciones que tiene que cumplir el circuito para poder funcionar correctamente. Algo que se debe destacar, es que ste estilo no requiere de la expresin lgica booleana para poder describir el circuito a modelar. El estilo estructural es el ms engorroso y el menos atractivo para un diseador al momento de describir un circuito. Sin embargo, ello no siempre es as. La gran ventaja de poder crear varias subrutinas en un mismo programa le da a este estilo un valor agregado. Esto se reere precisamente a aquellas ocasiones en las que el diseador quiera modelar un sistema que est compuesto por una serie de subsistemas, entonces, es all donde el estilo estructural entra en accin produciendo las subrutinas que se necesite y, lo que es an mejor, en cualquier otro estilo de descripcin VHDL. Si bien, algunos de los estilos de descripcin son ms complejos que otros, para cada aplicacin existe al menos un estilo que se acomode a su funcionalidad y