SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Sistemas digitales II
                                                                                                                       VHDL




INDICE
1.-Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.-Brebe reseña histórica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.-Definiciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1.-HDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.-VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

        2.2.1.-Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

        2.2.2.-Ventajas y limitaciones                      .......................... 5

3.-Lenguaje VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

   3.1.-Aspectos generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

   3.2.-Estilos de descripción en VHDL . . . . . . . . . . . . . . . . . . . . . . . 6

3.2.1.-Descripción algorítmica . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2.2.-Descripcion flujo de datos                         ......................9

3.2.3.-Descripción estructural . . . . . . . . . . . . . . . . . . . . . . . . . .10

    3.3.-Sintaxis y semántica básica de VHDL . . . . . . . . . . . . . . . . . .11

        3.3.1.-Entidad VHDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

        3.3.2.-Arquitectura VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

4.-Ejemplos aplicativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

      4.1.-Sumador completo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

     4.2.-Flip-Flop JK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

      4.3.- Descodificador de 7 segmentos                               . . . . . . . . . . . . . . . . . . . 20

5.-Anexos          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21              1

6.-Bibliografía          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23


                                                                                              Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                           VHDL




I.-Introducción
Breve reseña histórica

A mediados de los años sesenta se produce una fuerte evolución en los
procesos de fabricación de los circuitos integrados, y junto a las
tecnologías bipolares, surgen la MOS, principalmente la NMOS,
promoviendo el desarrollo de circuitos digitales hasta la primera mitad de
los ochenta.

En aquellas épocas, el esfuerzo de diseño se concentraba en los niveles
eléctricos de establecer características e interconexiones entre los
componentes básicos a nivel de transistor. El proceso de diseño era
altamente manual y tan solo se empleaban herramientas como el PSPICE,
para la simulación de esquemas eléctricos con modelos previamente
personalizados, a las distintas tecnologías.

A medida que pasaban los años, los procesos tecnológicos se hacían más
y más complejos. Los problemas de integración iban en aumento y los
diseños eran cada vez más difíciles de depurar y de dar mantenimiento.
Inicialmente los circuitos M.S.I.y L.S.I. se diseñaron medianamente la
realización de prototipos basados en módulos más sencillos. Cada uno de
estos módulos estaba formado por puertas ya probadas, este método
poco a poco, iba quedándose obsoleto. En ese momento (finales de los
años sesenta) se constata el enorme desfase entre tecnología y diseño.

La considerable complejidad de los chips que se pueden fabricar, implica
unos riesgos y costes de diseño desmesurados e imposibles de asumir por
las empresas. Es entonces, cuando diversos grupos de investigadores
empiezan a crear y desarrollar los llamados “lenguajes de descripción de
hardware” con sus características diferentes.

Empresas tales como IBM con su IDL, el TI-HDL de Texas Instruments, ZEUS de
General Electric, etc., así como los primeros prototipos empleados en las
universidades, empezaron a desarrollarse buscando una solución a los                2
problemas que presentaba el diseño de los complejos sistemas.



                                                  Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                              VHDL




Sin embargo, estos lenguajes nunca alcanzaron el nivel de difusión y
consolidación necesarias por motivos distintos. Unos, los industriales, por ser
propiedad de la empresa permanecieron encerrados en ellas y no
estuvieron disponibles para su estandarización y mayor difusión, los otros,
los universitarios, perecieron por no disponer de soporte ni mantenimiento
adecuado.

Alrededor de 1981 el departamento de Defensa de los Estados Unidos
desarrolla un proyecto llamado VHSIC (Very High SpeedIntegratedCircuit)
su objetivo era rentabilizar las inversiones en hardware haciendo más
sencillo su mantenimiento. Se pretendía con ello resolver el problema de
modificar el hardware diseñado en un proyecto para utilizarlo en otro, lo
que no era posible hasta entonces porque no existía una herramienta
adecuada que armonizarse y normalizarse dicha tarea, era el momento de
los HDL‟s.

VHDL vs M.S.I.

En 1983, IBM, Intemetricsy Texas Istruments empezaron a trabajar en el
desarrollo de un lenguaje de diseño que permitiera la estandarización,
facilitando con ello, el mantenimiento de los diseños y la depuración de los
algoritmos, para ello el IEEE propuso su estándar en 1984.

Tras varias versiones llevadas a cabo con la colaboración de la industria y
de las universidades, que constituyeron a posteriori etapas intermedias en
el desarrollo del lenguaje. El IEEE adoptó en diciembre de 1987 a VHDL
como su lenguaje HDL, dando un impulso a éste frente a sus competidores.
El estándar IEEE std 1076-1987 que constituyó el punto firme de partida de
lo que después de cinco años sería ratificado como VHDL.

La independencia en la metodología de diseño, en el proceso de
fabricación, su versatilidad para la fabricación de sistemas de complejas,
su posibilidad de reutilización, han hecho que VHDL se convierta con el
paso del tiempo en el lenguaje de descripción de hardware por
excelencia.                                                                            3




                                                     Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                             VHDL




II.-Definiciones

   2.1.-HDL.-Los lenguajes de descripción hardware (HDLs, Hardware
      DescriptionLanguages)      permiten     modelar        sistemas digitales
      completos.Mediante herramientas de software estos modelos
      pueden luego “sintetizarse” para implementarlos como circuitos
      reales.La utilización de HDLs y su posterior síntesis pueden tener como
      objetivo la creación de un circuito integrado de propósito específico
      (ASICs) o la implementación del circuito en algún dispositivo de
      lógica programable (PLD‟s).

      Al utilizar un HDL es importante tener en cuenta que se está
      modelando hardware, y no escribiendo software.Existen varios HDLs
      pero dos son los que predominan: Verilog y VHDL.

   2.2.-VHDL

      2.2.1.-Definición.- El significado de las siglas VHDL es VHSIC (Very High
      SpeedIntegratedCircuit) Hardware DescriptionLanguage, es decir,
      lenguaje de descripción hardware de circuitos integrados de muy
      alta velocidad. VHDL es un lenguaje de descripción y modelado,
      diseñado para describir, es una forma en que los humanos y
      máquinas puedan leer y entender la funcionalidad y la organización
      de sistemas hardware digitales, placas de circuitos y componentes.

      VHDL fue diseñado como un lenguaje para el modelado y
      simulación lógica dirigida por eventos de sistemas digitales, y
      actualmente se utiliza también para síntesis automática de circuitos.

         VHDL es un lenguaje con una sintaxis amplia y flexible que permite
      el modelado estructural, en flujo de datos y de comportamiento de
      hardware. VHDL permite el modelado preciso, en distintos estilos, del
      comportamiento de un sistema digital conocido y desarrollado en
      modelos de simulación.

      Uno de los objetivos del lenguaje VHDL es el modelado. Modelado es              4
      el desarrollo de un modelo para la simulación de un circuito o



                                                    Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                      VHDL




sistema previamente implementado cuyo comportamiento, por
tanto, se conoce. El objetivo de modelado es la simulación.

2.2.2.-Ventajas y limitaciones.-La síntesis a partir de VHDL constituye
hoy en día una de las principales aplicaciones del lenguaje con una
demanda de uso. Las herramientas de síntesis basadas en el
lenguaje permiten en la actualidad ganancias importantes en la
productividad de diseño.

