Está en la página 1de 4

Trabajo Preparatorio: Arquitecturas en VHDL

Francisco José Cachumba Simba, Betty Isabel Moreno Frutos


Facultad de Ingeniería Eléctrica y Electrónica, Escuela Politécnica Nacional
Laboratorio Sistemas Digitales, GR5-2, lunes 07 de febrero de 2022, 09H00
francisco.cachumba@epn.edu.ec
betty.moreno@epn.edu.ec

Resumen – En el presente preparatorio se representará hay dos instrucciones, no tiene porqué ejecutarse una antes que
definiciones y descripciones tanto de la arquitectura como de las otra, pueden ejecutarse a la vez. [1]
sentencias concurrentes, además de la presentación de cierta sintaxis La descripción funcional es puramente comportamental, de
para usar en VHDL, y añadiendo unos ejercicios que emplea manera que con una secuencia sencilla de instrucciones se
sentencias de concurrencia.
podría describir el circuito. Naturalmente, a veces resulta más
Palabras clave – VHDL, arquitectura, port map, concurrente interesante describir el circuito de forma que esté más cercano
a una posible realización física del mismo. En este sentido,
VHDL posee una forma de describir circuitos que además
I. OBJETIVOS permite la paralización de instrucciones, y que se encuentra más
2.1. Relacionar conceptos de sistemas digitales con el cercana a una descripción estructural del mismo, siendo todavía
funcionamiento de dispositivos lógicos programables. una descripción funcional. Las declaraciones concurrentes se
2.2. Familiarizar al estudiante con la sintaxis y funcionamiento diferencian de las series, entre otras cosas, en que no obedecen
de las sentencias concurrentes para el control de flujo de datos a la definición de un proceso. Por ello suelen utilizarse en las
en VHDL. descripciones de flujo de datos y estructural.
2.3. Familiarizar al estudiante con la arquitectura estructural
en VHDL. 3.2. ¿Qué es la arquitectura Estructural en VHDL?
2.4. Codificar e implementar programas utilizando sentencias
concurrentes y arquitectura estructural para la resolución de Es la arquitectura más poderosa de VHDL dado que esta se basa
circuitos combinacionales básicos escritos en VHDL. en estructuras ya hechas, aquellos modelos lógicos establecidos
pueden ser compuertas, sumadores, contadores, entre otros.
II. INTRODUCCIÓN Para esto se describe el circuito con instancias de componentes.
Estas instancias forman un diseño de jerarquía superior, al
VHDL es un lenguaje de descripción de hardware que conectar los puertos de estas instancias con las señales internas
describe circuitos con alto nivel de abstracción y poco a poco del circuito, o con puertos del circuito de jerarquía superior. Es
está siendo ya un estándar de diseño. Este lenguaje divide a los la recomendada cuando el diseño digital se vuelve complejo o
circuitos en dos puntos de vista: entidades y arquitecturas. Las está conformado por múltiples bloques de hardware.
entidades modelan al circuito externamente definiendo a este En VHDL la declaración de componentes dentro de un diseño
mediante un nombre y sus conexiones que vienen siendo las se lo hace mediante la palabra COMPONENT. Un componente
entradas y salidas del circuito. En cambio, la arquitectura es la se corresponde con una entidad que ha sido declarada en otro
vista interna, la cual define el funcionamiento del circuito. módulo del diseño, o incluso en alguna biblioteca, la
declaración de este elemento se realizará en la parte declarativa
III. CUESTIONARIO de la arquitectura del módulo que se está desarrollando. La
3.1. ¿Qué es la arquitectura Flujo de Datos en VHDL? sintaxis para declarar un componente es muy parecida a la de
una entidad. [2]
Para iniciar con el estudio de VHDL, el flujo de datos es algo Para llevar a cabo todo esto Si se dispone de un compilador de
importante de conocer ya que a la hora de plantearse crear un VHDL, donde no será necesario incluir en los diseños la parte
programa en VHDL no hay que pensar como si fuera un declarativa de los componentes, es decir se pasaría a
programa típico para ordenador. No hay que olvidar que en referenciarlos de forma directa, además, la referencia de
VHDL hay que describir un hardware, algo que no se hace en componentes consiste en copiar en la arquitectura aquel
un programa para ordenador. Un circuito electrónico puede componente que se quiera utilizar, tantas veces como sea
tener muchos elementos que estén ejecutando acciones a la vez, necesario para construir el diseño.
por ejemplo, en un circuito puede tener una entrada que se
aplique a dos compuertas lógicas y de cada una obtener una 3.3. ¿Qué es una sentencia concurrente?
salida, en este caso tendría dos caminos en los que se ejecutarían
acciones (las compuertas lógicas) de forma paralela. Esto es lo VHDL al ser un lenguaje concurrente, como consecuencia no
que se llama concurrencia. VHDL es un lenguaje concurrente, se seguirá el orden en que están escritas las instrucciones a la
como consecuencia no se seguirá el orden en que están escritas hora de ejecutar el código. De hecho, si hay dos instrucciones,
las instrucciones a la hora de ejecutar el código. De hecho, si no tiene porqué ejecutarse una antes que otra, pueden ejecutarse
a la vez.

