LABORATORIO DE SISTEMAS DIGITALES
PRÁCTICA N°9
Nombres: Román Paguay, Gustavo Bustamante, Alex Tapia
1. TEMA
DISEÑO MSI CON ARQUITECTURA ESTRUCTURAL DE DATOS EN VHDL
2. OBJETIVOS
2.1. Familiarizar al estudiante con la arquitectura estructural en VHDL.
2.2. Codificar programas utilizando componentes para la resolución de circuitos
combinacionales básicos escritos en VHDL.
2.3. Relacionar conceptos de sistemas digitales con el funcionamiento de dispositivos lógicos
programables.
3. TRABAJO PREPARATORIO
3.1 ¿Qué es la arquitectura Estructural en VHDL?
La descripción estructural en VHDL basa su comportamiento en modelos lógicos predefinidos,
entre los cuales se incluyen compuertas lógicas, contadores, registros y otros componentes
modulares. No describe el comportamiento secuencial mediante procesos algorítmicos, sino
que se centra en el detalle de construcción, especificando los componentes individuales y las
conexiones (señales) que los interconectan. [1]
3.2. Consultar cuál es la función y la sintaxis básica en VHDL de:
• Port Map: Podría decirse que es un tipo de conector que enlaza las señales de la arquitectura
con los puertos que se desean usar. Puede usarse por posición o nombre siendo la última la más
específica la cual puede ser más segura y menos propensa a errores.
Ejemplo de sintaxis:
nombre_instancia : nombre_componente
port map (
puerto1 => señal1,
puerto2 => señal2,
...
);
• Signal: Transporta datos entre los componentes, no es una variable, se actualiza con cada
cambio que se realice entre las conexiones. Podría entenderse como si fuera un cable si se
tratase de algo físico como tal.
Ejemplo de sintaxis: signal nombre_signal : tipo;
• Component: Bloque de código que declara una interfaz que se puede reutilizar en otra
estructura la cual ya define sus puertos: entradas y salidas.
Ejemplo de sintaxis:
component nombre_componente
port (
entrada1 : in tipo;
salida1 : out tipo
);
end component;
3.3. Consultar acerca de la herramienta RTL Viewer presente en Quartus Prime Lite
19.1.
El RTL viewer es un visor a nivel RTL (Register Transfer Level), es una herramienta que
permite visualizar el diseño digital creado usando diagrama de bloques, conexiones y
compuertas. Es útil pues se puede observar con claridad como el programa interpreta el diseño
del circuito y está disponible después de la etapa de síntesis y análisis.
Pasos para usar el RTL viewer:
1) Clickear en tools
2) Netlist viewers
3) RTL viewer
Posteriormente completado este proceso se desplegará una ventana donde se vea gráficamente
el circuito. [2]
3.4. Utilizando la arquitectura estructural y un multiplexor 4 a 1, desarrollar un
programa en VHDL que permita simular el funcionamiento de un multiplexor 16 a 1
mediante la interconexión jerárquica de módulos. Presentar los códigos de cada
componente, el código principal, la simulación del correcto funcionamiento utilizando el
University Program VWF y el mapeo de pines para su implementación.
• Código del multiplexor de 4 a 1:
library IEEE;
use IEEE.std_logic_1164.all;
entity preparatorio9 is
Port (
A: in STD_LOGIC_VECTOR (3 downto 0);
B: in STD_LOGIC_VECTOR (1 downto 0);
X: out STD_LOGIC
);
end entity;
architecture Behavioral of preparatorio9 is
begin
X <= A(0) when B = "00" else
A(1) when B = "01" else
A(2) when B = "10" else
A(3);
end architecture;
[3]
• Código del multiplexor de 16 a 1:
library IEEE;
use IEEE.std_logic_1164.all;
entity prepa9mux16_1 is
Port (
A: in STD_LOGIC_VECTOR (15 downto 0);
B: in STD_LOGIC_VECTOR (3 downto 0);
X: out STD_LOGIC
);
end entity;
architecture structural of prepa9mux16_1 is
component preparatorio9
port(
A: in STD_LOGIC_VECTOR (3 downto 0);
B: in STD_LOGIC_VECTOR (1 downto 0);
X: out STD_LOGIC
);
end component;
signal X_int : STD_LOGIC_VECTOR(3 downto 0);
begin
M0: preparatorio9 port map (A(3 downto 0), B(1 downto 0), X_int(0));
M1: preparatorio9 port map (A(7 downto 4), B(1 downto 0), X_int(1));
M2: preparatorio9 port map (A(11 downto 8), B(1 downto 0), X_int(2));
M3: preparatorio9 port map (A(15 downto 12), B(1 downto 0), X_int(3));
M4: preparatorio9 port map (X_int, B(3 downto 2), X);
end architecture
• Resultado de la simulación en University Program VWF:
• Mapeo de pines:
3.5. Utilizando la arquitectura estructural, el medio sumador y el sumador completo
realizado en la práctica 7 realizar un programa en VHDL que permita simular el
funcionamiento de un sumador binario de 3 bits (Figura 1). Presentar los códigos de cada
componente, el código principal, la simulación del correcto funcionamiento utilizando el
University Program VWF y el mapeo de pines para su implementación.
• Código del medio sumador:
library ieee;
use ieee.std_logic_1164.all;
entity medio_sumador is
port(a, b: in std_logic;
s, co: out std_logic);
end medio_sumador;
architecture solucion of medio_sumador is
begin
s <= a xor b;
co <= a and b;
end solucion;
• Código del sumador compelto:
library ieee;
use ieee.std_logic_1164.all;
entity sumador_completo is
port(a, b, ci: in std_logic;
s, co: out std_logic);
end sumador_completo;
architecture solucion of sumador_completo is
begin
s <= a xor b xor ci;
co <= (a and b) or (ci and (a xor b));
end solucion;
• Código del sumador completo de 3 bits:
library ieee;
use ieee.std_logic_1164.all;
entity sumador_3bit_2intento is
port(A, B: in std_logic_vector(2 downto 0);
S: out std_logic_vector(2 downto 0);
Co: out std_logic);
end sumador_3bit_2intento;
architecture estructural of sumador_3bit_2intento is
-- Señales para los acarreos intermedios (cables del diagrama)
signal c1, c2: std_logic;
-- Declaramos los componentes que se creo arriba
component medio_sumador
port(a, b: in std_logic; s, co: out std_logic);
end component;
component sumador_completo
port(a, b, ci: in std_logic; s, co: out std_logic);
end component;
begin
-- BIT 0: Conectamos el Medio Sumador
U0: medio_sumador port map (A(0), B(0), S(0), c1);
-- BIT 1: Conectamos el primer Sumador Completo usando el acarreo c1
U1: sumador_completo port map (A(1), B(1), c1, S(1), c2);
-- BIT 2: Conectamos el segundo Sumador Completo usando el acarreo c2
U2: sumador_completo port map (A(2), B(2), c2, S(2), Co);
end estructural;
• Resultado de la simulación en University Program VWF:
• Mapeo de pines:
4. FUENTES
[1] J. M. Dávila, Arquitectura Estructural, tarea de Dispositivos Lógicos Programables,
Universidad Nacional Autónoma de México, Facultad de Estudios Superiores Cuautitlán,
semestre 2020‑2, 4 p. [Documento en línea]. Disponible en:
[Link]
[2] D. Moore, “Quartus: RTL Viewer,” YouTube, 4:29, 18-nov-2018. [Online]. Available:
[Link]
[3] Dra. Elizabeth Fonseca. (2020b, 16 de julio). mux [Video]. YouTube.
[Link]