Algunas ventajas del uso de VHDL para la descripción de hardware
son:

      VHDL permite diseñar, modelar y comprobar un sistema desde
      un alto nivel de abstracción bajando hasta el nivel de
      definición estructural de puertas.
      Circuitos descritos utilizando VHDL, siguiendo unas guías para
      síntesis, pueden ser utilizados por diversas herramientas de
      síntesis para crear e implementar circuitos.
      Los módulos creados en VHDL pueden utilizarse en diferentes
      diseños, lo que permite la reutilización del código. Además, la
      misma descripción puede utilizarse para diferentes tecnologías
      sin tener que rediseñar todo el circuito.
      Al estar basado en un estándar (IEEE std 1076-1987, IEEE std
      1076-1993) los ingenieros de toda la industria de diseño pueden
      usar este lenguaje para minimizar errores de comunicación y
      problemas de compatibilidad.
      VHDL permite diseño Top-Down, esto es, describir (modelar) el
      comportamiento de los bloques de alto nivel, analizarlos
      (simularlos) y refinar su funcionalidad en alto nivel requerida
      antes de llegar a niveles más bajos de abstracción de la
      implementación del diseño.
      Modularidad: VHDL permite dividir o descomponer un diseño
      hardware y su descripción VHDL en unidades más pequeñas.


Alguna de las limitaciones que presenta el uso de VHDL son:

      No permite describir sistemas analógicos. Sin embargo ya se              5
      están desarrollando versiones analógicas y mixtas.



                                             Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                            VHDL




            No existe un estilo de descripción normalizado. Para síntesis se
            requiere ajustar los estilos disponibles a la capacidad de
            herramientas CAD.
            Es posible sintetizar lógica solo de un subconjunto del lenguaje.
            Las herramientas de síntesis no soportan los mismos
            subconjuntos, y existen a veces diferencias al mudar de
            herramientas.

3.-Lenguaje VHDL

  3.1.-Aspectos generales

El VHDL va a ser interesante puesto que va a permitir dos tipos de
descripciones:

Estructura:VHDL puede ser usado como un lenguaje de netlistnormal y
corriente y corriente donde se especifican por un lado los componentes
del sistema y por otro sus conexiones.

Comportamiento: VHDL también se puede utilizar para la descripción
comportamental o funcional de un circuito. Esto es lo que distingue de un
lenguaje de Netlist. Esto es especialmente útil en simulación, ya que
permite simular un sistema sin conocer su estructura interna.

Muchas veces la descripción comportamental se divide a su vez en dos,
dependiendo del nivel de abstracción y del modo en que se ejecutan las
instrucciones. Estas dos formas comportamentales de describir circuitos son
las de flujo de datos y algorítmica.

  3.2.-Estilos de descripción en VHDL

VHDL presenta tres estilos de descripción de circuitos dependiendo del
nivel de abstracción. El menos abstracto es una descripción puramente
estructural. Los otros dos estilos representan una descripción
comportamental o funcional, y la diferencia viene de la utilización o no de
la ejecución serie.
                                                                                     6
Mediante un sencillo ejemplo, que además sirve para ilustrar la forma en
que se escriben descripciones en VHDL, se van a mostrar estos tres estilos
de descripción.
                                                   Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                              VHDL




Ejemplo 3.1Describir en VHDL un circuito que multiplexe dos líneas de
entrada (a y b)de un bit, a una sola línea (salida) también de un bit; la
señal selec sirve para seleccionar la línea a(selec=’0’) o b(selec=’1’).

En la fig. 6 se muestra el circuito implementado con puertas lógicas que
realiza la función de multiplexación.




               Fig. 6 Ejemplo básico de un esquema en VHDL

     3.2.1.-Descripción algorítmica

La sintaxis del VHDL no es sensible a mayúsculas, por lo que se puede
describir como se prefiera. A lo largo de las explicaciones se pondrán
siempre las palabras clave del lenguaje en mayúsculas para distinguirlas de
las variables y otros elementos. Esto no significa que durante la descripción
de diseños se tenga que hacer así, de hecho resulta más rápido escribir
siempre en minúsculas.

En primer lugar, sea el tipo de descripción que sea, hay que definir el
símbolo o entidad del circuito. En efecto, lo primero es definir las entradas y
salidas del circuito, es decir, la caja negra que lo define. Se llama entidad
por que la sintaxis de VHDL esta parte se declara con la palabra clave
ENTITY. Esta definición de entidad, que suele ser la primera parte de toda
la descripción VHDL, se expone a continuación:

-- Los comentarios empiezan con dos guiones                                            7

ENTITY mux IS


                                                     Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                            VHDL




PORT (a:           IN bit;B:IN bit;
      C:           IN bit;
      Salida:      OUT bit);

ENDmux;

Ésta porción del lenguaje indica que la entidad mux (que es el nombre
que se le ha dado al circuito) tiene tres entradas de tipo bit y una salida
también de tipo bit. Simplemente indica un línea que puede tomar
valores „0‟ ó „1‟.

La entidad de un circuito es única. Sin embargo, se mostró que un mismo
símbolo, en este caso entidad, podía 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 representación diferente del mismo
circuito. Por ejemplo, puede haber una descripción estructural y otra
comportamental, ambas son descripciones diferentes, pero ambas
corresponden al mismo circuito, símbolo, o entidad. Se muestra a
continuación la descripción comportamental del multiplexor:

ARCHITECTURE comportamental OF mux IS
BEGIN
PROCESS(a,b,selec)
BEGIN
IF (selec='0') THEN
salida<=a;
 ELSE
salida<=b;
END IF;
END PROCESS;
END comportamental;

Más adelante se verá lo que hace un bloque PROCESS, de momento, y
como primera aproximación, se considerará que es una especie de
subrutina cuyas instrucciones se ejecutan secuencialmente cada vez que
                                                                                     8
alguna de las señales de la lista sensible cambia. Esta lista sensible es una
lista de señales que suele poner junto a la palabra clave PROCESS, y en el
caso del ejemplo es (a, b, selec).

                                                   Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                              VHDL




Esta descripción comportamental es muy sencilla de entender, ya que
sigue una estructura parecida            los lenguajes de programación
convencionales. Es por lo que se dice que se trata de una descripción
comportamental algorítmica. Lo que se está indicando es simplemente
que si la señal selec es cero, entonces la salida es la entrada a, y si selec es
uno, entonces la salida es la entrada b. Esta forma tan sencilla de describir
el circuito permite a ciertas herramientas sintetizar el diseño a partir de una
descripción comportamental como la que se acaba de mostrar. La
diferencia con un Netlist es directa: en una descripción comportamental
no se están indicando ni los componentes ni sus interconexiones, sino
simplemente lo que hace, es decir, su comportamiento o funcioamiento.

3.2.2.-Descripcion flujo de datos.- La descripción anterior era puramente
comportamental, de manera que con una secuencia sencilla de
instrucciones se podría describir el circuito. Naturalmente, a veces resulta
más interesante describir el circuito de forma que esté más cercano a una
posible realización física del mismo. En ese sentido VHDL posee una forma
de describir circuitos que además permite la paralelización de
instrucciones, y que se encuentra más cercana a una descripción
estructural del mismo, siendo todavía una descripción funcional. A
continuación se muestran dos ejemplos de una descripción concurrente,
también llamada de flujo de datos o de transferencia entre registros:


ARCHITECTURE flujo1 OF mux IS         END flujo1;
SIGNALnosel,ax,bx:bit;
BEGIN                                 ARCHITECTURE flujo2 OF mux IS
nosel<=NOTselec;                      BEGIN
ax<=a ANDnosel;                       salida<=a WHENselec='0' ELSE
bx<=b ANDselec;                       b;
salida<=ax ORbx;                      END flujo2;
En la descripción de la izquierda hay varias instrucciones todas ellas
concurrentes, es decir, se ejecutan cada vez que cambia alguna de las
señales que intervienen en la asignación. Este primer caso es casi una                 9
descripción estructural, ya que de alguna manera se están describiendo
las señales (cables) y los componentes que la definen; aunque no es

                                                     Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                           VHDL




