Você está na página 1de 34

FACULTAD DE INGENIERÍA Y ARQUITECTURA

ESCUELA DE INGENIERÍA ELÉCTRICA


SISTEMAS DIGITALES I
TAREA:
INTRODUCCIÓN A
QUARTUS II

CATEDRÁTICO:
ING. SALVADOR
GERMAN.

INSTRUCTORES:
BR. A
BR. R
ESTUDIANTES:
C
R

Ciudad universitaria, 4 de abril de 2018. San Salvador, El Salvador


Índice

1. Objetivos........................................................................................................................................2
2. Introducción...................................................................................................................................3
3. Marco Teórico:................................................................................................................................4
4. Obtención e Instalación del software.............................................................................................8
5.Desarrollo de los circuitos.............................................................................................................16
6.Observaciones...............................................................................................................................24
7. Preguntas de Investigación...........................................................................................................25
8. Conclusiones................................................................................................................................32
Bibliografía:......................................................................................................................................33
1. Objetivos

Objetivo general:
 Desarrollar y exponer mediante el lenguaje de descripción de circuitos
electrónicos VHDL, simulaciones con Quartus II y ModelSim

Objetivo específico:

 Identificar el uso y algunas características del simulador ModelSim.


 Detallar la instalación del software a usar, en este caso VHDL.

 Analizar y comprender de una manera adecuada la sintaxis de diferentes


instrucciones de VHDL

 Categorizar y mostrar los datos de entrada y salida, también los operadores


de VHDL

 Crear diferentes componentes en VHDL.

2
2. Introducción

Los circuitos digitales han sido muy importantes para el avance de la tecnología, la
mayor parte de los dispositivos digitales que conocemos los emplean, como, por
ejemplo, las computadoras personales, termómetros digitales, cámaras, entre
otros, para lo cual es necesario conocer sobre ellos. Al hablar sobre circuitos
digitales es importante definirlos, como un sistema formado por un conjunto de
dispositivos electrónicos que reciben un cierto número de señales digitales de
entrada, las procesan y generan una o varias señales digitales de salida. También
es necesario hablar sobre señales digitales, que son aquellas que presentan una
variación discontinua con el tiempo y que solo puede tomar ciertos valores
discretos, a diferencia de las señales analógicas que pueden tomar un número
infinito de valores en un rango especificado.
En el presente reporte se pretende dar un primer contacto a los lenguajes HDL ,
acrónimo de Hardware Description Language especialmente se destaca el AHDL
que es el lenguaje de descripción de software de Altera y VHDL que se explicara
en detalle cada uno de ellos más adelante, lo cual nos servirán para describir
circuitos digitales o redes lógicas auxiliándonos de la herramienta Quartus II de
Altera para poder representarlos y ModelSim para realizar su simulación
respectiva en base a la codificación sobre el circuito.

3
3. Marco Teórico:
VHDL:
¿Qué es un VHDL?
Es el acrónimo que representa la combinación de VHSIC Y HDL, donde el primero
es el acrónimo de Very High Speed Integrated Circuit y el segundo es a su vez el
acrónimo de Hardware Decription Language.
Es un lenguaje definido por el IEEE (Institute of Electrical and Electronicos
Engineers) (ANSI/IEEE 1076-1993) usado por ingenieros para describir circuitos
digitales.
VHDL significa very-high-speed integrated circuits hardware description language
o lenguaje de descripción de hardware de circuitos integrados de muy alta
velocidad.
¿Qué es un FPGA?
Un FPGA no es un microcontrolador, en realidad es un conjunto masivo de celdas
o bloques lógicos programables. Estas celdas son programadas individualmente
para convertirse en pequeños bloques de construcción. Pueden ser compuertas
simples (AND, OR y NOT, etc) o flip-flops.
Así que la diferencia con un micro es que nosotros programamos cada celda para
funcionar como un bloque de memoria lógica. Esto significa que, debido a que
cada bloque es tan independiente, todos están operando al mismo tiempo. A
diferencia de un micro donde cada línea de código se procesa a su vez. Por lo
tanto, los programadores de FPGA pueden conseguir velocidades mucho más
altas de procesamiento.
Este punto anterior es muy importante a tener en cuenta. Un programa realizado
en VHDL puede parecer como un programa de computadora clásico (secuencial) y
puede procesar los datos en los cambios de flanco del clock, pero hay que
recordar que todo está funcionando a la vez (paralelo).
El Lenguaje se encuentra definido en bloques también. Cada función que
deseamos, es a nivel superior definida como una “entidad” donde se especifican
las entradas y salidas del bloque. Como, por ejemplo, una compuerta AND queda
definida como:

