introduccion al lenguaje vhdl

32
UNIVERSIDAD DE EL SALVADOR | FACULTAD DE INGENIERIA Y ARQUITECTURA INTRODUCCIÓN AL LENGUAJE VHDL Sistemas Digitales I CATEDRÁTICO: Ing. Salvador German INSTRUCTOR: Juan Albiñana PRESENTADO POR: Cruz Pérez, Francisco Javier CP09042 Segovia Salazar, Mario Alejandro SS12008 FECHA DE ENTREGA: Martes 25 de marzo de 2014

Upload: emanuel-quintanilla-portillo

Post on 13-Apr-2016

101 views

Category:

Documents


0 download

DESCRIPTION

Introduccion y desarrollo de aplicaciones usando el lenguaje VHDL.

TRANSCRIPT

Page 1: Introduccion al Lenguaje VHDL

UNIVERSIDAD DE EL SALVADOR | FACULTAD DE INGENIERIA Y ARQUITECTURA

INTRODUCCIÓN AL LENGUAJE VHDL

Sistemas Digitales I

CATEDRÁTICO: Ing. Salvador German

INSTRUCTOR: Juan Albiñana

PRESENTADO POR:

Cruz Pérez, Francisco Javier CP09042

Segovia Salazar, Mario Alejandro SS12008

FECHA DE ENTREGA: Martes 25 de marzo de 2014

Page 2: Introduccion al Lenguaje VHDL

Tabla de Contenido Introducción ........................................................................................................................................ 2

Objetivos ............................................................................................................................................. 3

Instalación del programa en Microsoft Windows ............................................................................... 4

Marco Teórico ................................................................................................................................... 10

Realizar el código VHDL para las compuertas: AND, NAND, OR, NOR, EXOR y NOT, simular en TINA

y VHDL ............................................................................................................................................... 12

Compuerta AND ............................................................................................................................ 12

Compuerta NAND .......................................................................................................................... 13

Compuerta OR ............................................................................................................................... 13

Compuerta NOR ............................................................................................................................ 14

Compuerta EXOR ........................................................................................................................... 15

Compuerta NOT ............................................................................................................................ 15

Ejercicio 1 : Realizar el código VHDL para el ejemplo 2.35 del libro. ................................................ 17

Ejercicio 2: Realizar el código VHDL para el problema 2.35 del final del capítulo. ........................... 18

Ejercicio 3: Circuito 3: “Un automóvil a prueba de choques” ........................................................... 19

Respuestas a las preguntas de investigación .................................................................................... 22

Uso y sintaxis de las instrucciones IF… THEN. ............................................................................... 22

Uso y sintaxis de la instrucciones CASE… WHEN........................................................................... 22

Uso de las instrucciones anteriores para implementar el código VHDL directamente desde las

tablas de verdad. ........................................................................................................................... 24

Ejercicio 1 .................................................................................................................................. 24

Ejercicio 2 .................................................................................................................................. 24

Tipos de datos de entrada y salida que soporta VHDL. ................................................................ 25

Cómo se crean arreglos en VHDL? ................................................................................................ 27

Cómo declarar un componente en VHDL? .................................................................................... 27

¿Cuáles son los operadores en VHDL? .......................................................................................... 28

Conclusiones ..................................................................................................................................... 30

Bibliografía ........................................................................................................................................ 31

Page 3: Introduccion al Lenguaje VHDL

2

Introducción

Con el paso de los años el ser humano ha adquirido y desarrollado conocimientos que le han llevado a posicionarse en la era digital, pues podemos ver que muchos objetos que antes utilizaban mucho espacio debido a sus componentes electrónicos hoy en día se han convertido en objetos de menor tamaño, pero ¿A qué se debe esto? La respuesta está a la palma de la mano como también en la palma de la mano podemos tener unos circuitos digitales que han venido a sustituir grandes circuitos, contribuyendo así a poder estar más digitalizados, pero ¿Cómo se realizan estos circuitos?, hay diferentes lenguajes de programación que son utilizados para desarrollar códigos para simular circuitos usados en estos nuevos artefactos, como ejemplo tendremos el lenguaje VHDL que utilizaremos para la implementación de códigos que simulen las compuertas lógicas y así poder implementarlas a un circuito que lo podemos usar en un juguete, los códigos de programación y los diferentes lenguajes nos ayudan a poder corregir errores antes de la implementación de los circuitos encargados muchas veces de procesos que son muy precisos. En este reporte se usan las compuertas lógicas más conocidas pues en base a ellas del cual surgen los demás circuitos e incluso la unión de estas para formar circuitos más complejos.