estructural, ya que en realidad se trata de asignaciones a señales y no una
lista de componentes y conexiones. El segundo caso (derecha) es también
una descripción de flujo de datos, aunque basta una única instrucción de
asignación para definir el circuito.

3.2.3.-Descripción estructural.- Aunque no es la característica más
interesante del VHDL, también permite ser usado como Netlist o lenguaje
de descripción de estructura. En este caso esta estructura también estaría
indicada dentro de un bloque de arquitectura, aunque la sintaxis interna es
completamente diferente:

ARQUITECTURAestructuraOF mux IS
SIGNALax,bx,nosel:bit;
BEGIN
   u0:ENTITYinvPORT MAP(e=>selec,y=>nosel);
   u1:ENTITY and2 PORT MAP(e1=>a,e2=>nosel,y=ax);
u2:ENTITY and2 PORT MAP(b,selec,bx);
u3:ENTITY or2 PORT MAP(e1=>ax,e2=>bx,y=salida);
END estructura;

Se observa fácilmente que esta descripción es un poco más larga u mucho
menos clara que las anteriores. En el cuerpo de la arquitectura se hace lo
que en un Netlist normal, es decir, se ponen los componentes y sus
interconexiones. Para los componentes se utilizarán entidades que estarán
definidas en alguna biblioteca, y para las conexiones se usarán señales
que se declararán al principio de la arquitectura.

  Al igual que ocurre en cualquier netlis, las señales o conexiones deben
tener un nombre. En el esquema se le han puesto nombres a las líneas de
conexión internas al circuito. Estas líneas hay que declararlas como SIGNAL
en el cuerpo de la arquitectura y delante del BEGIN. Una vez declaradas
las señales que intervienen se procede a conectar entre sí las señales y
entidades que representan componentes. Para ello la sintaxis es muy
simple. Lo primero es identificar y poner cada componente, que es lo que
                                                                                    10
comúnmente se conoce como replicación, es decir, asignarle a cada
componente concreto un símbolo. En este ejemplo se le ha llamado u a
cada componente y se le ha añadido un número para distinguirlos, en

                                                  Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                            VHDL




principio el nombre puede ser cualquier identificador válido y la única
condición es que no haya dos nombres iguales. A continuación del
nombre viene la entidad correspondiente al componente, que en este
caso puede ser una and2, una or2 o una puerta inversora inv. Después se
realizan las conexiones poniendo cada señal en su lugar correspondiente
con las palabras PORT MAP. Así los dos primeros argumentos en el caso de
la puerta and2 son las entradas, y el último es la salida. De esta forma tan
simple se va creando el netlisto definición de la estructura.

   3.3.-Sintaxis y semántica básica de VHDL
Los circuitos digitales realizan operaciones (sumas, comparaciones,
cuentas, almacenamiento, etc.) sobre señales digitales utilizando una
combinación de puertas lógicas, registros, memorias y dispositivos de
entrada y salida. VHDL provee varios tipos de datos, operadores y
sentencias para modelar el funcionamiento del circuito lógico y
representar sus señales y componentes.

Una descripción de un circuito en VHDL se hace en dos partes claramente
definidas para separar la interfaz del circuito lógico (entidad) de la
implementación de la función lógica (arquitectura). Toda descripción
circuital en VHDL consta de una única entidad y de una o más
arquitecturas. Puede existir más de una arquitectura para una entidad
porque usualmente es posible definir varias soluciones para una función
lógica.
3.3.1.-Entidad VHDL.-La entidad (ENTITY) es un bloque que define la
configuración de las entradas y salidas del circuito, es decir, especifica
su interfaz o la manera en que el circuito puede ser usado o conectado a
otros circuitos. También sirve para definir parámetros del circuito
(números de bits, límites de cuentas). La sintaxis de una entidad es:




                                                                                     11




                                                   Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                             VHDL




Una entidad puede contener dos secciones: GENERIC y PORT. En la
primera sección podemos colocar parámetros del diseño, y en PORT se
identifican los puertos de interfaz del circuito. Cada puerto es una señal
que tiene nombre (identificador de la señal), modo de conexión y tipo de
dato.

En las descripciones VHDL es indiferente utilizar letras mayúsculas o
minúsculas, a excepción de los valores constantes que usualmente se
deben colocar en mayúsculas. Los comentarios se insertanen cada línea
escribiendo primero dos guiones seguidos (--).

MODOde las señales

Existen cuatro modos de interconexión de las señales con el medio exterior:

IN La señal es una entrada al circuito. No puede ser escrita, es decir, a esta
señal no se le puede asignar un valor, solamente puede ser leída y
utilizada como operando en funciones internas.

OUT Salida únicamente. La señal sale del circuito. A esta señal se le puede
asignar un valor pero no puede ser leída o utilizada como operando en
funciones internas.

INOUT La señal es bidireccional, es decir, de entrada y salida. Puede ser
leída y escrita.
                                                                                      12
BUFFER Salida que puede ser utilizada como operando en el circuito,
es decir, puede formar parte de expresiones para asignar a otras señales
en el circuito.
                                                    Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                                 VHDL




TIPOS DE DATOS

Los tipos de datos utilizados para síntesis en VHDL son INTEGER, BIT,
BIT_VECTOR, STD_LOGIC y STD_LOGIC_VECTOR. Además VHDL provee
operadores y tipos de datos para documentación y simulación tales como
REAL y TIME.

INTEGER Se utiliza con números enteros.

BIT Puede contener '0' ó '1' (se usa comilla simple).

BIT_VECTOR Puede contener un bus, vector o grupo de datos de tipo
           BIT. Las constantes de este tipo se especifican con una
           cadena de ceros y unosencerrados entre comillas dobles
           como en "00101101", "0101", "00".

STD_LOGIC Tiene los valores '0', '1', '–', 'Z' y 5 otros valores más no utilizando
          para síntesis lógica. El valor '–' es de no importa y 'Z' (en
          mayúscula) esvalor de tres estados.

STD_LOGIC_VECTOR El tipo es un bus de datos STD_LOGIC.

Los tipos STD_LOGIC y STD_LOGIC_VECTOR se prefieren en el ámbito
industrial. Para utilizar estos tipos es necesario insertar el paquete
std_logic_1164 de la biblioteca IEEE.

Para manejar buses, grupos de bits, se emplea BIT_VECTOR o
STD_LOGIC_VECTOR. En general, un bus de N bits puede ser declarado de
varias maneras:

BIT_VECTOR(N – 1 DOWNTO 0)
BIT_VECTOR(N DOWNTO 1)
BIT_VECTOR(1 TO N)
BIT_VECTOR(0 TO N – 1)
BIT_VECTOR(10 TO N + 9)
BIT_VECTOR(N + 19 DOWNTO 20)

                                                                                          13




                                                        Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                            VHDL




Ejemplos de entidades

OR de dos entradas de tipo STD_LOGIC (requiere el paquetestd_logic_1164
de la bibliotecaIEEE)




AND de N entradas de tipo BIT. La salida s es la función AND de todos los
bits de la señal a.




Multiplexor de dos canales de cuatro bits cada uno. Las señales a y b son
buses de datos de tipo STD_LOGIC_VECTOR. La señal s es el selector, f es la
salida del multiplexor.




                                                                                     14




                                                   Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                            VHDL




