Está en la página 1de 3

Informe 8: 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 14 de febrero de 2022, 09H00
francisco.cachumba@epn.edu.ec
betty.moreno@epn.edu.ec

Resumen– En el presente se representará algunas formas de );


como implementar circuitos lógicos en VHDL, además de realizar end BCDTO7SEG;
ejercicios donde se puede conocer el uso y comportamiento de las -----------------------------------------------------------------
sentencias concurrentes y la arquitectura de datos.
architecture beha of BCDTO7SEG is
Palabras clave – Datos, arquitectura, VHDL, comportamiento.
begin
I. OBJETIVOS
with BCD select
1.1. Relacionar conceptos de sistemas digitales con el SEG1 <= "1111110" when "0000",
funcionamiento de dispositivos lógicos programables. "0110000" when "0001",
1.2. Familiarizar al estudiante con la sintaxis y funcionamiento "1101101" when "0010",
de las sentencias concurrentes para el control de flujo de datos "1111001" when "0011",
en VHDL. "0110011" when "0100",
1.3. Familiarizar al estudiante con la arquitectura estructural "1011011" when "0101",
en VHDL. "1011111" when "0110",
1.4. Codificar e implementar programas utilizando sentencias "1110000" when "0111",
concurrentes y arquitectura estructural para la resolución de "1111111" when "1000",
circuitos combinacionales básicos escritos en VHDL. "1110011" when "1001",
"0000000" when others;
II. INTRODUCCIÓN
VHDL es un lenguaje de descripción de hardware que describe end architecture;
circuitos con alto nivel de abstracción y poco a poco está siendo ---------------------------------------------------------------------------
ya un estándar de diseño. Este lenguaje divide a los circuitos en Y la simulación en University Program VWF se presenta a
dos puntos de vista: entidades y arquitecturas. Las entidades continuación:
modelan al circuito externamente definiendo a este mediante un
nombre y sus conexiones que vienen siendo las entradas y
salidas del circuito. En cambio, la arquitectura es la vista
interna, la cual define el funcionamiento del circuito.

