Está en la página 1de 5

Escuela politécnica Nacional 2021, Preparatorio 8

Solución de Circuitos SSI, LSI.


Facultad de Ingeniería Eléctrica y Electrónica
Laboratorio de Sistemas Digitales
Alban Diego, Moreira Erick
diego.alban01@epn.edu.ec, erick.moreira@epn.edu.ec
GR3

Resumen

Palabras clave: VHDL, Arquitectura de flujo de datos, estructura concurrente.

I. Objetivos complemento) de forma paralela. Esto es lo que se


llama concurrencia.
 Familiarizar al estudiante con la sintaxis y
funcionamiento de las sentencias concurrentes La arquitectura de flujo de datos describe la
para el control de flujo de datos en VHDL. arquitectura de la entidad bajo diseño sin describir
 Codificar programas utilizando sentencias sus componentes en términos de flujo de datos desde
concurrentes de control de flujo para la
la entrada hacia la salida. Este estilo es el más
resolución de circuitos combinacionales básicos
escritos en VHDL. cercano a la descripción RTL (Register-transfer
 Relacionar conceptos de sistemas digitales con level) del circuito. A diferencia del modelado de
el funcionamiento de dispositivos lógicos comportamiento, el orden de las declaraciones no es
programables. importante.

Los diseños combinacionales son los utilizan el


II. Materiales estilo de modelado Dataflow; en el que se describe
la funcionalidad de la entidad mediante
 Computadora. declaraciones concurrentes (sin definir la estructura
 Micrófono externos o integrados. del diseño). Las sentencias concurrentes son aquellas
 Parlantes externos o integrados. sentencias que se ejecutan en paralelo. 
 Quartus Prime Lite 19.1
 Navegador. En el siguiente programa (Figura 1) el cuerpo de
arquitectura contiene tres declaraciones de
III. Trabajo Preparatorio
asignación de señales concurrentes. Estas
declaraciones representan el flujo de datos, o puede
A. ¿Qué es la arquitectura Flujo de Datos en VHDL? decir que la información fluye a través de la entidad.
(200 palabras).

En VHDL hay que describir el hardware. Un circuito