Figura 3.1 bloque entidad de la compuerta


AND

4
Figura 3.2 bloque de arquitectura de la
compuerta AND

Los bits del lenguaje se definen dentro de la entidad y se denomina “arquitectura”,


la compuerta AND quedaría:

5
El lenguaje VDHL, contiene otros comandos más complejos que pueden existir
dentro de la arquitectura como Loops While, If y If-Else. Todos los tipos de cosas
que se ven en la programación en C. Sin embargo, cuando se define un bucle en
C el código da vueltas y vueltas, en VHDL que en realidad podríamos estar
diciendo que genera múltiplos bloques idénticos de lógica y que todos ellos
procesen datos en un ciclo de clock si así se requiere .

HDL:
Un lenguaje de descripción de hardware es un lenguaje de programación
especializado que se utiliza para definir estructura, diseño y operación de circuitos
electrónicos, y más comúnmente, de circuitos electrónicos digitales, como el
convertidor analógico digital o cualquier antena satelital. Así, los lenguajes de
descripción de hardware hacen posible una descripción formal de un circuito
electrónico, y posibilitan su análisis automático y su simulación.
Los HDL utilizan expresiones estándar basadas en texto que reflejan la estructura
de los circuitos electrónicos, si se viera dentro de una tarjeta, se podrían observar
más de un millo de compuertas a disposición del programador. Al igual que los
lenguajes de programación concurrentes, la sintaxis y la semántica de los HDL
incluyen notaciones específicas para la concurrencia. Sin embargo, al contrario de
lo que ocurre con la mayoría de los lenguajes de programación , los HDL incluyen
también una notación específica para el tiempo, debido a que este es una
característica fundamental de los circuitos electrónicos reales. Los HDL son algo
más rico que los lenguajes de la lista de conexiones (cuyo propósito es expresar la
conectividad entre una jerarquía de bloques), ya que no solo permiten definir la
estructura del circuito, sino también su comportamiento.
Así los HDL pueden ser usados para escribir especificaciones “ejecutables” de
hardware. Es decir, un programa escrito en HDL hace posible que el diseñador de
hardware pueda modelar y simular un componente electrónico antes de que sea
construido físicamente. Es esta posibilidad de “ejecución” de componentes lo que
hace que a veces los HDL se vean como lenguajes de programación
convencionales, cuando en realidad se debería clasificarlos más precisamente
como lenguajes de modelado.
6
AHDL:
Abreviatura de Altera Hardware Description Language (Lenguaje de descripción de
hardware de Altera). Este lenguaje de descripción de hardware cuyo propietario es
Altera Corporation para la programación de CPLDs (Complex Programmable Logic
Devices o Dispositivos complejos de lógica programable) y FPGAs(Field
Programmable Gate Arrays o Campo de matrices de Puertas Programables).
Compilado con el Quartus de Altera y la serie de compiladores Max+, este
lenguaje tiene una sintaxis parecida al lenguaje de programación C y una
funcionalidad similar a VHDL.

ModelSim:
ModelSim es un entorno realizado por Mentor Graphics, que permite el desarrollo
y la verificación de Hardware Description Languages (HDL) como Verilog, VHDL y
SystemC. La simulación puede realizarse utilizando la interfaz gráfica (GUI) o los
script. La familia de simuladores ModelSim que nace de la unión entre la
tecnología de simulación single-kernel (SKS, Single Kernel Simulator) y un entorno
de debug para Verilog, VHDL y SystemCed es la elección ideal sea por ASIC que
por FPGA.

Existen tres modos de operación en


ModelSim:
Figura 3.3 Interfaz Gráfica de ModelSim
 Mediante procesos por lotes.
 Línea de comandos (se trata
de un entorno interactivo en
modo texto, accesible desde
el “prompt” del sistema operativo con el comando vsim –c).
 Ejecución basada en GUI (Interfaz Gracia de usuario). Este es el modo por
