Вы находитесь на странице: 1из 10

LABORATORIO DE

SISTEMAS DIGITALES BÁSICO


PRÁCTICA # 6
CAPÍTULO DEL CURSO: USO DEL PROGRAMA QUARTUS PARA LA
SIMULACION DE UN CIRCUITO COMBINATORIAL UTILIZANDO
PROGRAMACIÓN EN CÓDIGO VHDL Y DIAGRAMA DE BLOQUES.

OBJETIVOS DE APRENDIZAJE:
 Simular en Quartus un sistema digital diseñado a partir de programación en
código VHDL y programación gráfica con diagramas de bloques.
 Aplicar conceptos de simulación en Quartus para convertir un código VHDL
en su correspondiente símbolo.

DURACIÓN: 120 minutos

MATERIALES Y HERRAMIENTAS:

- Circuitos MSI estudiados en las sesiones de clase teóricas.


- Quartus Prime.

MARCO TEÓRICO:

En esta práctica, se utilizan dispositivos digitales estudiados anteriormente,


conectados entre sí para realizar la siguiente función:

Sistema digital que suma 2 números BCD (A y B) de 4 bits y muestra el resultado de


la suma en código BCD.

Se utiliza la programación en VHDL y la programación en diagrama de bloques


estudiado en las clases teóricas.

DESCRIPCIÓN DE LA PRÁCTICA # 6:

Procedimiento:

En esta práctica, se hace la simulación del circuito implementado en el laboratorio


correspondiente a la Práctica # 5, para el cual se hizo uso de circuitos integrados MSI
y SSI.

Para este circuito, se utiliza 2 sumadores, un comparador, un multiplexor de 2 a 1 y


una compuerta OR de 2 entradas, codificados en VHDL.
1. Dado el código VHDL de los dispositivos a usarse, realice la simulación de
cada uno y luego convierta cada código a un bloque, siguiendo los pasos
descritos en el anexo a este documento.

 Mux de 2 a 1

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity mux_2to1 is
Port ( SEL : in STD_LOGIC;
I0 : in STD_LOGIC_VECTOR (3 downto 0);
I1 : in STD_LOGIC_VECTOR (3 downto 0);
X : out STD_LOGIC_VECTOR (3 downto 0));
end mux_2to1;

architecture Behavioral of mux_2to1 is


begin
X <= I1 when (SEL = '1') else I0;
end Behavioral;

 Comparador de 4 bits

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all ;
ENTITY comparador IS
PORT ( A,N: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
igual,mayor,menor: OUT STD_LOGIC);
END comparador;
ARCHITECTURE solucion OF comparador IS
BEGIN
igual <= '1' WHEN A = N ELSE '0';
mayor <= '1' WHEN A > N ELSE '0';
menor <='1' WHEN A < N ELSE'0';
END solucion;

 Sumador de 4 bits (sum)

library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_signed.all;
use IEEE.NUMERIC_STD.all;

ENTITY sum IS
PORT (a : IN std_logic_vector(3 DOWNTO 0);
b : IN std_logic_vector(3 DOWNTO 0);
salida : OUT std_logic_vector(3 DOWNTO 0);
c: OUT std_logic);
END sum;

ARCHITECTURE synth OF sum IS


signal suma: std_logic_vector(4 DOWNTO 0);
BEGIN

PROCESS (a, b) IS
BEGIN
suma <= (('0'&a)+('0'&b));
salida<= suma(3 DOWNTO 0);
c<= suma(4);
END PROCESS;
END synth;

 Sumador de 4 bits(sum1)

library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_signed.all;
use IEEE.NUMERIC_STD.all;

ENTITY sum1 IS
PORT (D : IN std_logic_vector(3 DOWNTO 0);
F : IN std_logic_vector(3 DOWNTO 0);
sal : OUT std_logic_vector(3 DOWNTO 0);
c0: OUT std_logic);
END sum1;