3.3.2.-Arquitectura VHDL.-En la arquitectura se define elfuncionamiento del
circuito lógico declarado en la entidad. Es posiblecrear varias formas de
un circuito lógico y para ello una entidad puede tener asociadas
varias arquitecturas. De este modo podemos tener opciones de diseño
para solucionar un mismo problema.

Su sintaxis básica es:




Las sentencias más utilizadas en la definición de circuitos son la
asignación directa, la asignación selectiva, la asignación condicional, el
proceso y la instanciación de componentes. Estas sentencias son
concurrentes entre sí, es decir, no importa el orden en que aparezcan en la
descripción.

Las señales internas del circuito se declaran en la arquitectura con un
nombre y un tipo de dato.

A continuación se muestran dos versiones de modelado para una función
AND de dos entradas. Una versión emplea datos de tipo BIT y la otra
emplea datos de tipo STD_LOGIC. La salida s se defineen la arquitectura
como el resultado de la operación AND de las entradas a y b. Note
que para asignar a una señal una expresión se utiliza el signo < seguido del
signo =.

                                                                                     15




                                                   Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                            VHDL




And2x con BIT                            And2x con STD_LOGIC




Operadores

Los operadores sirven para realizar las funciones lógicas y aritméticas del
circuito.

Los datos de tipo INTEGER se pueden sumar (+) y restar (-). También es
posible multiplicarlos (*).Los datos   de    tipos    STD_LOGIC      y
STD_LOGIC_VECTOR pueden sumarse y restarse usando paquetes de la
biblioteca IEEE.

Los datos de tipo INTEGER, BIT, BIT_VECTOR, STD_LOGIC y
STD_LOGIC_VECTOR pueden ser comparados con los operadores
relacionales igual (=), diferente (/=), menor (<), menor o igual (<=), mayor
(>), mayor o igual (>=).

Los operadores lógicos son AND, OR, NOT, NAND, NOR y XOR. Se utilizan
con los tipos de datos BIT, BIT_VECTOR, STD_LOGIC y STD_LOGIC_VECTOR.

                                                                                     16




                                                   Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                                 VHDL




Buses

Los buses se utilizan frecuentemente en el diseño digital. Por ejemplo, si f es
una señal interna de un circuito de 3 bits, podríamos declararla en la
arquitectura, antes de BEGIN, como:

                    SIGNAL f: BIT_VECTOR(2 DOWNTO 0);

De esta manera, f es una señal de tres bits con el bit más significativo
identificado como f(2), el bit intermedio como f(1) y el bit menos
significativo como f(0). En el cuerpo de la arquitectura, después de
BEGIN, a f puede asignársele un valor como "110" así:

                                   f <= "110";

Lo que es equivalente a hacer tres asignaciones:

                                   f(0) <= '0';
                                   f(1) <= '1';
                                   f(2) <= '1';

Si queremos agrupar tres señales binarias en una sola señal podemos
utilizar el operador de concatenación &. Así, si se declara:

                         SIGNAL a, b, c: STD_LOGIC;

Entonces la asignación:f <= a & b & c;es equivalente a:

                                   f(2) <= a;
                                   f(1) <= b;
                                   f(0) <= c;

También podemos hacer agrupaciones compuestas. Si r es una señal
de ocho bits y t de 1 bit, podemos agrupar en x algo complejo como:

                             x <= '0' & r & "01" & t;

En este caso x debe haber sido definido como un bus de 1 + 8 + 2 + 1 =
12 bits. Note que los valores constantes de bits van entre comillas                       17
simples ('1', '0') y los valores de buses van entre comillas dobles ("01",
"110").


                                                        Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                    VHDL




4.-Ejemplos aplicativos:

4.1.-Sumador completo




                                                             18




                           Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                      VHDL




4.2.-Flip-Flop JK

Flip-Flop JK activado por flanco positivo:




                                                                               19




                                             Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                               VHDL




4.3.- Descodificador de 7 segmentos




Salidas activas en baja




Salidas activas en alta




                                                                        20




                                      Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                               VHDL




5.-Anexos

Tabla de operadores




                                                        21




                      Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                              VHDL




Herramientas

      Warp

      Altera

      Xilinx

      ActiveVHDL

      GHDL (GNU)

      Max+Plus II

      Quartus II

      ModelSim/ISE

      Otros programas están incluyendo en sus últimas versiones la capacidad
       de programar FPGA usando sus propios lenguajes, pero también incluyen
       módulos en VHDL, por ejemplo Protel DXP, Labview o Matlab.



-Fabricantes de FPGA

      Actel

      Altera - Max Plus II, Quartus II

      Atmel

      Cypress

      Lattice

      QuickLogic

      Xilinx - ISE, Modelsim



                                                                                       22




                                                     Ingeniería Electrónica | UNSAAC
Sistemas digitales II
                                                                                    VHDL




-Fabricantes de herramientas

      Aldec-ActiveVHDL

      GHDL

      IEEE

      IEEE estándar 1164

      Sintaxis de la revisión del 93

      Synplicity. Herramientas de síntesis física y verificación de diseño

      Mentor Graphics. Herramientas de síntesis física, simulación y otras
       relacionadas con diseño microelectrónico, sistemas embebidos, diseño de
       PCB, etc.

6.-Bibliografía

   •   VHDL: Lenguaje para síntesis y modelado de circuitos, Fernando
       Pardo, José A. Boluda.

   •   Tutorial VHDL, Arturo J. Miguel de Priego Paz Soldán.


   •   Diseño Digital con Lógica Programable y Lenguajes de Descripción
       de Hardware, Arturo J. Miguel de Priego Paz Soldán.

   •   Diseño de circuitos digitales con VHDL, Felipe Machado, Susana
       Borromeo.




                                                                                             23




                                                           Ingeniería Electrónica | UNSAAC

Weitere ähnliche Inhalte

Ähnlich wie Vhd(sistemas digitales ii trabajo)

chVhdl univ valencia
chVhdl univ valenciachVhdl univ valencia
chVhdl univ valenciajjebmiz
 
Electrónica digital: VHDL el arte de programar sistemas digitales por David G...
Electrónica digital: VHDL el arte de programar sistemas digitales por David G...Electrónica digital: VHDL el arte de programar sistemas digitales por David G...
Electrónica digital: VHDL el arte de programar sistemas digitales por David G...SANTIAGO PABLO ALBERTO
 
Electrónica digital: Introducción a la programación VHDL
Electrónica digital: Introducción a la programación VHDLElectrónica digital: Introducción a la programación VHDL
Electrónica digital: Introducción a la programación VHDLSANTIAGO PABLO ALBERTO
 
Hdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwareHdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwarelorena
 
Hdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwareHdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwarelorena
 
Hdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwareHdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwarelorena
 
Unidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JPUnidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JPJhonatan Pat
 
Manual De DISEÑO DIGITAL CON VHDL
Manual De DISEÑO DIGITAL CON VHDLManual De DISEÑO DIGITAL CON VHDL
Manual De DISEÑO DIGITAL CON VHDLHector Blanco
 
Electrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDLElectrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDLSANTIAGO PABLO ALBERTO
 
Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Juan Franco
 
APLICACIONES DE LA TARJETA XILINX 2S200E
APLICACIONES DE LA TARJETA XILINX 2S200EAPLICACIONES DE LA TARJETA XILINX 2S200E
APLICACIONES DE LA TARJETA XILINX 2S200ERafael Garcia
 
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...SANTIAGO PABLO ALBERTO
 
Presentación Proyecto de Grado: X-ISCKER
Presentación Proyecto de Grado: X-ISCKERPresentación Proyecto de Grado: X-ISCKER
Presentación Proyecto de Grado: X-ISCKERJose Pinilla
 
Arquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasArquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasTensor
 