Page 4: Introduccion al Lenguaje VHDL

3

Objetivos

Usar de manera eficiente la sintaxis básicas de VHDL en Maxi Plus.

Resolver ejercicios propuestos usando la misma sintaxis.

Dar conclusiones de las posibles aplicaciones de los ejercicios propuestos en la vida

cotidiana.

Reconocer la importancia e influencia que ha tenido este lenguaje de programación en la

actualidad.

Enseñar al lector la instalación de una manera rápida del programa a utilizar en este

trabajo.

Page 5: Introduccion al Lenguaje VHDL

4

Instalación del programa en Microsoft Windows 1. Vamos al siguiente link: https://www.altera.com/download/legacy/maxplus2/dnl-

student.jsp?swcode=WWW-SWD-MP2-SE102-PC y nos aparecerá lo siguiente. Damos click

a la descarga. La página pedirá un registro de usuario, proceder con eso y seguir con la

descarga.

2. Esperar a que se descargue y abrir el instalador:

Page 6: Introduccion al Lenguaje VHDL

5

3. Damos a Next: a todo lo que aparezca después d esta primer ventana:

4. Aquí ponemos cualquier cosa

Page 7: Introduccion al Lenguaje VHDL

6

5. Elegimos todo los componentes y damos siguiente:

6. Esperamos a que se instale. CUANDO ESTA VENTANA CIERRE EL PROGRAMA SE HABRA

INSTALADO CORRECTAMENTE. IMPORTANTE, DESPUES DE ESTO “NO” ABRIR POR QUE SE

TIENE QUE INSTALAR LA LICENCIA

Page 8: Introduccion al Lenguaje VHDL

7

7. Para poder obtener la licencia de uso completo del programa, vamos al siguiente link:

http://www.altera.com/support/licensing/lic-university.html

8. Damos a continue y aparecerá lo siguiente, donde se nos pedirá el serial de nuestro disco

duro.

Page 9: Introduccion al Lenguaje VHDL

8

9. Por lo cual hacemos lo siguiente, ejecutamos el cmd o símbolo de sistema en Windows

como administrador.

10. Digitamos lo siguiente “dir/p” sin comillas y aparecerá la siguiente ventana: Copiar ese

código a mano, aquí se presenta el número de serie de esta forma XXXX-XXXX, quitar el

guion a la hora de ingresarlo en la página de altera.

Page 10: Introduccion al Lenguaje VHDL

9

11. Después de ingresar los datos, nos pedirá llenar el formulario, escribir cualquier cosa en

los espacios, menos en la casilla del correo que tendrá que ser uno nuestro porque ahí se

llegara nuestra licencia,

12. Ya recibida la licencia, el archivo que nos mandan lo pegamos en la carpeta de instalación

del Max Plus. Luego abrimos de nuevo el programa y vamos a Options---License Setup,

damos a Browse y buscamos el archivo que nos mandaron a nuestro correo. Listo el

programa está instalado correctamente.

Page 11: Introduccion al Lenguaje VHDL

10

Marco Teórico

Los lenguajes de descripción hardware (HDLs, Hardware Description Languages) vienen

utilizándose desde los años 70 en los ciclos de diseño de sistemas digitales asistidos por

herramientas de CAD electrónico. Al principio surgieron una serie de lenguajes que no

llegaron a alcanzar un éxito que permitiera su consolidación en el campo industrial o

académico. En los años 80 aparecen los lenguajes Verilog y VHDL que, aprovechando la

disponibilidad de herramientas hardware y software cada vez más potentes y asequibles y

los adelantos en las tecnologías de fabricación de circuitos integrados, logran imponerse

como herramientas imprescindibles en el desarrollo de nuevos sistemas. En la actualidad

ambos lenguajes están normalizados y comparten una posición hegemónica que está