defecto y el más habitual pues utiliza una interface amigable para el
usuario. Es interactiva, maneja menús, ventanas, botones y líneas de
comando.

7
Quartus II Web Edition:
La Edición Web es una versión gratuita de Quartus II. Esta versión permite la
compilación y la programación de un número limitado de dispositivos Altera.
La familia de FPGAs de bajo coste Cyclone, está soportada por esta edición, por
lo que los pequeños desarrolladores y desarrolladoras no tendrán problemas por
el coste del desarrollo de software.
Es un entorno de diseño multiplataforma que se adapta fácilmente a sus
necesidades específicas en todas las fases del diseño de FPGA y CPLD. El
software Quartus II ofrece la productividad y el rendimiento más altos para los
FPGA, CPLD y Hardcopy ASIC de Altera.
El software Quartus II ofrece síntesis y colocación y enrutamiento superiores, lo
que resulta en ventajas de tiempo de compilación.
Las características de reducción de tiempo de compilación incluyen:
- Soporte multiprocesador.
- Re compilación rápida.
-Re compilación incremental.

8
4. Obtención e Instalación del software.
ModelSim:
Para la descarga del software ModelSim es necesario entrar a este sitio:
http://dl.altera.com/13.0/?
edition=subscription&product=modelsim_ae&download_manager=direct&platform=
windows#tabs-2 .Donde nos encontraremos una página similar a la siguiente:

Figura 4.1: Configuración de parámetros

Es importante marcar el sistema operativo y el método de descarga, además


especificar la versión, en este caso las opciones están configuradas para el
sistema operativo Windows, mediante descarga directa de la versión 13.0sp1.
Luego de haber seleccionado las preferencias de descarga, nos desplazamos
hacia abajo y no encontraremos con un cuadro de descargas donde se pueden
visualizar 3 pestañas, seleccionamos la que tiene por nombre “Individual Files” y
seleccionamos el archivo a descargar en este caso será: ModelSim-Altera Edition,
y presionamos el botón color azul con una fecha de descarga ubicados en la parte
derecha del nombre del archivo.

9
Figura 4.2: Cuadro de descarga

Luego de haber finalizado la descarga y al ejecutar el archivo del setup del


software se presentará una ventana de instalación como la siguiente:

Figura 4.3: Ventana Inicial de Instalación


Los pasos son similares a los de un programa común de Windows, simplemente presionamos
siguiente, seleccionamos la edición a instalar, confirmamos los términos y condiciones, luego
seleccionamos la carpeta a donde se instalará el programa teniendo el cuidado de recordar la
dirección.

Figura 4.4: Selección de la edición

Figura 4.5: Términos y Condiciones


10
Figura 4.6: Directorio de Instalación
Una vez finalizada la instalación se mostrará una venta como la siguiente, deberemos presionar y el
programa ya estará listo para usar.

Figura 4.7: Finalización de la Instalación


Al ejecutar el programa nos mostrara una imagen similar a la siguiente:

Figura 4.8: Programa Ejecutado


Quartus II:

11
Para descarga el software de la pagina oficial de altera se puede hacer mediante
el siguiente enlace: https://www.altera.com/downloads/download-center.html donde
se nos mostrara algo similar a lo siguiente:

Figura 4. 9: Pagina de descarga de Quartus II

Una vez dentro debemos desplazarnos hacia abajo donde nos encontraremos un
cuadro titulado “Software Selector” donde debemos ubicarnos en la pestaña
titulada “Select by version” donde debemos buscar la versión que deseemos
descargar, en este caso la versión 13.0 service pack 1 y luego presionar la versión
web.

Figura 4. 10: Selección de versión de Quartus II

Una vez seleccionada la versión web del programa se nos presentara una pantalla
similar a la siguiente, donde debemos seleccionar el sistema operativo y el método

12

Figura 4. 11: Selección de Sistema Operativo y método de descarga


de descarga, en nuestro caso sistema operativo Windows y el método de
descarga directa:

Luego de haber seleccionado el Sistema Operativo y el método de descarga nos


desplazamos hacia abajo y nos encontraremos un cuadro similar al de la imagen
donde pulsaremos el botón azul de descarga junto a la opción “Quartus II
Software” y al desplazarnos hacia abajo se encontrar el “Quartus II Programmer”
necesario ya que sirve como interfaz entre el software y el equipo del