Ähnlich wie Vhd(sistemas digitales ii trabajo) (20)

intro_VHDL.pdf
intro_VHDL.pdfintro_VHDL.pdf
intro_VHDL.pdf
 
Intro vhdl
Intro vhdlIntro vhdl
Intro vhdl
 
chVhdl univ valencia
chVhdl univ valenciachVhdl univ valencia
chVhdl univ valencia
 
Curso de vhdl
Curso de vhdl Curso de vhdl
Curso de vhdl
 
Unidad3
Unidad3Unidad3
Unidad3
 
Electrónica digital: VHDL el arte de programar sistemas digitales por David G...
Electrónica digital: VHDL el arte de programar sistemas digitales por David G...Electrónica digital: VHDL el arte de programar sistemas digitales por David G...
Electrónica digital: VHDL el arte de programar sistemas digitales por David G...
 
Electrónica digital: Introducción a la programación VHDL
Electrónica digital: Introducción a la programación VHDLElectrónica digital: Introducción a la programación VHDL
Electrónica digital: Introducción a la programación VHDL
 
Hdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwareHdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardware
 
Hdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwareHdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardware
 
Hdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwareHdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardware
 
Unidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JPUnidad 4 lenguaje hdl ISC J3 - A JP
Unidad 4 lenguaje hdl ISC J3 - A JP
 
Electrónica digital: Apuntes de VHDL
Electrónica digital: Apuntes de VHDLElectrónica digital: Apuntes de VHDL
Electrónica digital: Apuntes de VHDL
 
Introduccion eda
Introduccion edaIntroduccion eda
Introduccion eda
 
Manual De DISEÑO DIGITAL CON VHDL
Manual De DISEÑO DIGITAL CON VHDLManual De DISEÑO DIGITAL CON VHDL
Manual De DISEÑO DIGITAL CON VHDL
 
Electrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDLElectrónica digital: Lenguaje descripción de hardware VHDL
Electrónica digital: Lenguaje descripción de hardware VHDL
 
Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.
 
APLICACIONES DE LA TARJETA XILINX 2S200E
APLICACIONES DE LA TARJETA XILINX 2S200EAPLICACIONES DE LA TARJETA XILINX 2S200E
APLICACIONES DE LA TARJETA XILINX 2S200E
 
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...
 
Presentación Proyecto de Grado: X-ISCKER
Presentación Proyecto de Grado: X-ISCKERPresentación Proyecto de Grado: X-ISCKER
Presentación Proyecto de Grado: X-ISCKER
 
Arquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasArquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadas
 

