0% encontró este documento útil (0 votos)
13 vistas6 páginas

Texto1 VHDL

vhdl

Cargado por

MU RA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas6 páginas

Texto1 VHDL

vhdl

Cargado por

MU RA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Capítulo 2

VHDL:
su organización
y arquitectura
Introducción

Tal como lo indican sus siglas, VHDL (Hardware Description Language) es


un lenguaje orientado a la descripción o modelado de sistemas digitales;
es decir, se trata de un lenguaje mediante el cual se puede describir, analizar
y evaluar el comportamiento de un sistema electrónico digital.
VHDL es un lenguaje poderoso que permite la integración de sistemas
digitales sencillos, elaborados o ambos en un dispositivo lógico programable,
sea de baja capacidad de integración como un GAL, o de mayor capacidad
como los CPLD y FPGA.

2.1 Unidades básicas de diseño

La estructura general de un programa en VHDL está formada por módulos


o unidades de diseño, cada uno de ellos compuesto por un conjunto de de-
claraciones e instrucciones que definen, describen, estructuran, analizan y
evalúan el comportamiento de un sistema digital.
Existen cinco tipos de unidades de diseño en VHDL: declaración de en-
tidad (entity declaration), arquitectura (architecture), configuración (con-
figuration), declaración del paquete (package declaration) y cuerpo del
paquete (package body). En el desarrollo de programas en VHDL pueden
utilizarse o no tres de los cinco módulos, pero dos de ellos (entidad y arqui-
tectura) son indispensables en la estructuración de un programa.
Las declaraciones de entidad, paquete y configuración se consideran uni-
dades de diseño primarias, mientras que la arquitectura y el cuerpo del pa-
quete son unidades de diseño secundarias porque dependen de una entidad
primaria que se debe analizar antes que ellas.
38 V H D L : El arte de programar sistemas digitales

2.2 Entidad

Una entidad (entity) es el bloque elemental de diseño en VHDL, Las entida'


des son todos los elementos electrónicos (sumadores, contadores, compuertas,
flip-flops, memorias, multiplexores, etc.) que forman de manera individual o
en conjunto un sistema digital. La entidad puede representarse de muy di-
versas maneras; por ejemplo, la figura 2.1a) muestra la arquitectura de un su-
mador completo a nivel de compuertas; ahora bien, esta entidad se puede
representar a nivel de sistema indicando tan sólo las entradas (Cin, A y B) y
salidas (SUMA y Cout) del circuito: figura 2.1b). De igual forma, la integra-
ción de varios subsistemas (medio sumador) puede representarse mediante
una entidad [Fig. 2.1c)]. Los subsistemas pueden conectarse internamente en-
tre sí; pero la entidad sigue identificando con claridad sus entradas y salidas
generales.

a) b)

c)

Figura 2.1 a) Descripción a nivel de compuertas, b) Símbolo funcional de la entidad; c) Diagrama a bloques
representativo de la entidad.
VHDL: su organización y arquitectura 39

2.2.1 Puertos de entrada'salida

Cada una de las señales de entrada y salida en una entidad son referidas
como puerto, el cual es similar a una terminal (pin) de un símbolo esquemá-
tico. Todos los puertos que son declarados deben tener un nombre, un mo-
do y un tipo de dato. El nombre se utiliza como una forma de llamar al puer-
to; el modo permite definir la dirección que tomará la información y el tipo
define qué clase de información se transmitirá por el puerto. Por ejemplo,
respecto a los puertos de la entidad que representan a un comparador de
igualdad (Fig. 2.2), las variables a y b denotan los puertos de entrada y la va-
riable c se refiere al puerto de salida.

Figura 2.2 Comparador de igualdad.

2.2.2 Modos

Como ya se mencionó, un modo permite definir la dirección en la cual el dato


es transferido a través de un puerto. Un modo puede tener uno de cuatro va-
lores: in (entrada), out (salida), inout (entrada/salida) y buffer (Fig. 2.3).

• Modo in. Se refiere a las señales de entrada a la entidad. Este sólo es uni-
direccional y nada más permite el flujo de datos hacia dentro de la entidad.
• Modo out. Indica las señales de salida de la entidad.
• Modo inout. Permite declarar a un puerto de forma bidireccional —es
decir, de entrada/salida—; además permite la retroalimentación de seña-
les dentro o fuera de la entidad.
• Modo buffer. Permite hacer retroalimentaciones internas dentro de la
entidad, pero a diferencia del modo inout, el puerto declarado se com-
porta como una terminal de salida.

Figura 2.3 Modos y el curso de sus señales.


40 V H D L : El arte de programar sistemas digitales

2.2.3 Tipos de datos

Los tipos son los valores (datos) que el diseñador establece para los puertos
de entrada y salida dentro de una entidad; se asignan de acuerdo con las ca-
racterísticas de un diseño en particular. Algunos de los tipos más utilizados
en VHDL son:

• Bit, el cual tiene valores de 0 y 1 lógico.