Figura 4. 12: Descarga de Quartus II Software


programador.

13

Figura 4. 13: Descarga de Quartus II Programmer


Figura 4. 14: Inicio de la instalación Quartus II
Una vez descargado el software, al ejecutar el instalador se nos presentara una
ventana similar a la siguiente, donde como cualquier programa en Windows
debemos pulsar el botón siguiente. Cabe destacar que tanto el Quartus II en su
versión web como Programmer siguen pasos similares de instalación así que este
proceso es válido para ambos programas:
Una vez presionado el botón siguiente debemos aceptar los términos y
condiciones del programa y seleccionar la ruta de instalación, debemos tener el
cuidado de no olvidar la dirección.

Figura 4. 15: Términos y condiciones


14

Figura 4. 16: Ruta de Instalación


Luego se presentará la lista de componentes que se desee instalar, debemos
dejarlo tal y como esta y presionar siguiente, donde luego empezará la instalación.

Cuando haya finalizado la instalación se nos mostrara la siguiente ventana donde


presionaremos el botón de finalizar, una vez instalados ambos programas (tanto la
versión web como Programmer) podremos abrir el programa teniendo un aspecto
similar al de la imagen:

Figura 4. 17: Seleccionar componentes a instalar

Figura 4. 18: Finalización de la instalación del programa

15

Figura 4. 19: Quartus II en ejecución


16
5.Desarrollo de los circuitos

A continuación, se presenta la solución a los problemas 1.2 a 1.4 de la guia1 de la


signatura con sus respectivos enunciados:
1.2 Diseñe una red de conmutación que acepte entradas BCD y proporcione una
salida 1 solo cuando el dígito decimal de entrada sea divisible entre 3. Utilice
cuatro variables de entrada para diseñar el circuito.
Solución:
Paso 0: analizar el problema y entender lo que nos dice el enunciado
Según nos dice el enunciado, de los términos decimales que reciba debe de tomar
como salida los que son múltiplos de 3, los cuales son: 0, 3, 6 y 9
Paso 1: hacer la tabla de verdad y ver cuales cumplen con los requisitos de
nuestro problema

Se obtiene la ecuación lógica:

Paso 2: hacer la codificación en Quartus II

17
Paso 3: se abre el ModelSim y se crea un nuevo proyecto importando los datos
del Quartus II
Paso 4: se comienza a crear las interacciones de esta manera y sucesivamente:
Así sería la interacción 0 Así sería la interacción 5 Así sería la interacción 9

Ya la simulación se vería de esta manera

Interacción 0 1 2 3 4 5 6 7 8 9

18
1.3 Diseñe una red lógica con varias salidas, cuya entrada sea un digito BCD y
cuyas salidas se definen como sigue: f1 detecta los dígitos de entrada divisibles
entre 4; f2 detecta los números mayores o iguales a 3; f3 detecta los números
menores que 7.
Paso 1: Obtener una tabla de verdad a partir del enunciado del problema.
Puesto que el enunciado nos dice claramente cuáles serán las entradas, sabemos
que un digito en BCD está compuesto por 4 bits, en este caso tendremos 4
entradas A, B,C y D que representaran cada uno de los bits del BCD 8421,
además nos especifica 3 salidas f1, f2 y f3, donde serán los dígitos divisibles entre
4, mayores o iguales a 3 y menores que 7 respectivamente.
Tabla de verdad obtenida del problema:
Entradas Salidas
A B C D f1 f2 f3
0 0 0 0 0 0 0 1
1 0 0 0 1 0 0 1
2 0 0 1 0 0 0 1
3 0 0 1 1 0 1 1
4 0 1 0 0 1 1 1
5 0 1 0 1 0 1 1
6 0 1 1 0 0 1 1
7 0 1 1 1 0 1 0
8 1 0 0 0 1 1 0
9 1 0 0 1 0 1 0

Paso 2: Obtener las ecuaciones lógicas.


A partir de la tabla de verdad se obtuvieron las siguientes ecuaciones lógicas
simplificadas en SOP para cada una de las salidas:
Nota: el carácter “ ‘ “ (comilla simple) que se encuentra a continuación de una letra
simboliza “el negado de esa entrada”.
f1= A’BC’D’+AB’C’D’
f2=A’CD + A’B + AB’C’
f3=A’B’ + A’C’ + A’D’
Paso 3: Generar el código VHDL de la red lógica.
A partir de las ecuaciones lógicas y las tablas de verdad se realizó el siguiente
código VHDL en Quartus II y se obtuvo el siguiente diagrama:

19
Figura 1 Ejercicio 1.3: Código VHDL

Figura 2 Ejercicio 1.3: Diagrama generado a partir del código VHDL

Paso 4: Simular la red lógica en ModelSim a partir del código VHDL.


Luego se realizaron las pruebas pertinentes y la simulación en el software
ModelSim, introduciendo mediante el comando “forcé (variable de entrada) (valor)”
los valores respectivos a cada entrada de la tabla de verdad en la tabla inferior
transcript,. Al ejecutar el comando “run 1000” se visualiza el valor que tomara cada
salida donde se obtuvieron como resultado los siguientes gráficos:

20
Figura 3 Ejercicio 1.3: Grafico 1 obtenido en ModelSim

Figura 4 Ejercicio 1.3: Grafico 2 obtenido en ModelSim

21

Figura 5 Ejercicio 1.3: Grafico 3 obtenido en ModelSim


Es importante notar que las señales que se muestran en el grafico señalan
fielmente los valores obtenidos para las salidas en la tabla de verdad para cada
combinación de valores de las entradas donde f1, f2 y f3 tomaran el valor de uno
cuando el digito BCD esté formado por las entradas A,B,C,D por 0100
respectivamente.

1.4 Las normas de seguridad de los aviones moderno exigen que, para señales de
vital importancia para la seguridad del aparato, los circuitos deben estar triplicados
para que el fallo de uno de ellos no produzca una catástrofe. En caso de que los
tres circuitos no produzcan la misma salida, esta se escogerá mediante votación.
Diseñe el circuito “votador” que se ha de utilizarse para obtener como resultado el
valor mayoritario de las tres entradas.
Paso 0: analizar el problema y entender lo que nos dice el enunciado
El problema nos dice que un sistema de seguridad de circuitos triplicados debe de
fallar 3 veces, entonces cuando esto suceda, se somete a votación y como nos
dice el valor mayoritario se entiende que de las votaciones debe de ser mayor o
igual a dos
Paso 1: hacer la tabla de verdad y ver cuales cumplen con los requisitos de
nuestro problema

Se obtiene la ecuación lógica:

Ya simplificada queda así:

Paso 2: hacer la codificación en Quartus II

22
Paso 3: se abre el ModelSim y se crea un nuevo proyecto importando los datos
del Quartus II
Paso 4: se comienza a crear las interacciones de esta manera y sucesivamente:

Interacción 0 1 2 3 4 5 6 7

23
6.Observaciones

El programa Quartus II es una útil herramienta para la sintonización de circuitos


pues nos permite representarlos mediante un código VHDL y además nos permite
generar un diagrama a partir de dicho código simplificando grandemente el
trabajo.
Muchas de las compuertas pueden escribirse en forma de expresión lógica, por
ejemplo, la compuerta EXNOR, sin embargo, Quartus II al ingresar la operación
XNOR entre las dos entradas a la hora de asignar las salidas nos evita escribir
toda la expresión.
La Herramienta ModelSim nos permite representar fielmente las salidas de un
circuito a partir de un código previamente escrito en VHDL, puesto que si
poseemos una tabla de verdad los resultados de la simulación serán iguales (si se
ha escrito correctamente el código) esto se puede visualizar en un gráfico de
señales tanto de entradas como salidas que nos proporciona la herramienta.

24
7. Preguntas de Investigación

7.1 Uso y sintaxis de las instrucciones IF... THEN.


Es una estructura secuencia que permite la ejecución de un bloque de código
dependiendo de una o varias condiciones.

Figura 7. 1: Sintaxis de la sentencia IF.. THEN… ELSE


El orden en el que sitúan las “condiciones” dentro del if-elseif es importante, pues
si hay dos ciertas, se ejecutara únicamente la primera.

7.2 Uso y sintaxis de las instrucciones CASE… WHEN.


Es muy parecido a la instrucción IF… THEN porque también ejecuta un bloque de
código condicionalmente, pero en esta ocasión se evalúa una expresión en vez de
una condición. Se debe recordar que se deben tener en cuenta todos los casos, es
decir, incluir como última opción la sentencia WHEN OTHERS.