arrinconando –y terminará, probablemente, en poco tiempo eliminando del mercado– al

resto de lenguajes que de un modo u

otro todavía son soportados por algunas herramientas de CAD.

Estos lenguajes son sintácticamente similares a los de programación de alto nivel –Verilog

tiene una sintaxis similar al C y VHDL a ADA– y se diferencian de éstos en que su semántica

está orientada al modelado del hardware. Su capacidad para permitir distintos enfoques

en el modelado de los circuitos y su independencia de la tecnología y metodología de

diseño permiten extender su uso a los distintos ciclos de diseño que puedan utilizarse. Por

ello, para los profesionales relacionados de alguna manera con el diseño o mantenimiento

de sistemas digitales resulta hoy en día imprescindible su conocimiento.

Los estudios para la creación del lenguaje VHDL (VHSIC HDL) comenzaron en el año 1981,

bajo la cobertura de un programa para el desarrollo de Circuitos Integrados de Muy Alta

Velocidad (VHSIC), del Departamento de Defensa de los Estados Unidos. En 1983 las

compañías Intermetrics, IBM y Texas Instruments obtuvieron la concesión de un proyecto

para la realización del lenguaje y de un conjunto de herramientas auxiliares para su

aplicación.

Finalmente, en el año 1987, el lenguaje VHDL se convierte en la norma IEEE-1076 –como

todas las normas IEEE, se somete a revisión periódica, por lo que en 1993 sufrió algunas

leves modificaciones–.

Page 12: Introduccion al Lenguaje VHDL

11

El lenguaje VHDL fue creado con el propósito de especificar y documentar circuitos y

sistemas digitales utilizando un lenguaje formal. En la práctica se ha convertido, en un

gran número de entornos de CAD, en el HDL de referencia para realizar modelos

sintetizables automáticamente. Las principales características del lenguaje VHDL se

explican en los siguientes puntos:

Descripción textual normalizada: El lenguaje VHDL es un lenguaje de descripción que

especifica los circuitos electrónicos en un formato adecuado para ser interpretado tanto

por máquinas como por personas. Se trata además de un lenguaje formal, es decir, no

resulta ambiguo a la hora de expresar el comportamiento o representar la estructura de

un circuito. Está, como ya se ha dicho, normalizado, o sea, existe un único modelo para el

lenguaje, cuya utilización está abierta a cualquier grupo que quiera desarrollar

herramientas basadas en dicho modelo, garantizando su compatibilidad con cualquier

otra herramienta que respete las indicaciones especificadas en la norma oficial. Es, por

último, un lenguaje ejecutable, lo que permite que la descripción textual del hardware se

materialice en una representación del mismo utilizable por herramientas auxiliares tales

como simuladores y sintetizadores lógicos, compiladores de silicio, simuladores de

tiempo, de cobertura de fallos, herramientas de diseño físico, etc.

Amplio rango de capacidad descriptiva: El lenguaje VHDL posibilita la descripción del

hardware con distintos niveles de abstracción, pudiendo adaptarse a distintos propósitos

y utilizarse en las sucesivas fases que se dan en el desarrollo de los diseños. Además es un

lenguaje adaptable a distintas metodologías de diseño y es independiente de la

tecnología, lo que permite, en el primer caso, cubrir el tipo de necesidades de los distintos

géneros de instituciones, compañías y organizaciones relacionadas con el mundo de la

electrónica digital; y, en el segundo, facilita la actualización y adaptación de los diseños a

los avances de la tecnología en cada momento.

Otras ventajas: Además de las ventajas ya reseñadas también es destacable la capacidad

del lenguaje para el manejo de proyectos de grandes dimensiones, las garantías que

comporta su uso cuando, durante el ciclo de mantenimiento del proyecto, hay que

sustituir componentes o realizar modificaciones en los circuitos, y el hecho de que, para

muchas organizaciones contratantes, sea parte indispensable de la documentación de los

sistemas.

Page 13: Introduccion al Lenguaje VHDL

12

Realizar el código VHDL para las compuertas: AND, NAND, OR, NOR, EXOR y

NOT, simular en TINA y VHDL

