0% encontró este documento útil (0 votos)
3 vistas7 páginas

Diseño MSI en VHDL: Multiplexores y Sumadores

La práctica N°9 del laboratorio de sistemas digitales se centra en el diseño de circuitos combinacionales utilizando la arquitectura estructural en VHDL. Los estudiantes aprenderán a codificar programas y simular el funcionamiento de un multiplexor 16 a 1 y un sumador binario de 3 bits, utilizando componentes previamente definidos. Además, se explorará el uso del RTL Viewer en Quartus Prime para visualizar el diseño digital.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas7 páginas

Diseño MSI en VHDL: Multiplexores y Sumadores

La práctica N°9 del laboratorio de sistemas digitales se centra en el diseño de circuitos combinacionales utilizando la arquitectura estructural en VHDL. Los estudiantes aprenderán a codificar programas y simular el funcionamiento de un multiplexor 16 a 1 y un sumador binario de 3 bits, utilizando componentes previamente definidos. Además, se explorará el uso del RTL Viewer en Quartus Prime para visualizar el diseño digital.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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]

También podría gustarte