Figura 7. 2: Sintaxis de la sentencia CASE…WHEN

7.3 Uso de las instrucciones IF… THEN y CASE… WHEN para implementar el
código VHDL directamente de las tablas de verdad.

25
Ejemplo: IF…THEN.
El siguiente ejemplo es sobre un circuito que dé como salida 1 cuando el código
BCD de entrada sea un numero decimal impar.
La tabla de verdad es la siguiente:
A B C Y
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 1
6 1 1 0 0
7 1 1 1 1

El código en VHDL que implementa la estructura IF… THEN es la siguiente:

Figura 7. 3: Código VHDL ejemplo IF…THEN


Del código anterior es importante destacar la condición C= ‘1’, ya que cuando C
tome el valor de 1 la entrada del decimal BCD será un número impar, esto se
puede visualizar claramente de la tabla de verdad ya que todas las cifras
decimales impares tienen en común que el bit C toma el valor 1. Esto se puede
apreciar en la simulación en modelSim a continuación:

26
Figura 7. 4 Grafico generado en modelSim sobre el ejemplo de IF… THEN
Ejemplo: CASE… WHEN.
Retomaremos el problema anterior, pero con la variante que se codificará
utilizando la instrucción CASE… WHEN por lo que la tabla de verdad será la
misma:
A B C Y
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 1
6 1 1 0 0
7 1 1 1 1

Como utilizaremos sentencias diferentes para nuestro código VHDL nos quedara
de la siguiente manera:

Figura 7. 5: Código VHDL del ejemplo del uso de la sentencia


CASE…WHEN
Como se puede notar al igual que el caso anterior la condición establece que si C
toma el valor de 1 entonces corresponde a un decimal impar y por lo tanto la
salida seria 1. Esto se puede visualizar en el siguiente gráfico de la simulación del
circuito en ModelSim:

27
Figura 7. 6: Grafico obtenido de la simulación del ejemplo sobre CASE… WHEN

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

a) Escalares
- integer
- floating point
- enunmerated
- physical

b) Compuestos
- array
- record

c) Punteros
- Access

d) Archivos
- file

e) Tipos básicos predefinidos:


- Integer: tipo real
Usado como valor índice en lazos, constantes o valores genéricos
- Boolean: tipo lógico
Puede tomar valores como ‘true’ o ‘false’
- Enumerated: enumeración
Conjunto de valores definidos por el usuario. Por ej.: TYPE estado IS
(inicio, lento, rápido)

f) Tipos STD_LOGIC y STD_LOGIC_VECTOR


Definidos en el paquete IEEE.standard_logic_1164.se usan para definir los
puertos de las entidades

g) Tipos SIGNED y UNSIGNED


Las operaciones aritméticas estándares sólo están definidas para estos
tipos de datos

7.5 ¿Cómo se crean arreglos en VHDL?

Las estructuras para declarar un arreglo son las siguientes:

28
 TYPE nombre_tipo IS ARRAY (especificación) OF tipo_dato;
 SIGNAL nombre_señal: nombre_tipo [:= valor_inicial];
 CONSTANT nombre_señal: nombre_tipo [:=valor_inicial];
 VARIABLE nombre_señal: nombre_tipo [:=valor_inicial];

Ejemplos:
TYPE row IS ARRAY (7 downto 0) OF STD_LOGIC;-- arreglo 1D
TYPE matrix IS ARRAY (0 TO 3) OF row; -- arreglo 1Dx1D
SIGNAL x: matrix[:”0001”] ; --para arreglo 1D
--Otra forma de hacer lo mismo del código mostrado arriba
TYPE matrix IS ARRAY (0 TO 3) OF STD_LOGIC_VECTOR(7 DOWNTO 0);

A) Tipo escalar
B) 1D
C) 1Dx1D
D) 2D

7.6 ¿Cómo declarar un componente en VHDL? Mostrar un ejemplo.

Comencemos por definir las estructuras de este