1
Para esto la instrucción básica de la ejecución concurrente es la La estructura que tiene es la siguiente:
asignación entre señales a través del símbolo <=. Para facilitar
la asignación de las señales VHDL incluye elementos de alto
nivel como son instrucciones condicionales, de selección, entre
otras.
La principal sentencia concurrente en VHDL es el proceso
(process), que define los límites de un dominio secuencial, las
restantes secuencias concurrentes son formas diferenciadas de
procesos que proporciona al lenguaje una mayor expresividad.
Las sentencias concurrentes se tienen lo siguiente: Fig. 3 Estructura Whit-Select-When -VHDL
Sentencia de asignación de señal concurrente, esta que es una
forma compacta de describir un proceso que asigna a una señal
una onda seleccionada por un conjunto de condiciones. Un ejemplo de aplicación:
Sentencia de instanciación de componentes, esta que es el
principal recurso para reutilizar entidades de diseño ya
definidas, además que permite la expresión de arquitecturas
estructurales, es decir, arquitecturas que se definen por la
declaración de unos componentes y su interconexión. [3]

3.4. Consultar cuál es la estructura básica y función de las


siguientes sentencias concurrentes en VHDL:
• When-Else

Sentencia de selección múltiple. En hardware es necesario Fig. 4 Ejemplo de la estructura Whit-Select-When - VHDL
incluir todas las opciones posibles. En este caso es obligatorio
siempre acabar la expresión con un ELSE. 3.5. Consultar cuál es la función y la sintaxis básica en
VHDL de:
La estructura que tiene es la siguiente: • Port Map

PORT MAP es una palabra clave del lenguaje VHDL utilizada


para definir las conexiones internas entre las entradas, salidas,
y señales internas. En otras palabras, cada instrucción PORT
MAP define cómo está conectada la instancia de un
componente dentro del circuito [5]

Tiene la siguiente sintaxis para realizar la instanciación [4]:


Fig. 1 Estructura When-Else -VHDL

Un ejemplo de aplicación:

• Signal

Signal es un objeto con una historia pasada de valores. Una


Fig. 2 Ejemplo de la estructura When-Else -VHDL
señal puede tener varios controladores, cada uno con un valor
actual y valores futuros proyectados. El término señal se refiere
• With-Select-When a objetos declarados por declaraciones de señal y declaraciones
de puerto. [6]
Es similar a las sentencias CASE o SWITCH de C. La
asignación se hace según el contenido de un objeto o resultado La sintaxis es la siguiente:
de cierta expresión.

2
El cual presenta el siguiente funcionamiento:

• Component

Una declaración de componente declara una interfaz de entidad


de diseño virtual que se puede utilizar en la declaración de
creación de instancias de componentes. [7]

La sintaxis es la siguiente:

Fig. 7 Funcionamiento MUX 4 a 1 – Quartus Prime Lite

3.7. Utilizando una sentencia concurrente realizar un


programa en VHDL que permita convertir un numero
binario de 4 bits en su correspondiente número BCD.
3.6. Utilizando una sentencia concurrente realizar un Emplee una variable de 4 bits para las unidades y una
programa en VHDL que permita simular el funcionamiento variable de 4 bits para las decenas. Presentar el código
de un mux 4 a 1. Presentar el código implementado y la implementado y la simulación del correcto funcionamiento
simulación del correcto funcionamiento utilizando el utilizando el University Program VWF.
University Program VWF.

Fig. 8 Código – Quartus Prime Lite

El cual presenta el siguiente funcionamiento:


Fig. 5 Código MUX 2 a 1 (complemento) – Quartus Prime Lite

Fig. 9 Funcionamiento – Quartus Prime Lite

Fig. 6 Código del MUX 4 a 1 – Quartus Prime Lite

3
REFERENCIAS

[1] “DISPOSITIVOS LÓGICOS PROGRAMABLES LENGUAJE VHDL


http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_VHDL 2011.”
[Online]. Available:
http://ciecfie.epn.edu.ec/wss/VirtualDirectories/80/pag_personales/pch
ico/Materiales_DLP/seminario_folleto.pdf.

[2] “Programación en VHDL/Arquitectura - Wikilibros,” Wikibooks.org,


2019.
https://es.m.wikibooks.org/wiki/Programaci%C3%B3n_en_VHDL/Ar
quitectura#Descripci%C3%B3n_estructural (accessed Feb. 03, 2022).

[3] “Sesión 4: Sentencias concurrentes y paquetes.” Accessed: Feb. 03,


2022. [Online]. Available:
https://www.fdi.ucm.es/profesor/jjruz/LEC/Temas/Sesion4.pdf.

[4] “How to use Port Map instantiation in VHDL,” VHDLwhiz, Sep. 18,
2017. https://vhdlwhiz.com/port-map/ (accessed Feb. 03, 2022).

[5] “Un corto cuento de hadas sobre PORT MAP,” Estado Finito, Dec. 18,
2013. https://www.estadofinito.com/port-map/#ref01 (accessed Feb.
03, 2022).

[6] “VHDL - Signal Declaration,” peterfab.com.


https://peterfab.com/ref/vhdl/vhdl_renerta/mobile/source/vhd00064.ht
m (accessed Feb. 03, 2022).
[7] “VHDL - Component Declaration,” peterfab.com.
https://peterfab.com/ref/vhdl/vhdl_renerta/mobile/source/vhd00016.ht
m (accessed Feb. 03, 2022).

También podría gustarte