• Boolean (booleano) que define valores de verdadero o falso en una ex-
presión
• Bit_vector (vectores de bits) que representa un conjunto de bits para
cada variable de entrada o salida.
• Integer (entero) que representa un número entero.

Los anteriores son sólo algunos de los tipos que maneja VHDL, pero no
son los únicos. 1

2.3 Declaración de entidades

Como se mencionó en la sección 2.1 (Unidades básicas de diseño), los módu-


los elementales en el desarrollo de un programa dentro del lenguaje de descrip-
ción en hardware (VHDL) son la entidad y la arquitectura.
La declaración de una entidad consiste en la descripción de las entradas
y salidas de un circuito de diseño identificado como entity (entidad); es
decir, la declaración señala las terminales o pines de entrada y salida con que
cuenta la entidad de diseño.
Por ejemplo, la forma de declarar la entidad correspondiente al circuito
sumador de la figura 2.1b) se muestra a continuación:

1 —Declaración de la entidad de un circuito sumador


2 entity sumador is
3 port (A, B, Cin: in bit;
4 SUMA, Cout: out bit);
5 end sumador;

Listado 2.1 Declaración de la entidad sumador de la figura 2.1b).

1 En el apéndice A se listan los tipos de datos existentes en VHDL.


V H D L : su organización y arquitectura 41

Los números de las líneas (1, 2, 3, 4, 5) no son parte del código; se usan
como referencia para explicar alguna sección en particular. Las palabras en
negritas están reservadas para el lenguaje de programación VHDL; esto es,
tienen un significado especial para el programa; el diseñador asigna los otros
términos.
Ahora comencemos a analizar el código línea por línea. Observemos que
la línea 1 inicia con dos guiones (--), los cuales indican que el texto que está
a la derecha es un comentario cuyo objetivo es documentar el programa, ya
que el compilador ignora todos los comentarios. En la línea 2 se inicia la
declaración de la entidad con la palabra reservada entity, seguida del identi*
ficador o nombre de la entidad (sumador) y la palabra reservada is. Los puer-
tos de entrada y salida (port) se declaran en las líneas 3 y 4, respectivamente
—en este caso los puertos de entrada son A, B y Cin—, mientras que SU-
MA y Cout representan los puertos de salida. El tipo de dato que cada puer-
to maneja es del tipo bit, lo cual indica que sólo pueden manejarse valores de
'0' y '1' lógicos. Por último, en la línea 5 termina la declaración de entidad con
la palabra reservada end, seguida del nombre de la entidad (sumador).
Debemos notar que como cualquier lenguaje de programación, VHDL
sigue una sintaxis y una semántica dentro del código, mismas que hay que
respetar. En esta entidad conviene hacer notar el uso de punto y coma (;) al
finalizar una declaración y de dos puntos (:) al asignar nombres a las entra-
das y salidas.

Ejemplo 2.1 Declare la entidad del circuito lógico de la figura C2.1.

Figura E2.1

Solución

Como puede observarse, las entradas y salidas del circuito se encuentran de-
limitadas por la línea punteada. En este caso, a3, b3, a2, b2,... aO, bO son las
entradas y F es la salida.
42 V H D L : El arte de programar sistemas digitales

La declaración de la entidad sería de la siguiente forma:

1 -- Declaración de la entidad
2 Entity circuito is
3 port( a3,b3,a2,b2,al,bl,aO, bO: in bit;
4 F: out bit);
5 end circuito;

Identificadores

Los identificadores son simplemente los nombres o etiquetas que se usan pa-
ra referir variables, constantes, señales, procesos, etc. Pueden ser números,
letras del alfabeto y guiones bajos ( _ ) que separen caracteres y no tienen
una restricción en cuanto a su longitud. Todos los identificadores deben se-
guir ciertas especificaciones o reglas para que se puedan compilar sin errores,
mismas que aparecen en la tabla 2.1.

Regla Incorrecto Correcto


El primer caracter siempre es una letra 4suma Suma4
mayúscula o minúscula. SUMA4

S_4bits S4_bits
El segundo caracter no puede ser un guión
bajo

Resta 4 Resta_4_
Dos guiones juntos no son permitidos

Clear#8 Clear_8
Un identificador no puede utilizar
símbolos

Tabla 2.1 Especificaciones para la escritura de identificadores.

V H D L cuenta con una lista de palabras reservadas que no pueden fun-


cionar como identificadores (vea el Apéndice B).

2.4 Diseño de entidades mediante vectores


La entidad sumador realizada en el circuito del listado 2.1, usa bits indivi-
duales, los cuales sólo pueden representar dos valores lógicos (0 o 1). De ma-
nera general, en la práctica se utilizan conjuntos (palabras) de varios bits; en
V H D L las palabras binarias se conocen como vectores de bits, los cuales se
consideran un grupo y no como bits individuales. Como ejemplo considéren-
se los vectores de 4 bits que se muestran a continuación:

vector_A = [A3, A2, Al, AO]


vector_B = [B3, B2, Bl, BO]
vector_SUMA = [S3, S2, SI, SO]

También podría gustarte