El primer bloque es ENTITY, el segundo es ARCHITECTURE. En ENTITY
definimos el nombre del “componente” y sus entradas y salidas, el nombre
asignado en ENTITY debe de ser el nombre del archivo guardado. Para la sintaxis
es: nombre: dirección tipo; Recordando que el ultimo no lleva el punto y coma.
Dentro de ARCHITECTURE se define el comportamiento del “componente”.
Cuando se escriba este, se debe de hacer mención de la entidad de la que hace la
acción, se pueden usar los comandos AND, NAND, OR, NOR, EXOR, EXNOR y
NOT. Para este ejemplo crearemos la compuerta lógica NOR

ENTITY compuertaNOR IS
PORT (
a,b :IN BIT;
x :OUT BIT
);
END compuertaNOR;

ARCHITECTURE CompuertaNORhecha OF CompuertaNOR IS


BEGIN
x <= (a NOR b);
-- Se puede de esta forma también
-- x <= (NOT(a or b));

29
END CompuertaNORhecha;

7.7 ¿Cuáles son los operadores en VHDL?


 Lógicos

o not

o and

o nand

o or

o nor

o xor

o xnor

 Relaciones

o = (igual)

o /= (diferente)

o < (menor)

o <= (menor o igual)

o > (mayor)

o <= (mayor o igual)

 Aritméticos

o + (adición)

o - (sustracción)

o * (multiplicación)

o / (división)

30
o rem (resto de a/b con el signo de a)

o mod (resto de a/b con el signo de b)

 Misceláneos

o abs (valor absoluto)

o ** (exponencial)

 Signo (unarios)

o +

o –

 Desplazamiento (signed y unsigned)

o shift_right

o shift_left

 Concatenación

o &

31
8. Conclusiones

Como resultado de la investigación presentada se concluye que:


 El ModelSim es un simulador que presenta una interface comprensible e
interactiva ya que presenta características que ayudan al usuario a la
ejecución de distintos trabajos como entre ellas permite editar, compilar,
simular y depurar diseños de sistemas digitales

 Se logro detallar la instalación del VHDL permitiendo así su uso en


cualquier circuito electrónico, apoyándonos con el programa Quartus II y el
software ModelSim. Y es de disponibilidad muy accesible.

 Todo lenguaje tiene sus respectivas sintaxis, algunas conocidas mantienen


una misma funcionabilidad, en el caso del VHDL no es la excepción,
mediante la interacción con el lenguaje se conoció y comprendió las
diferentes funciones e instrucciones que dan solución a las necesidades
que presenta el usuario y que son importantes para la ejecución problemas.

 La simulación ejemplifica y demuestra de manera más comprensible el


funcionamiento de un circuito eléctrico, debido a que en ella se puede
observar el comportamiento de las entradas y las salidas, esto en el
ModelSim. Y comprobar si lo hecho en el Quartus II es correcto.

 Gracias a la comprensión de la sintaxis y de las instrucciones de VHDL, así


como del programa Quartus II el cual facilita, lo que el usuario va hacer en
un aparato electrónico (circuito) lo puede realizar en dicho programa, se
logró crear diferentes componentes, como las 7 compuertas básicas en
dicho lenguaje.

32
Bibliografía:

-Cesar. “Electrónica General”. ayudaenelectronica.com. Obtenido el 27 de marzo


de 2018, desde http://ayudaelectronica.com/que-es-vhdl/
- “Lenguajes de Descripción de Hardware”. es.wikipedia.org. Obtenido el 27 de
marzo de 2018. Desde: https://es.wikipedia.org/wiki/Lenguaje_de_descripci
%C3%B3n_de_hardware
-“Programación en VHDL/ Introducción”. es.wikibooks.org . Obtenido el 27 de
marzo de 2018. Desde: https://es.wikibooks.org/wiki/Programaci
%C3%B3n_en_VHDL/Introducci%C3%B3n
- “Simulación para la planificación ASIC y FPGA” .www.cadlog.es. Obtenido el 27
de marzo de 2018. Desde: http://www.cadlog.es/diseno-electronico/modelsim-
simulacion-hdl/
- “Sentencias secuenciales y Concurrentes de VHDL”, Obtenido del 29 de marzo
de 2018. Desde: http://edii.uclm.es/~miniesta/vhdl%202.pdf
-“Programación en VHDL/ Arquitectura”. es.wikibooks.org . Obtenido el 29 de
marzo de 2018. Desde: https://es.wikibooks.org/wiki/Programaci
%C3%B3n_en_VHDL/Arquitectura

33

Você também pode gostar