Compuerta AND ENTITY com_and IS PORT( a,b :IN BIT; x :OUT BIT); END com_and; ARCHITECTURE arch_and OF com_and IS BEGIN x<= a AND b; END arch_and;

Page 14: Introduccion al Lenguaje VHDL

13

Compuerta NAND ENTITY comp_nand IS PORT( a,b :IN BIT; x :OUT BIT); END comp_nand; ARCHITECTURE arch_nand OF comp_nand IS BEGIN x<= a NAND b; END arch_nand;

Compuerta OR ENTITY comp_or IS PORT( a,b :IN BIT; x :OUT BIT); END comp_or; ARCHITECTURE arch_or OF comp_or IS BEGIN x<= a OR b; END arch_or;

Page 15: Introduccion al Lenguaje VHDL

14

Compuerta NOR ENTITY comp_nor IS PORT( a,b :IN BIT; x :OUT BIT); END comp_nor; ARCHITECTURE arch_nor OF comp_nor IS BEGIN x<= a NOR b; END arch_nor;

Page 16: Introduccion al Lenguaje VHDL

15

Compuerta EXOR ENTITY comp_xor IS PORT( a,b :IN BIT; x :OUT BIT); END comp_xor; ARCHITECTURE arch_xor OF comp_xor IS BEGIN x<= a XOR b; END arch_xor;

Compuerta NOT ENTITY comp_not IS PORT( a :IN BIT; x :OUT BIT); END comp_not; ARCHITECTURE arch_not OF comp_not IS BEGIN x<= NOT(a); END arch_not;

Page 17: Introduccion al Lenguaje VHDL

16

Page 18: Introduccion al Lenguaje VHDL

17

Ejercicio 1 : Realizar el código VHDL para el ejemplo 2.35 del libro.

Tabla de Verdad

A B C X

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 1

ENTITY circuito_1 IS PORT( a,b,c :IN BIT; y,z :OUT BIT); END circuito_1; ARCHITECTURE arch_1 OF circuito_1 IS BEGIN y <= ((NOT a) AND (NOT b) AND c) OR (b AND (NOT c)) OR (a AND b) ; z <= ((NOT a) AND c) OR ((NOT a) AND b AND c) OR (a AND b AND (NOT c)) ; END arch_1;

Page 19: Introduccion al Lenguaje VHDL

18

Ejercicio 2: Realizar el código VHDL para el problema 2.35 del final del capítulo.

Entity prob_235 IS PORT( a,b,c,d :IN BIT; x :OUT BIT); END prob_235; ARCHITECTURE arch_235 OF prob_235 IS BEGIN x <= ((NOT a) AND (NOT b) AND (NOT c) AND d) OR ((NOT a) AND (NOT b) AND c AND (NOT d)) OR ((NOT a) AND b AND (NOT c ) AND (NOT d)) OR ((NOT a) AND b AND c AND d) OR (a AND (NOT b) AND (NOT c ) AND (NOT d)) OR ( a AND (NOT b) AND c AND d) OR (a AND b AND(NOT c ) AND d ) OR ( a AND b AND c AND (NOT d)); END arch_235;

Page 20: Introduccion al Lenguaje VHDL

19

Ejercicio 3: Circuito 3: “Un automóvil a prueba de choques” Descripción: se trata de un automóvil con tres sensores, uno al frente y dos a los costados, al

arrancar se dirige hacia adelante, al encontrar un obstáculo gira, a uno de los costados esquivando

el obstáculo. La posición de los sensores se muestra en la siguiente figura.

Para girar a los lados, hace que las llantas giren en distintas direcciones, como por ejemplo para

girar a la izquierda, las llantas “X” rotan hacia atrás mientras que las llantas “Y” hacia adelante,

para hacer que el par de llantas “X” giren hacia adelante se debe poner en una variable de control

llamada “X” bit 0, para que giren hacia atrás X=1, igual para el par de llantas “Y”, con su respectiva

variable de control “Y”, la lógica de control de las llantas es la siguiente.

Page 21: Introduccion al Lenguaje VHDL

20

X Y Descripción

0 0 Hacia Adelante

0 1 Hacia la derecha

1 0 Hacia la izquierdo

1 1 Hacia Atrás.

Si los tres sensores A, B, C están en “1” es decir, detecta obstáculo en las tres direcciones,