ARCHITECTURE synth OF sum1 IS


signal suma: std_logic_vector(4 DOWNTO 0);
BEGIN

PROCESS (D, F) IS
BEGIN
suma <= (('0'&D)+('0'&F));
sal<= suma(3 DOWNTO 0);
c0<= suma(4);
END PROCESS;
END synth;

2. Una vez realizado el bloque de cada dispositivo, de modo que estén guardados
en la librería creada por uno mismo, implementar el siguiente circuito utilizando
dichos bloques; seleccionando los pines de entrada y salida.
Nota: Se crea un solo archivo BDF en el proyecto, donde se debe añadir cada
bloque hasta lograr obtener el circuito mostrado.
3.- Guardar el circuito anterior, luego aplicar la opción Set as Top-level Entity.

4.- Luego, se realiza la compilación, seleccionando en el menú Processing, opción


Start Compilation. Haciendo esto, se debe obtener un mensaje de que este paso es
correcto para continuar al siguiente.

5.- Posteriormente, se crea el archivo Waweform Vector (tal como se realizó en la


práctica 4), para lo cual se escoge en el menú File, New, University Program WV.

En el archivo Waveform Vector, con la opción Node Finder, observe todas las
señales del circuito programado y proceda a colocarlas en el lado derecho de esta
ventana.

6.- Luego, en el archivo Waweform Vector, se ingresan los valores de las entradas
como se muestra a continuación:
Se observan 2 salidas: decena de un bit y sal tipo vector de 4 bits.

7.- A continuación, simule el programa, utilizando la opción Run Funtional


Simulation. Haciendo esto, se obtiene lo siguiente:
Se observa que la salida, efectivamente está generando la suma de las entradas del
circuito.

8.- Para observar la salida en formato decimal, aplique la opción Radix, Unsigned
decimal como se muestra a continuación:
9.- De acuerdo con esto se obtiene lo que se muestra a continuación:

Bibliografía:

[1]. Fundamentos de Lógica Digital, Stephen Brown & Zvonco Vranesic, Segunda
Edición, Mc.Graw Hill, 2009.

[2]. Sistemas Digitales: Principios y Aplicaciones, Ronald Tocci, Octava Edición,


Prentice Hall, 2003.

[4]. Digital Design with RTL Design, Verilog and VHDL, Frank Vahid, Second Edition,
John Wiley and Sons, 2010.

Por: Ing. Marcia Garcés Mendoza


Editado por: Ing. Alexis Lema Ordóñez
30/07/2018
LABORATORIO DE
SISTEMAS DIGITALES BÁSICO
ANEXO
SIMULACIÓN DE UN CIRCUITO DESCRITO EN VHDL Y CONVERSIÓN DE
CÓDIGO A BLOQUE.

1. Para la creación del proyecto seguir los pasos del 1 al 8 descritos en la Práctica
4.
2. Ahora, se agrega un archivo al proyecto, para lo cual se escoge la opción File,
New.

3. Luego, se observa la siguiente pantalla, en la que se elige la opción VHDL File,


lo que abre un editor de texto adecuado para la escritura en código VHDL.

4. En el editor de texto, escribir el código VHDL que se desea implementar,


guardar el archivo (.vhd) con el mismo nombre de la entidad, establecer como
entidad de nivel superior, realizar la compilación y comprobar su
funcionamiento, como se describió en la práctica 4.
Nota: Recuerde guardar este archivo (.vhd) con el mismo nombre de la entidad.
5. Una vez compilado y comprobado el funcionamiento del código, crear el
símbolo del mismo, para ello dar clic derecho sobre el archivo del cual se desea
generar el bloque y seleccionar la opción Create Symbol Files for Current File.

6. Ahora puede usar este símbolo en cualquier archivo BDF del proyecto, para
este fin puede buscarlo con el nombre de la entidad o en su directorio.

Вам также может понравиться