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

1
no tiene porqué ejecutarse una antes que otra, pueden La estructura que tiene es la siguiente:
ejecutarse a la vez.
Para esto la instrucción básica de la ejecución concurrente es
la 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 Fig. 3 Estructura Whit-Select-When -VHDL
procesos que proporciona al lenguaje una mayor expresividad.
Las sentencias concurrentes se tienen lo siguiente:
Sentencia de asignación de señal concurrente, esta que es una Un ejemplo de aplicación:
forma compacta de describir un proceso que asigna a una
señal una onda seleccionada por un conjunto de condiciones.
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 Fig. 4 Ejemplo de la estructura Whit-Select-When - VHDL

Sentencia de selección múltiple. En hardware es necesario 3.5. Consultar cuál es la función y la sintaxis básica en
incluir todas las opciones posibles. En este caso es obligatorio VHDL de:
siempre acabar la expresión con un ELSE.  Port Map

La estructura que tiene es la siguiente: 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


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

2
 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


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

Fig. 8 Código – Quartus Prime Lite

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


El cual presenta el siguiente funcionamiento:

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

El cual presenta el siguiente funcionamiento:


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/pchico/Materiales_DLP/seminario_folleto.pdf.

3
“Programación en VHDL/Arquitectura - Wikilibros,” Wikibooks.org, 2019.
https://es.m.wikibooks.org/wiki/Programaci%C3%B3n_en_VHDL/Arquitectura#Descripci%C3%B3n_estructural (accessed Feb. 03, 2022).

[2] “Sesión 4: Sentencias concurrentes y paquetes.” Accessed: Feb. 03, 2022. [Online]. Available:
https://www.fdi.ucm.es/profesor/jjruz/LEC/Temas/Sesion4.pdf.

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

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

“VHDL - Signal Declaration,” peterfab.com. https://peterfab.com/ref/vhdl/vhdl_renerta/mobile/source/vhd00064.htm (accessed Feb. 03, 2022).


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

[5]

[6]

[7]

También podría gustarte