empezara a retroceder, de lo contrario girara en la en la dirección que esté libre de obstáculo, si

existe la posibilidad de girar hacia la derecha o hacia la izquierda se girara a la derecha.

TABLA DE VERDAD

A B C Y Z

0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1

ENTITY circuito_3 IS PORT( a,b,c :IN BIT; x,y :OUT BIT); END circuito_3; ARCHITECTURE arch_3 OF circuito_3 IS BEGIN x <= ((NOT a) AND c) OR (b AND c) ; y <= (a AND (NOT c)) OR ((NOT a) AND b AND (NOT c)) OR (a AND b AND c) ; END arch_3;

Page 22: Introduccion al Lenguaje VHDL

21

Page 23: Introduccion al Lenguaje VHDL

22

Respuestas a las preguntas de investigación

Uso y sintaxis de las instrucciones IF… THEN. La construcción if-then-else es usada para seleccionar un conjunto de sentencias para ser

ejecutadas según la evaluación de una condición o conjunto de condiciones, cuyo resultado debe

ser o true o false. Su estructura es la siguiente:

if (condición)

then haz una cosa;

else haz otra cosa diferente;

end if;

Si la condición entre paréntesis es verdadera, la(s) sentencia(s) secuencial(es) seguidas a la palabra

then son ejecutadas. Si la condición entre paréntesis es falsa, la(s) sentencia(s) secuencial(es)

seguidas a la palabra else son ejecutadas. La construcción debe ser cerrada con las palabras end if.

Uso y sintaxis de la instrucciones CASE… WHEN.

La sentencia case es usada para especificar una serie de acciones según el valor dado de una señal

de selección. Esta sentencia es equivalente a la sentencia with-select-when, con la salvedad que la

sentencia que nos ocupa es secuencial, no combinacional. La estructura es la siguiente:

case (señal a evaluar) is

when (valor 1) => haz una cosa;

when (valor 2) => haz otra cosa;

...

when (último valor) => haz tal cosa;

end case;

En el caso que la señal a evaluar (situada después del case) tenga el "valor 1", entonces se ejecuta

"una cosa", si tiene el "valor 2", se ejecuta "otra cosa", ... y si tiene el "último valor", se ejecuta "tal

cosa". Esta sentencia parece hecha a la medida para crear multiplexores, como se ve en el

siguiente ejemplo, del cual sólo estudiamos la parte correspondiente a la sentencia case:

entity multi is port( a, b, c :in

bit_vector(3 downto 0); enable :in bit;

Page 24: Introduccion al Lenguaje VHDL

23

control :in bit_vector(1 downto 0); d :out bit_vector(3 downto 0) ); end multi; architecture archmul of multi is begin process (a, b, c, control, enable) begin if enable='1' then d<="1111"; elsif enable='0' then case control is

when "00" => d <= a;

when "01" => d <= b;

when "10" => d <= c;

when "11" => d <= "1111";

end case;

end if;

end process;

end archmul;

Page 25: Introduccion al Lenguaje VHDL

24

Uso de las instrucciones anteriores para implementar el código VHDL directamente

desde las tablas de verdad.

A continuación mostramos los códigos modificados a fin de implementar las sentencias tanto “if”

como “case”, haciendo así que nuestro circuito sea también generado e forma de algoritmo.

Ejercicio 1

1. entity multi is port(

2. IN1,IN2,IN3,IN4,SELECT1,SELECT2:in bit;

3. Y :out bit);

4. end multi;

5. architecture archmul of multi is

6. begin

7. process (SELECT1,SELECT2)

8. begin

9. if SELECT1='1'or SELECT2='0'then Y<="1";

10. elsif SELECT1= '0' or SELECT2='0' then Y='0';

11. case control is

12. when "00" => d <= a;

13. when "01" => d <= b;

14. when "10" => d <= c;

15. when others => d <= "1111";

16. end case;

17. end if;

18. end process;

19. end archmul;

Ejercicio 2

1. entity demulti is port(

2. entra: in bit_vector(7 downto 0);

3. control: in bit_vector(1 downto 0);

4. enable: in bit;

5. a,b,c,d: out bit_vector(7 downto 0)

Page 26: Introduccion al Lenguaje VHDL

25

6. );