Vhd(sistemas digitales ii trabajo)

  • 1. Sistemas digitales II VHDL INDICE 1.-Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.-Brebe reseña histórica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.-Definiciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.-HDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.-VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.1.-Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.2.-Ventajas y limitaciones .......................... 5 3.-Lenguaje VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.-Aspectos generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.-Estilos de descripción en VHDL . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.1.-Descripción algorítmica . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.2.-Descripcion flujo de datos ......................9 3.2.3.-Descripción estructural . . . . . . . . . . . . . . . . . . . . . . . . . .10 3.3.-Sintaxis y semántica básica de VHDL . . . . . . . . . . . . . . . . . .11 3.3.1.-Entidad VHDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 3.3.2.-Arquitectura VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 4.-Ejemplos aplicativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 4.1.-Sumador completo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2.-Flip-Flop JK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3.- Descodificador de 7 segmentos . . . . . . . . . . . . . . . . . . . 20 5.-Anexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 1 6.-Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Ingeniería Electrónica | UNSAAC
  • 2. Sistemas digitales II VHDL I.-Introducción Breve reseña histórica A mediados de los años sesenta se produce una fuerte evolución en los procesos de fabricación de los circuitos integrados, y junto a las tecnologías bipolares, surgen la MOS, principalmente la NMOS, promoviendo el desarrollo de circuitos digitales hasta la primera mitad de los ochenta. En aquellas épocas, el esfuerzo de diseño se concentraba en los niveles eléctricos de establecer características e interconexiones entre los componentes básicos a nivel de transistor. El proceso de diseño era altamente manual y tan solo se empleaban herramientas como el PSPICE, para la simulación de esquemas eléctricos con modelos previamente personalizados, a las distintas tecnologías. A medida que pasaban los años, los procesos tecnológicos se hacían más y más complejos. Los problemas de integración iban en aumento y los diseños eran cada vez más difíciles de depurar y de dar mantenimiento. Inicialmente los circuitos M.S.I.y L.S.I. se diseñaron medianamente la realización de prototipos basados en módulos más sencillos. Cada uno de estos módulos estaba formado por puertas ya probadas, este método poco a poco, iba quedándose obsoleto. En ese momento (finales de los años sesenta) se constata el enorme desfase entre tecnología y diseño. La considerable complejidad de los chips que se pueden fabricar, implica unos riesgos y costes de diseño desmesurados e imposibles de asumir por las empresas. Es entonces, cuando diversos grupos de investigadores empiezan a crear y desarrollar los llamados “lenguajes de descripción de hardware” con sus características diferentes. Empresas tales como IBM con su IDL, el TI-HDL de Texas Instruments, ZEUS de General Electric, etc., así como los primeros prototipos empleados en las universidades, empezaron a desarrollarse buscando una solución a los 2 problemas que presentaba el diseño de los complejos sistemas. Ingeniería Electrónica | UNSAAC
  • 3. Sistemas digitales II VHDL Sin embargo, estos lenguajes nunca alcanzaron el nivel de difusión y consolidación necesarias por motivos distintos. Unos, los industriales, por ser propiedad de la empresa permanecieron encerrados en ellas y no estuvieron disponibles para su estandarización y mayor difusión, los otros, los universitarios, perecieron por no disponer de soporte ni mantenimiento adecuado. Alrededor de 1981 el departamento de Defensa de los Estados Unidos desarrolla un proyecto llamado VHSIC (Very High SpeedIntegratedCircuit) su objetivo era rentabilizar las inversiones en hardware haciendo más sencillo su mantenimiento. Se pretendía con ello resolver el problema de modificar el hardware diseñado en un proyecto para utilizarlo en otro, lo que no era posible hasta entonces porque no existía una herramienta adecuada que armonizarse y normalizarse dicha tarea, era el momento de los HDL‟s. VHDL vs M.S.I. En 1983, IBM, Intemetricsy Texas Istruments empezaron a trabajar en el desarrollo de un lenguaje de diseño que permitiera la estandarización, facilitando con ello, el mantenimiento de los diseños y la depuración de los algoritmos, para ello el IEEE propuso su estándar en 1984. Tras varias versiones llevadas a cabo con la colaboración de la industria y de las universidades, que constituyeron a posteriori etapas intermedias en el desarrollo del lenguaje. El IEEE adoptó en diciembre de 1987 a VHDL como su lenguaje HDL, dando un impulso a éste frente a sus competidores. El estándar IEEE std 1076-1987 que constituyó el punto firme de partida de lo que después de cinco años sería ratificado como VHDL. La independencia en la metodología de diseño, en el proceso de fabricación, su versatilidad para la fabricación de sistemas de complejas, su posibilidad de reutilización, han hecho que VHDL se convierta con el paso del tiempo en el lenguaje de descripción de hardware por excelencia. 3 Ingeniería Electrónica | UNSAAC
  • 4. Sistemas digitales II VHDL II.-Definiciones 2.1.-HDL.-Los lenguajes de descripción hardware (HDLs, Hardware DescriptionLanguages) permiten modelar sistemas digitales completos.Mediante herramientas de software estos modelos pueden luego “sintetizarse” para implementarlos como circuitos reales.La utilización de HDLs y su posterior síntesis pueden tener como objetivo la creación de un circuito integrado de propósito específico (ASICs) o la implementación del circuito en algún dispositivo de lógica programable (PLD‟s). Al utilizar un HDL es importante tener en cuenta que se está modelando hardware, y no escribiendo software.Existen varios HDLs pero dos son los que predominan: Verilog y VHDL. 2.2.-VHDL 2.2.1.-Definición.- El significado de las siglas VHDL es VHSIC (Very High SpeedIntegratedCircuit) Hardware DescriptionLanguage, es decir, lenguaje de descripción hardware de circuitos integrados de muy alta velocidad. VHDL es un lenguaje de descripción y modelado, diseñado para describir, es una forma en que los humanos y máquinas puedan leer y entender la funcionalidad y la organización de sistemas hardware digitales, placas de circuitos y componentes. VHDL fue diseñado como un lenguaje para el modelado y simulación lógica dirigida por eventos de sistemas digitales, y actualmente se utiliza también para síntesis automática de circuitos. VHDL es un lenguaje con una sintaxis amplia y flexible que permite el modelado estructural, en flujo de datos y de comportamiento de hardware. VHDL permite el modelado preciso, en distintos estilos, del comportamiento de un sistema digital conocido y desarrollado en modelos de simulación. Uno de los objetivos del lenguaje VHDL es el modelado. Modelado es 4 el desarrollo de un modelo para la simulación de un circuito o Ingeniería Electrónica | UNSAAC
  • 5. Sistemas digitales II VHDL sistema previamente implementado cuyo comportamiento, por tanto, se conoce. El objetivo de modelado es la simulación. 2.2.2.-Ventajas y limitaciones.-La síntesis a partir de VHDL constituye hoy en día una de las principales aplicaciones del lenguaje con una demanda de uso. Las herramientas de síntesis basadas en el lenguaje permiten en la actualidad ganancias importantes en la productividad de diseño. Algunas ventajas del uso de VHDL para la descripción de hardware son: VHDL permite diseñar, modelar y comprobar un sistema desde un alto nivel de abstracción bajando hasta el nivel de definición estructural de puertas. Circuitos descritos utilizando VHDL, siguiendo unas guías para síntesis, pueden ser utilizados por diversas herramientas de síntesis para crear e implementar circuitos. Los módulos creados en VHDL pueden utilizarse en diferentes diseños, lo que permite la reutilización del código. Además, la misma descripción puede utilizarse para diferentes tecnologías sin tener que rediseñar todo el circuito. Al estar basado en un estándar (IEEE std 1076-1987, IEEE std 1076-1993) los ingenieros de toda la industria de diseño pueden usar este lenguaje para minimizar errores de comunicación y problemas de compatibilidad. VHDL permite diseño Top-Down, esto es, describir (modelar) el comportamiento de los bloques de alto nivel, analizarlos (simularlos) y refinar su funcionalidad en alto nivel requerida antes de llegar a niveles más bajos de abstracción de la implementación del diseño. Modularidad: VHDL permite dividir o descomponer un diseño hardware y su descripción VHDL en unidades más pequeñas. Alguna de las limitaciones que presenta el uso de VHDL son: No permite describir sistemas analógicos. Sin embargo ya se 5 están desarrollando versiones analógicas y mixtas. Ingeniería Electrónica | UNSAAC
  • 6. Sistemas digitales II VHDL No existe un estilo de descripción normalizado. Para síntesis se requiere ajustar los estilos disponibles a la capacidad de herramientas CAD. Es posible sintetizar lógica solo de un subconjunto del lenguaje. Las herramientas de síntesis no soportan los mismos subconjuntos, y existen a veces diferencias al mudar de herramientas. 3.-Lenguaje VHDL 3.1.-Aspectos generales El VHDL va a ser interesante puesto que va a permitir dos tipos de descripciones: Estructura:VHDL puede ser usado como un lenguaje de netlistnormal y corriente y corriente donde se especifican por un lado los componentes del sistema y por otro sus conexiones. Comportamiento: VHDL también se puede utilizar para la descripción comportamental o funcional de un circuito. Esto es lo que distingue de un lenguaje de Netlist. Esto es especialmente útil en simulación, ya que permite simular un sistema sin conocer su estructura interna. Muchas veces la descripción comportamental se divide a su vez en dos, dependiendo del nivel de abstracción y del modo en que se ejecutan las instrucciones. Estas dos formas comportamentales de describir circuitos son las de flujo de datos y algorítmica. 3.2.-Estilos de descripción en VHDL VHDL presenta tres estilos de descripción de circuitos dependiendo del nivel de abstracción. El menos abstracto es una descripción puramente estructural. Los otros dos estilos representan una descripción comportamental o funcional, y la diferencia viene de la utilización o no de la ejecución serie. 6 Mediante un sencillo ejemplo, que además sirve para ilustrar la forma en que se escriben descripciones en VHDL, se van a mostrar estos tres estilos de descripción. Ingeniería Electrónica | UNSAAC
  • 7. Sistemas digitales II VHDL Ejemplo 3.1Describir en VHDL un circuito que multiplexe dos líneas de entrada (a y b)de un bit, a una sola línea (salida) también de un bit; la señal selec sirve para seleccionar la línea a(selec=’0’) o b(selec=’1’). En la fig. 6 se muestra el circuito implementado con puertas lógicas que realiza la función de multiplexación. Fig. 6 Ejemplo básico de un esquema en VHDL 3.2.1.-Descripción algorítmica La sintaxis del VHDL no es sensible a mayúsculas, por lo que se puede describir como se prefiera. A lo largo de las explicaciones se pondrán siempre las palabras clave del lenguaje en mayúsculas para distinguirlas de las variables y otros elementos. Esto no significa que durante la descripción de diseños se tenga que hacer así, de hecho resulta más rápido escribir siempre en minúsculas. En primer lugar, sea el tipo de descripción que sea, hay que definir el símbolo o entidad del circuito. En efecto, lo primero es definir las entradas y salidas del circuito, es decir, la caja negra que lo define. Se llama entidad por que la sintaxis de VHDL esta parte se declara con la palabra clave ENTITY. Esta definición de entidad, que suele ser la primera parte de toda la descripción VHDL, se expone a continuación: -- Los comentarios empiezan con dos guiones 7 ENTITY mux IS Ingeniería Electrónica | UNSAAC
  • 8. Sistemas digitales II VHDL PORT (a: IN bit;B:IN bit; C: IN bit; Salida: OUT bit); ENDmux; Ésta porción del lenguaje indica que la entidad mux (que es el nombre que se le ha dado al circuito) tiene tres entradas de tipo bit y una salida también de tipo bit. Simplemente indica un línea que puede tomar valores „0‟ ó „1‟. La entidad de un circuito es única. Sin embargo, se mostró que un mismo símbolo, en este caso entidad, podía 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 representación diferente del mismo circuito. Por ejemplo, puede haber una descripción estructural y otra comportamental, ambas son descripciones diferentes, pero ambas corresponden al mismo circuito, símbolo, o entidad. Se muestra a continuación la descripción comportamental del multiplexor: ARCHITECTURE comportamental OF mux IS BEGIN PROCESS(a,b,selec) BEGIN IF (selec='0') THEN salida<=a; ELSE salida<=b; END IF; END PROCESS; END comportamental; Más adelante se verá lo que hace un bloque PROCESS, de momento, y como primera aproximación, se considerará que es una especie de subrutina cuyas instrucciones se ejecutan secuencialmente cada vez que 8 alguna de las señales de la lista sensible cambia. Esta lista sensible es una lista de señales que suele poner junto a la palabra clave PROCESS, y en el caso del ejemplo es (a, b, selec). Ingeniería Electrónica | UNSAAC
  • 9. Sistemas digitales II VHDL Esta descripción comportamental es muy sencilla de entender, ya que sigue una estructura parecida los lenguajes de programación convencionales. Es por lo que se dice que se trata de una descripción comportamental algorítmica. Lo que se está indicando es simplemente que si la señal selec es cero, entonces la salida es la entrada a, y si selec es uno, entonces la salida es la entrada b. Esta forma tan sencilla de describir el circuito permite a ciertas herramientas sintetizar el diseño a partir de una descripción comportamental como la que se acaba de mostrar. La diferencia con un Netlist es directa: en una descripción comportamental no se están indicando ni los componentes ni sus interconexiones, sino simplemente lo que hace, es decir, su comportamiento o funcioamiento. 3.2.2.-Descripcion flujo de datos.- La descripción anterior era puramente comportamental, de manera que con una secuencia sencilla de instrucciones se podría describir el circuito. Naturalmente, a veces resulta más interesante describir el circuito de forma que esté más cercano a una posible realización física del mismo. En ese sentido VHDL posee una forma de describir circuitos que además permite la paralelización de instrucciones, y que se encuentra más cercana a una descripción estructural del mismo, siendo todavía una descripción funcional. A continuación se muestran dos ejemplos de una descripción concurrente, también llamada de flujo de datos o de transferencia entre registros: ARCHITECTURE flujo1 OF mux IS END flujo1; SIGNALnosel,ax,bx:bit; BEGIN ARCHITECTURE flujo2 OF mux IS nosel<=NOTselec; BEGIN ax<=a ANDnosel; salida<=a WHENselec='0' ELSE bx<=b ANDselec; b; salida<=ax ORbx; END flujo2; En la descripción de la izquierda hay varias instrucciones todas ellas concurrentes, es decir, se ejecutan cada vez que cambia alguna de las señales que intervienen en la asignación. Este primer caso es casi una 9 descripción estructural, ya que de alguna manera se están describiendo las señales (cables) y los componentes que la definen; aunque no es Ingeniería Electrónica | UNSAAC
  • 10. Sistemas digitales II VHDL estructural, ya que en realidad se trata de asignaciones a señales y no una lista de componentes y conexiones. El segundo caso (derecha) es también una descripción de flujo de datos, aunque basta una única instrucción de asignación para definir el circuito. 3.2.3.-Descripción estructural.- Aunque no es la característica más interesante del VHDL, también permite ser usado como Netlist o lenguaje de descripción de estructura. En este caso esta estructura también estaría indicada dentro de un bloque de arquitectura, aunque la sintaxis interna es completamente diferente: ARQUITECTURAestructuraOF mux IS SIGNALax,bx,nosel:bit; BEGIN u0:ENTITYinvPORT MAP(e=>selec,y=>nosel); u1:ENTITY and2 PORT MAP(e1=>a,e2=>nosel,y=ax); u2:ENTITY and2 PORT MAP(b,selec,bx); u3:ENTITY or2 PORT MAP(e1=>ax,e2=>bx,y=salida); END estructura; Se observa fácilmente que esta descripción es un poco más larga u mucho menos clara que las anteriores. En el cuerpo de la arquitectura se hace lo que en un Netlist normal, es decir, se ponen los componentes y sus interconexiones. Para los componentes se utilizarán entidades que estarán definidas en alguna biblioteca, y para las conexiones se usarán señales que se declararán al principio de la arquitectura. Al igual que ocurre en cualquier netlis, las señales o conexiones deben tener un nombre. En el esquema se le han puesto nombres a las líneas de conexión internas al circuito. Estas líneas hay que declararlas como SIGNAL en el cuerpo de la arquitectura y delante del BEGIN. Una vez declaradas las señales que intervienen se procede a conectar entre sí las señales y entidades que representan componentes. Para ello la sintaxis es muy simple. Lo primero es identificar y poner cada componente, que es lo que 10 comúnmente se conoce como replicación, es decir, asignarle a cada componente concreto un símbolo. En este ejemplo se le ha llamado u a cada componente y se le ha añadido un número para distinguirlos, en Ingeniería Electrónica | UNSAAC
  • 11. Sistemas digitales II VHDL principio el nombre puede ser cualquier identificador válido y la única condición es que no haya dos nombres iguales. A continuación del nombre viene la entidad correspondiente al componente, que en este caso puede ser una and2, una or2 o una puerta inversora inv. Después se realizan las conexiones poniendo cada señal en su lugar correspondiente con las palabras PORT MAP. Así los dos primeros argumentos en el caso de la puerta and2 son las entradas, y el último es la salida. De esta forma tan simple se va creando el netlisto definición de la estructura. 3.3.-Sintaxis y semántica básica de VHDL Los circuitos digitales realizan operaciones (sumas, comparaciones, cuentas, almacenamiento, etc.) sobre señales digitales utilizando una combinación de puertas lógicas, registros, memorias y dispositivos de entrada y salida. VHDL provee varios tipos de datos, operadores y sentencias para modelar el funcionamiento del circuito lógico y representar sus señales y componentes. Una descripción de un circuito en VHDL se hace en dos partes claramente definidas para separar la interfaz del circuito lógico (entidad) de la implementación de la función lógica (arquitectura). Toda descripción circuital en VHDL consta de una única entidad y de una o más arquitecturas. Puede existir más de una arquitectura para una entidad porque usualmente es posible definir varias soluciones para una función lógica. 3.3.1.-Entidad VHDL.-La entidad (ENTITY) es un bloque que define la configuración de las entradas y salidas del circuito, es decir, especifica su interfaz o la manera en que el circuito puede ser usado o conectado a otros circuitos. También sirve para definir parámetros del circuito (números de bits, límites de cuentas). La sintaxis de una entidad es: 11 Ingeniería Electrónica | UNSAAC
  • 12. Sistemas digitales II VHDL Una entidad puede contener dos secciones: GENERIC y PORT. En la primera sección podemos colocar parámetros del diseño, y en PORT se identifican los puertos de interfaz del circuito. Cada puerto es una señal que tiene nombre (identificador de la señal), modo de conexión y tipo de dato. En las descripciones VHDL es indiferente utilizar letras mayúsculas o minúsculas, a excepción de los valores constantes que usualmente se deben colocar en mayúsculas. Los comentarios se insertanen cada línea escribiendo primero dos guiones seguidos (--). MODOde las señales Existen cuatro modos de interconexión de las señales con el medio exterior: IN La señal es una entrada al circuito. No puede ser escrita, es decir, a esta señal no se le puede asignar un valor, solamente puede ser leída y utilizada como operando en funciones internas. OUT Salida únicamente. La señal sale del circuito. A esta señal se le puede asignar un valor pero no puede ser leída o utilizada como operando en funciones internas. INOUT La señal es bidireccional, es decir, de entrada y salida. Puede ser leída y escrita. 12 BUFFER Salida que puede ser utilizada como operando en el circuito, es decir, puede formar parte de expresiones para asignar a otras señales en el circuito. Ingeniería Electrónica | UNSAAC
  • 13. Sistemas digitales II VHDL TIPOS DE DATOS Los tipos de datos utilizados para síntesis en VHDL son INTEGER, BIT, BIT_VECTOR, STD_LOGIC y STD_LOGIC_VECTOR. Además VHDL provee operadores y tipos de datos para documentación y simulación tales como REAL y TIME. INTEGER Se utiliza con números enteros. BIT Puede contener '0' ó '1' (se usa comilla simple). BIT_VECTOR Puede contener un bus, vector o grupo de datos de tipo BIT. Las constantes de este tipo se especifican con una cadena de ceros y unosencerrados entre comillas dobles como en "00101101", "0101", "00". STD_LOGIC Tiene los valores '0', '1', '–', 'Z' y 5 otros valores más no utilizando para síntesis lógica. El valor '–' es de no importa y 'Z' (en mayúscula) esvalor de tres estados. STD_LOGIC_VECTOR El tipo es un bus de datos STD_LOGIC. Los tipos STD_LOGIC y STD_LOGIC_VECTOR se prefieren en el ámbito industrial. Para utilizar estos tipos es necesario insertar el paquete std_logic_1164 de la biblioteca IEEE. Para manejar buses, grupos de bits, se emplea BIT_VECTOR o STD_LOGIC_VECTOR. En general, un bus de N bits puede ser declarado de varias maneras: BIT_VECTOR(N – 1 DOWNTO 0) BIT_VECTOR(N DOWNTO 1) BIT_VECTOR(1 TO N) BIT_VECTOR(0 TO N – 1) BIT_VECTOR(10 TO N + 9) BIT_VECTOR(N + 19 DOWNTO 20) 13 Ingeniería Electrónica | UNSAAC
  • 14. Sistemas digitales II VHDL Ejemplos de entidades OR de dos entradas de tipo STD_LOGIC (requiere el paquetestd_logic_1164 de la bibliotecaIEEE) AND de N entradas de tipo BIT. La salida s es la función AND de todos los bits de la señal a. Multiplexor de dos canales de cuatro bits cada uno. Las señales a y b son buses de datos de tipo STD_LOGIC_VECTOR. La señal s es el selector, f es la salida del multiplexor. 14 Ingeniería Electrónica | UNSAAC
  • 15. Sistemas digitales II VHDL 3.3.2.-Arquitectura VHDL.-En la arquitectura se define elfuncionamiento del circuito lógico declarado en la entidad. Es posiblecrear varias formas de un circuito lógico y para ello una entidad puede tener asociadas varias arquitecturas. De este modo podemos tener opciones de diseño para solucionar un mismo problema. Su sintaxis básica es: Las sentencias más utilizadas en la definición de circuitos son la asignación directa, la asignación selectiva, la asignación condicional, el proceso y la instanciación de componentes. Estas sentencias son concurrentes entre sí, es decir, no importa el orden en que aparezcan en la descripción. Las señales internas del circuito se declaran en la arquitectura con un nombre y un tipo de dato. A continuación se muestran dos versiones de modelado para una función AND de dos entradas. Una versión emplea datos de tipo BIT y la otra emplea datos de tipo STD_LOGIC. La salida s se defineen la arquitectura como el resultado de la operación AND de las entradas a y b. Note que para asignar a una señal una expresión se utiliza el signo < seguido del signo =. 15 Ingeniería Electrónica | UNSAAC
  • 16. Sistemas digitales II VHDL And2x con BIT And2x con STD_LOGIC Operadores Los operadores sirven para realizar las funciones lógicas y aritméticas del circuito. Los datos de tipo INTEGER se pueden sumar (+) y restar (-). También es posible multiplicarlos (*).Los datos de tipos STD_LOGIC y STD_LOGIC_VECTOR pueden sumarse y restarse usando paquetes de la biblioteca IEEE. Los datos de tipo INTEGER, BIT, BIT_VECTOR, STD_LOGIC y STD_LOGIC_VECTOR pueden ser comparados con los operadores relacionales igual (=), diferente (/=), menor (<), menor o igual (<=), mayor (>), mayor o igual (>=). Los operadores lógicos son AND, OR, NOT, NAND, NOR y XOR. Se utilizan con los tipos de datos BIT, BIT_VECTOR, STD_LOGIC y STD_LOGIC_VECTOR. 16 Ingeniería Electrónica | UNSAAC
  • 17. Sistemas digitales II VHDL Buses Los buses se utilizan frecuentemente en el diseño digital. Por ejemplo, si f es una señal interna de un circuito de 3 bits, podríamos declararla en la arquitectura, antes de BEGIN, como: SIGNAL f: BIT_VECTOR(2 DOWNTO 0); De esta manera, f es una señal de tres bits con el bit más significativo identificado como f(2), el bit intermedio como f(1) y el bit menos significativo como f(0). En el cuerpo de la arquitectura, después de BEGIN, a f puede asignársele un valor como "110" así: f <= "110"; Lo que es equivalente a hacer tres asignaciones: f(0) <= '0'; f(1) <= '1'; f(2) <= '1'; Si queremos agrupar tres señales binarias en una sola señal podemos utilizar el operador de concatenación &. Así, si se declara: SIGNAL a, b, c: STD_LOGIC; Entonces la asignación:f <= a & b & c;es equivalente a: f(2) <= a; f(1) <= b; f(0) <= c; También podemos hacer agrupaciones compuestas. Si r es una señal de ocho bits y t de 1 bit, podemos agrupar en x algo complejo como: x <= '0' & r & "01" & t; En este caso x debe haber sido definido como un bus de 1 + 8 + 2 + 1 = 12 bits. Note que los valores constantes de bits van entre comillas 17 simples ('1', '0') y los valores de buses van entre comillas dobles ("01", "110"). Ingeniería Electrónica | UNSAAC
  • 18. Sistemas digitales II VHDL 4.-Ejemplos aplicativos: 4.1.-Sumador completo 18 Ingeniería Electrónica | UNSAAC
  • 19. Sistemas digitales II VHDL 4.2.-Flip-Flop JK Flip-Flop JK activado por flanco positivo: 19 Ingeniería Electrónica | UNSAAC
  • 20. Sistemas digitales II VHDL 4.3.- Descodificador de 7 segmentos Salidas activas en baja Salidas activas en alta 20 Ingeniería Electrónica | UNSAAC
  • 21. Sistemas digitales II VHDL 5.-Anexos Tabla de operadores 21 Ingeniería Electrónica | UNSAAC
  • 22. Sistemas digitales II VHDL Herramientas  Warp  Altera  Xilinx  ActiveVHDL  GHDL (GNU)  Max+Plus II  Quartus II  ModelSim/ISE  Otros programas están incluyendo en sus últimas versiones la capacidad de programar FPGA usando sus propios lenguajes, pero también incluyen módulos en VHDL, por ejemplo Protel DXP, Labview o Matlab. -Fabricantes de FPGA  Actel  Altera - Max Plus II, Quartus II  Atmel  Cypress  Lattice  QuickLogic  Xilinx - ISE, Modelsim 22 Ingeniería Electrónica | UNSAAC
  • 23. Sistemas digitales II VHDL -Fabricantes de herramientas  Aldec-ActiveVHDL  GHDL  IEEE  IEEE estándar 1164  Sintaxis de la revisión del 93  Synplicity. Herramientas de síntesis física y verificación de diseño  Mentor Graphics. Herramientas de síntesis física, simulación y otras relacionadas con diseño microelectrónico, sistemas embebidos, diseño de PCB, etc. 6.-Bibliografía • VHDL: Lenguaje para síntesis y modelado de circuitos, Fernando Pardo, José A. Boluda. • Tutorial VHDL, Arturo J. Miguel de Priego Paz Soldán. • Diseño Digital con Lógica Programable y Lenguajes de Descripción de Hardware, Arturo J. Miguel de Priego Paz Soldán. • Diseño de circuitos digitales con VHDL, Felipe Machado, Susana Borromeo. 23 Ingeniería Electrónica | UNSAAC