electrónico puede tener muchos elementos que estén
ejecutando acciones a la vez, por ejemplo, en un
circuito puede tener una entrada que se aplique a dos
puertas lógicas y de cada una obtener una salida, en
este caso tendría dos caminos en los que se
ejecutarían acciones (operaciones lógicas (AND,
OR, NOT, IF), de unión, de intersección y de

1
Escuela politécnica Nacional 2021, Preparatorio 8

incluye elementos de alto nivel como son las


instrucciones descritas previamente.

La principal de las sentencias concurrentes es


process que define los límites de un dominio
secuencial. Las demás secuencias concurrentes son
formas diferenciadas de procesos que proporcionan
al lenguaje una mayor expresividad (alto nivel).

Una sintaxis conveniente para: tanto escribir


programas con estilo de flujo de datos, escribir
programas con arquitectura estructural, así como,
facilitar la descripción de arquitecturas regulares.
Esto debido a la forma compacta de describir un
proceso mediante sentencias de asignación de señal
Figura 1 programa con estructura concurrente
recurrente a distintas ondas seleccionadas por un
Como se mencionó en la arquitectura de flujo de conjunto de condiciones o expresiones de control.
datos, debido a la naturaleza concurrente de la
ejecución, el orden de las declaraciones no importa,
puede realizarse indistintamente. C. Consultar cuál es la estructura básica y función de
las siguientes sentencias concurrentes en VHDL:
B. ¿Qué es una sentencia concurrente? (200 palabras).
1. When-Else
Las sentencias concurrentes son aquéllas que se
ejecutan simultáneamente en la simulación, es decir, Es una sentencia de selección múltiple. En
no existe una prioridad entre unas u otras. Se utilizan hardware es necesario incluir todas las opciones
para el modelado del hardware porque describen posibles. En este caso es obligatorio siempre
adecuadamente su comportamiento. Deben de acabar la expresión con un ELSE.
formar parte siempre del cuerpo de arquitecturas o
de bloques

Algunas de ellas son:

 procesos

 asignaciones concurrentes a señal Figura 2 Estructura When-Else

 llamadas concurrentes a procedimientos Ejemplo:

 bloques

 instanciaciones de componentes
Figura 3 Aplicación sentencia When-Else
 sentencias assert-report
Siempre es obligatorio asignar algo, aunque es
 sentencias generate.
posible no realizar acción alguna, para ello se
La instrucción básica de la ejecución concurrente es utiliza la palabra reservada UNAFFECTED. De
la asignación entre señales a través del símbolo <=. esta forma se asignará el mismo valor que tenía
Para facilitar la asignación de las señales VHDL la señal. Las dos sentencias de la figura 3

2
Escuela politécnica Nacional 2021, Preparatorio 8

parecen iguales, pero en la segunda se produce port(


una transacción, aspecto que en la primera no
sucede. A,B,C,D : in STD_LOGIC;
S0,S1: in STD_LOGIC;
Z: out STD_LOGIC
2. With-Select-When );
end mux_4to1;
Es similar a las sentencias CASE o SWITCH de
C. La asignación se hace según el contenido de architecture bhv of mux_4to1 is
un objeto o resultado de cierta expresión. begin
process (A,B,C,D,S0,S1) is
begin
if (S0 ='0' and S1 = '0') then
Z <= A;
elsif (S0 ='1' and S1 = '0') then
Z <= B;
Figura 4 Estructura With-Select-When. elsif (S0 ='0' and S1 = '1') then
Z <= C;
A continuación, se muestra un ejemplo de else
aplicación. Z <= D;
end if;

end process;
end bhv;

Resultados
Figura 5 Ejemplo de aplicación With-Select-When.

La cláusula WHEN OTHERS especifica todos


los demás valores que no han sido
contemplados. También es posible utilizar la E. Utilizando una sentencia concurrente realizar
opción que se contempló en la estructura When- un programa en VHDL que permita convertir
Else (UNAFFECTED). un numero binario de 4 bits en su
correspondiente número BCD. Emplee una
variable de 4 bits para las unidades y una
D. Utilizando una sentencia concurrente realizar un variable de 4 bits para las decenas. Presentar
programa en VHDL que permita simular el el código implementado y la simulación del
funcionamiento de un mux 4 a 1. Presentar el correcto funcionamiento utilizando el Universal
código implementado y la simulación del correcto Program VWF con formato de variables
funcionamiento utilizando el Universal Program unsigned decimal.
VWF.
library IEEE;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_ARITH.ALL;
entity mux_4to1 is

3
Escuela politécnica Nacional 2021, Preparatorio 8

use IEEE.STD_LOGIC_UNSIGNED.ALL;
if Z(15 downto 12) > 4 then

Z(15 downto 12) := Z(15 downto 12) + 3;

end if;
entity Conv_Bin_BCD is

Port ( Bin : in STD_LOGIC_VECTOR (3


Z(17 downto 1) := Z(16 downto 0);
downto 0);
end loop;
Dec : out STD_LOGIC_VECTOR (3
downto 0);

Uni : out STD_LOGIC_VECTOR (3 Dec <= Z(15 downto 12);


downto 0));
Uni <= Z(11 downto 8);
end Conv_Bin_BCD;
end Process;

end Behavioral;
architecture Behavioral of Conv_Bin_BCD is
Resultados
begin

Process(Bin)
IV. Referencias
variable Z: STD_LOGIC_VECTOR (15 downto
0);
[1] WikiLibros, «Programación en
begin VHDL/Arquitectura,» Wikimedia, 8 Octubre
2019. [En línea]. Available:
for i in 0 to 15 loop https://es.wikibooks.org/wiki/Programación_en
_VHDL/Arquitectura#Descripción_de_flujo_d
Z(i) := '0'; e_datos. [Último acceso: 21 Febrero 2021].
end loop; [2] O'Reilly, «Dataflow Modelling,» O'Reilly
Media, 2021. [En línea]. Available:
Z(10 downto 3) := Bin;
https://www.oreilly.com/library/view/vhdl/978
8131732113/xhtml/chapter005.xhtml#:~:text=
Dataflow%20modelling%20describes%20the
for i in 0 to 4 loop %20architecture,RTL%20description%20of
%20the%20circuit.. [Último acceso: 21
Febrero 2021].
if Z(11 downto 8) > 4 then

Z(11 downto 8) := Z(11 downto 8) + 3; [3] M. Krishna Patel, «Dataflow modeling,» vhdl
guide, 2017. [En línea]. Available:
end if; https://vhdlguide.readthedocs.io/en/latest/vhdl/

4
Escuela politécnica Nacional 2021, Preparatorio 8

dataflow.html. [Último acceso: 21 Ferero


2021].

[4] D. Joshi, «Dataflow modeling architecture in


VHDL,» Technobyte, 11 Abril 2020. [En
línea]. Available: https://technobyte.org/vhdl-
dataflow-modeling-architecture-style/. [Último
acceso: 21 Ferero 2021].

[5] J. J. Ruz Ortiz, «Sentencias ocncurrentes y


Paquetes,» Universidad Complutense de
Madrid, 22 Octubre 2013. [En línea].
Available:
http://www.fdi.ucm.es/profesor/jjruz/lec/temas/
Sesion4.pdf. [Último acceso: 21 Febrero 2021].

[6] S. A. Pérez López, E. Soto Campos y S.


Fernández Gómez, «Capítulo 5 - VHDL
CONCURRENTE Y SECUENCIAL,»
Universidad de Vigo, [En línea]. Available:
http://dte_recursos.webs.uvigo.es/recursos/vhdl
/c5.html. [Último acceso: 22 Febrero 2021].

[7] s. akthar, «VHDL 4 to 1 Mux (Multiplexer),»


allaboutfpga, 29 Enero 2016. [En línea].
Available: https://allaboutfpga.com/vhdl-4-to-
1-mux-multiplexer/. [Último acceso: 22
Febrero 2021].

También podría gustarte