7. end demulti;

8. architecture archdemul of demulti is

9. begin

10. process (entra, control, enable)

11. begin

12. if enable='1' then a<="11111111";

13. b<="11111111";

14. c<=(others=>'1');

15. d<=(others=>'1');

16. elsif enable='0' then

17. case control is

18. when "00" => a <= entra;

19. when "01" => b <= entra;

20. when "10" => c <= entra;

21. when others => d <= entra;

22. end case;

23. end if;

24. end process;

25. end archdemul;

Tipos de datos de entrada y salida que soporta VHDL. El tipo de datos es un elemento básico en VHDL, ya que delimita que valores puede tenr un objeto

y que operaciones podemos realizar con él. Aparte de los tipos ya creados, podemos crear nuevos

tipos y subconjuntos de tipos. La declaración de un tipo de datos es la sentencia VHDL utilizada

para introducir un nuevo tipo. Esta declaración está formada por un identificador que nos

permitirá usar el nuevo tipo al llamarlo y la descripción del conjunto de valores que forman el tipo

de datos. Para ello usamos la palabra reservada type. La declaración puede tener varios formatos

como por ejemplo:

type longitud_maxima is range 2 to 50 type estados is (estado_a, estado_b, estado_c);

Page 27: Introduccion al Lenguaje VHDL

26

Una vez declarado el nuevo tipo podremos usarlo para declarar objetos de este tipo, como por

ejemplo:

variable est: estados; port (entrada: in estados; salida: out longitud_maxima);

Cada tipo es diferente e incompatible con los demás, aunque estén declarados de la misma forma,

por lo cual no podemos asignar a una señal de un tipo otra de otro tipo distinto, a menos que

definamos una función de transformación. Los tipos pueden ser clasificados según las

características de lo que van a determinar:

Tipos enumerados: En éste se define el conjunto de posibles valores del tipo especificado,

presentando una lista que contiene a todos los valores. El primer identificador es el

nombre del tipo y sirve para referenciarlo, y entre paréntesis y separados por comas se

adjuntan todos los valores legales del tipo. type vocales ('a', 'e', 'i', 'o', 'u'); type direcciones

is (izquierda, derecha, arriba, abajo, centro);

Si no está especificado ningún valor inicial, el objeto se inicializa con el valor más a la

izquierda de los especificados en la declaración del tipo. Es decir, un objeto del tipo

"vocales" toma el valor 'a' por defecto.

Tipos enteros / reales: Esta modalidad de tipo sirve apra definir un objeto con valores

reales y enteros. En VHDL vienen definidos el tipo integer, que puede ir desde -

2147483647 hasta 2147483647, y el tipo real, quepuede ir desde -1.0e38 hasta 1.0e38.

Para definir un tipo de esta naturaleza hay que especificar el rango de valores que puede

llegar a tener asignado un objeto, como en los ejemplos siguientes

type edad is range 0 to 150;

type dias is range 31 downto 0;

Si no está especificado ningún valor inicial, el objeto se inicializa con el valor más a la

izquierda de los especificados en la declaración del tipo. Deberemos tener cuidado si

hemos usado la palabra to o la palabra downto para definir el tipo, ya que se asignará un

valor por defecto u otro. En el ejemplo se da por defecto a un objeto del tipo "edad" el

valor 0, y a otro del tipo "dias", el valor 31.

Tipos físicos: Sirven para representar magnitudes del mundo real como el tiempo, peso,

capacidad,... por lo que llevan, aparte de un literal numérico, la magnitud física a medir.

Podemos asignar unidades auxiliares a la predefinida.

type time is range 0 to 1e20;

units fs; ps = 1000 fs;

ns = 1000 ps;

us = 1000 ns;

ms = 1000 us;

sec = 1000 ms;

min = 60 sec;

hr = 60 min;

end units;

Page 28: Introduccion al Lenguaje VHDL

27

Si no está especificado ningún valor inicial, el objeto se inicializa con el valor más a la

izquierda de los especificados en la declaración del tipo. Deberemos tener cuidado si

hemos usado la palabra to o la palabra downto para definir el tipo, ya que se asignará un