III. CUESTIONARIO
6.1. Realizar un programa que permita convertir de BCD (1
digito) a 7 segmentos (ánodo común) utilizando sentencias Fig. 1 Simulación del código – Quartus Prime Lite
concurrentes. Presentar el código implementado y la
simulación del correcto funcionamiento utilizando el 6.2. Realizar un programa en VHDL que permita convertir
University Program VWF. un numero binario de 4 bits en su correspondiente número
BCD. Emplee una variable de 4 bits para las unidades y una
Para realizar el ejercicio propuesto se empleó el siguiente: variable de 4 bits para las decenas. Los números obtenidos
en BCD transformarlos a 7 segmentos, utilizando el código
Convertidor de BCD a 7 segmentos creado en el numeral anterior. Unir los dos programas
----------------------------------------------------------------- utilizando la arquitectura estructural. Presentar los códigos
library ieee; de cada componente, el código principal, la simulación del
use ieee.std_logic_1164.all; correcto funcionamiento utilizando el University Program
----------------------------------------------------------------- VWF.
entity BCDTO7SEG is Para realizar este ejercicio se emplea los siguientes códigos:
port(
BCD : in std_logic_vector(3 downto 0); Convertidor de BCD a 7 segmentos
SEG1 : out std_logic_vector(6 downto 0)

1
-------------------------------------------------------------- begin
library ieee;
use ieee.std_logic_1164.all; with Bin select
--------------------------------------------------------------
entity BCDTO7SEG is Uni <= "0000" when "0000",
port( "0001" when "0001",
BCD : in std_logic_vector(3 downto 0); "0010" when "0010",
SEG1 : out std_logic_vector(6 downto 0) "0011" when "0011",
); "0100" when "0100",
end BCDTO7SEG; "0101" when "0101",
-------------------------------------------------------------- "0110" when "0110",
architecture beha of BCDTO7SEG is "0111" when "0111",
"1000" when "1000",
begin "1001" when "1001",
"0000" when "1010",
with BCD select "0001" when "1011",
SEG1 <= "1111110" when "0000", "0010" when "1100",
"0110000" when "0001", "0011" when "1111",
"1101101" when "0010", "0100" when "1110",
"1111001" when "0011", "0101" when others;
"0110011" when "0100",
"1011011" when "0101", M1 : BCDTO7SEG port map (Uni,auuni);
"1011111" when "0110", SEG1 <= auuni;
"1110000" when "0111",
"1111111" when "1000", with Bin select
"1110011" when "1001",
"0000000" when others; Ded <= "0000" when "0000",
"0000" when "0001",
end architecture; "0000" when "0010",
-------------------------------------------------------------- "0000" when "0011",
Código principal "0000" when "0100",
-------------------------------------------------------------- "0000" when "0101",
library ieee; "0000" when "0110",
use ieee.std_logic_1164.all; "0000" when "0111",
-------------------------------------------------------------- "0000" when "1000",
entity EJERCICIO2 is "0000" when "1001",
port( "0001" when "1010",
Bin : in std_logic_vector(3 downto 0); "0001" when "1011",
Uni : buffer std_logic_vector(3 downto 0); "0001" when "1100",
Ded : buffer std_logic_vector(3 downto 0); "0001" when "1111",
SEG1 : out std_logic_vector(6 downto 0); "0001" when "1110",
SEG2 : out std_logic_vector(6 downto 0) "0001" when others;
);
end EJERCICIO2; M2 : BCDTO7SEG port map (Ded,audec);
-------------------------------------------------------------- SEG2 <= audec;
architecture beha of EJERCICIO2 is end architecture;
component BCDTO7SEG is --------------------------------------------------------------
port(
BCD : in std_logic_vector(3 downto 0);
SEG1 : out std_logic_vector(6 downto 0)
);
end component;

signal auuni : std_logic_vector(6 downto 0);


signal audec : std_logic_vector(6 downto 0);
Fig.2 Simulación del código – Quartus Prime Lite

2
6.3. Comparar el uso de la arquitectura flujo de datos con
el uso de la arquitectura estructural. ¿En qué casos se
recomendaría el uso de cada una?

La arquitectura estructural es la mas cercana a la


implementación física de un circuito y además que hace
referencia a los componentes que intervienen y a sus
interconexiones.

La arquitectura de flujo de datos especifica las ecuaciones de


transferencia entre dispositivos de VHDL, con una ejecución o
interpretación de sentencias concurrentes.

Se recomienda el uso de esta arquitectura para los lenguajes que


pretendan describir hardware ya que deben ser mínimo
concurrentes, esto porque los sistemas tienen múltiples
unidades funcionales que trabajan simultáneamente.

IV. CONCLUSIONES Y RECOMENDACIONES


• VHDL es un lenguaje de programación donde el uso de
código mejora la forma de implementar expresiones
booleanas hacia alguna FPGA.
• La arquitectura de flujo de datos permite ejecutar una
variedad de declaraciones en secuencia o una vez.
• El uso sentencias concurrentes permite asignar valores
con una mejor distribución de código.
o Conocer el funcionamiento y sintaxis en VHDL esto para
evitar errores al momento de correr en Quartus Prime Lite.
o Se recomienda crear una carpeta nueva y no la de deafult
para la ejecución del proyecto.

REFERENCIAS

[1] Ronald Tocci, Sistemas Digitales Principios y Aplicaciones, 5ª. Edición,


Prentice Hall, [Accessed: 20- Jan- 2022]
[2] "Dispositivos Lógicos Programables", Www1.frm.utn.edu.ar. [Online].
Available:
http://www1.frm.utn.edu.ar/tecnicad1/_private/Apuntes/PLD.pdf.
[Accessed: 13 Feb- 2022].

[3] B. Diaz, “Universidad Politécnica de Madrid”, 2016

También podría gustarte