valor por defecto u otro. En el ejemplo se da por defecto a un objeto del tipo "edad" el

valor 0, y a otro del tipo "dias", el valor 31.

Cómo se crean arreglos en VHDL? Son tipos complejos con una estructura regular que contiene elementos del mismo tipo. El

número de elementos está especificado en el mismo rango del arreglo. El rango puede ser

ilimitado: range < > (aunque no es lo más conveniente). Hay dos arreglos pre-definidos en

VHDL :

Bit_Vector : Con elementos del tipo Bit, y

String : Con elementos de tipo carácter.

Cómo declarar un componente en VHDL? Para declarar un componente en VHDL podemos utilizar la siguiente sintaxis general:

COMPONENT nombre IS GENERIC(lista de parámetros);

PORT(lista de puertos de entrada y salida);

END COMPONENT nombre;

Si nos damos cuenta al comparar esta declaración con la de una entidad podemos denotar un gran

parecido. Ahora bien también daremos un ejemplo de un componente:

COMPONENT comp_and2

PORT(

e1,e2: IN bit; o: OUT bit);

END COMPONENT comp_2and;

Page 29: Introduccion al Lenguaje VHDL

28

¿Cuáles son los operadores en VHDL?

Page 30: Introduccion al Lenguaje VHDL

29

Page 31: Introduccion al Lenguaje VHDL

30

Conclusiones

Hemos podido apreciar que el uso de este programa fue nuevo para nosotros, su sintaxis parecía

ser difícil pero con la práctica todo se puede lograr. Este lenguaje de programación es muy fuerte,

el límite de este es la imaginación. Como se vio en los ejemplos anteriores la sintaxis fue muy

corta, pero capaz de resolver problemas que a simple vista suena de una manera imposible, este

no, aplicando conceptos de Algebra de Boole se pudo realizar sin mayor problema dando asi a la

solución del mismo. De igual forma los demás circuitos propuestos, se logra en si poder dar lectura

y comprensión al código base de este lenguaje de programación.

Concluimos entonces que la resolución de los problemas cotidianos se pueden resolver de muchas

maneras, hay unos de una y otros de otra; claro está que para algún circuito que habrá una puerta

con impulsos eléctricos se debe de tomar en cuenta el lenguaje tratado en este trabajo; es más

sencillo y gracias a esa algebra el problema se soluciona muy rápidamente.

Entendemos también que estos códigos pueden ser fáciles, la misma lógica de cursos pasados se

han aplicado aquí, pero algo tan sencillo como una compuerta not , el no saber sintaxis lleva al

desbordamiento de nuestro trabajo y pone en peligro el mismo, ya que si uno ya en el futuro

trabajando se topa con un problema asi y no logra solucionarlo; perderemos esa experiencia y nos

quedaremos en el vacío existencial no poder aprender algo tan sencillo como esa sintaxis, por lo

tanto este curso de Sistemas Digitales será un reto, donde aprenderemos a solucionar inquietudes

del día a día para el mejoramiento de nuestra realidad, y a corto plazo poder tener esas bases para

cursos posteriores a esta materia que se ocupe de nuevo este lenguaje. Y quien sabe que algún día

seamos inventores de algo que también revolucione nuestro mundo, como los inventores que ha

habido a lo largo de la historia.

Page 32: Introduccion al Lenguaje VHDL

31

Bibliografía

Análisis y diseño de circuitos lógicos digitales. Victor Nelson. 1ª edición. Prentice Hall.

http://personales.unican.es/manzanom/EdigitalI/MuxG7_09.pdf

http://www.fing.edu.uy/inco/cursos/arqsis/recursosLaboratorio/Tutorial.pdf

http://www.dea.icai.upco.es/sadot/ed-itei/tutorial-maxplus.pdf

http://es.wikipedia.org/wiki/Demultiplexor

http://www.cps.unizar.es/~te/Docencia_archivos/ldh_archivos/T4.pdf

http://www.dc.uba.ar/materias/oc1/2007/c2/practica/apuntes/vhdl

http://es.scribd.com/doc/2154178/UPM-Introduccion-al-lenguaje-VHDL

http://www.eweb.unex.es/eweb/fisteor/antonio_astillero/ec/vhdl/Manual%20VHDL.pdf