Está en la página 1de 18

INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN

ASIGNATURA:
SISTEMAS DIGITALES

NOMBRE DEL TUTOR RAMÓN ERNESTO GARZA DE LOS CUATRIMESTRE 9


SANTOS
FECHA DE LUNES 29/JUNIO/2020 SEMANA DEL 08
ELABORACIÓN CURSO
NOMBRE DE ACTIVIDAD OPERADORES VHDL Y COMPUERTAS LÓGICAS.

NOMBRE DEL ALUMNO EDGAR ABRAHAM PÉREZ PADRÓN U174059L0012

OBJETIVO
 El alumno aprenderá el funcionamiento de los operadores en lenguaje VHDL para construir
diferentes tipos de expresiones mediante los cuales se pueden calcular datos.

MATERIAL Y/O EQUIPO NECESARIO

1. Conocimientos previos VHDL en material del curso.


2. Simulador VHDL (MPLAB para PIC, Quartus, ejm.).

INTRODUCCIÓN

Los operadores VHDL y las compuertas lógicas


Cuando se diseña con lógica programable se requiere del manejo de tres elementos:
 Lenguaje del tipo “HDL” (Hardware Description Language),
 Dispositivo lógico programable (CPLD o FPGA)  Plataforma de desarrollo.

Introducción al lenguaje VHDL


Un programa en VHDL requiere de tres módulos fundamentales:
 El módulo de las bibliotecas (LIBRARY), que es la parte en la que se listan todas las
bibliotecas que se usaran en el diseño. Como por ejemplo: ieee, std, work, etc.
 El módulo de la entidad (ENTITY), que es la parte donde se especifican los pines de
entrada/salida del circuito.
 El módulo de la arquitectura (ARCHITECTURE), que es la parte que contiene el código que
describe el comportamiento del circuito.

Los comentarios empiezan con dos guiones "--" seguidos, hasta el final de línea. Los caracteres son
cualquier letra o número y se escriben entre comillas simples: '2', 't'. Las cadenas son un conjunto de
caracteres y se escriben entre comillas dobles: "hola", los bits son en realidad caracteres, y es
posible formar con ellos cadenas y representar números por ejemplo: "1110100", O"126", X"FE"; el
primer número es binario, el segundo octal, esto se indica con una O antecediendo la cadena, el
último número es hexadecimal; indicado por la X delante de la cadena. Palabras reservadas. Son
aquellas que tienen un significado especial en VHDL. La entidad puede tomar cualquier nombre,
excepto las palabras reservadas En la arquitectura se describe el comportamiento funcional del
módulo entidad. La arquitectura incluye una parte declaratoria y una parte operatoria. La parte
declaratoria puede incluir diferentes tipos de declaraciones (señales internas, componentes,
constantes, etc.). La parte operatoria incluye el código funcional del módulo; La figura I muestra la
estructura básica de cualquier código en VHDL.

LOS OPERADORES VHDL Y LAS COMPUERTAS LÓGICAS


OBJETIVO:

En lenguaje VHDL existen operadores de asignación con los cuales se transfieren valores de un
objeto de datos a otro y operadores de asociación que relacionan un objeto de datos con otro. La
figura 1.1 muestra los operadores más utilizados.
DESARROLLO DE LA PRÁCTICA

ACTIVIDADES:
1. Crear una carpeta de trabajo, tal como se muestra en la figura 1.2

2. Ejecutar la plataforma de desarrollo para lógica programable de Altera (INTEL Quartus Prime
Lite Edition.) el cual se puede descargar de la siguiente liga
https://www.intel.la/content/www/xl/es/software/programmable/quartus-prime/overview.html.
3. Utilizar la herramienta de diseño en el editor de texto para introducir el código funcional de
las diferentes compuertas lógicas en lenguaje VHDL. El archivo en VHDL generado debe
tener la extensión *.vhd. La figura 1.3 muestra el código requerido para las compuertas: OR,
XOR, AND

4. Utilizar la herramienta de simulación de la plataforma de desarrollo para verificar el


comportamiento lógico de las compuertas básicas. La figura 1.4 muestra la simulación de
esta práctica.

PROCEDIMIENTO DE SOLUCIÓN Y COMENTARIOS

Pantallas del Simulador para la realización de la práctica

Link del Simulador: https://www.edaplayground.com/


Pantalla Inicial del Simulador 1

Una vez estemos dentro del simulador seleccionamos la opción de VHDL en Testbench + Design.

Nos aparecerá la siguiente pantalla en la que ya se puede emplear el código de VHDL.


Pantalla Inicial del Simulador con Extensión de Archivos .vhd 2

Ahora lo que resta es aplicar la siguiente configuración en el simulador para que este pueda realizar
las operaciones de acuerdo a cada compuerta lógica (OR, XOR, AND), en base a 0 y 1 según la
Entrada A y la Entrada B los cuales se asignan de acuerdo a las Tablas de Verdad de cada
Compuerta Lógica antes mencionada.
Una vez realizado lo anterior el software está configurado para que el código sea compilado
satisfactroriamente, de igual manera los resultados de la ejecución sean simulados de manera
correcta.

En la ventana de testbench.vhd se debe de colocar el siguiente código:

En la ventana de design.vhd se debe de colocar el siguiente código:


Una vez realizado lo antrior sólo resta compilar el código y observar los resultados.
Ventana de Simulación de Compuertas Lógicas 1

Finalmente aparecerá la Ventana de Simulación.

Resultados del Simulador para cada una de las compuertas a través de VHDL.

Resultados de la Compuerta CAND


Cuando A y B tienen como valor de entrada 0 el resultado de CAND es 0 de acuerdo a su tabla de
verdad.

Cuando A tiene como valor de entrada 0 y B el valor de 1 el resultado de CAND es 0 de acuerdo a


su tabla de verdad.
Cuando A tiene como valor de entrada 1 y B el valor de 0 el resultado de CAND es 0 de acuerdo a
su tabla de verdad.

Cuando A y B tienen como valor de entrada 1 el resultado de CAND es 1 de acuerdo a su tabla de


verdad.

Resultados de la Compuerta COR


Cuando A y B tienen como valor de entrada 0 el resultado de COR es 0 de acuerdo a su tabla de
verdad.

Cuando A tiene como valor de entrada 0 y B el valor de 1 el resultado de COR es 1 de acuerdo a


su tabla de verdad.
Cuando A tiene como valor de entrada 1 y B el valor de 0 el resultado de COR es 1 de acuerdo a
su tabla de verdad.

Cuando A y B tienen como valor de entrada 1 el resultado de COR es 1 de acuerdo a su tabla de


verdad.

Resultados de la Compuerta CXOR


Cuando A y B tienen como valor de entrada 0 el resultado de CXOR es 0 de acuerdo a su tabla de
verdad.

Cuando A tiene como valor de entrada 0 y B el valor de 1 el resultado de CXOR es 1 de acuerdo a


su tabla de verdad.
Cuando A tiene como valor de entrada 1 y B el valor de 0 el resultado de CXOR es 1 de acuerdo a
su tabla de verdad.

Cuando A y B tienen como valor de entrada 1 el resultado de CXOR es 0 de acuerdo a su tabla de


verdad.

Conclusión complementaria a la del video

De acuerdo a lo dicho en el video el comprender como funcionan las tablas de verdad, así como las
operaciones que realiza cada compuerta resulta de gran ayuda al momento de simular circuitos de
manera real o simulada, ya que al combinar diversas compuertas se pueden desarrollar cientos de
circuitos distintos, de los cuales una vez comprendido su funcionamiento es fácil determinar en qué
casos de acuerdo a los valores de entrada el sistema se enciende o se paga, transmite o no señal,
realiza una determinada operación binaria, etc.

Link de un video (YouTube) donde se explique la realización del procedimiento y las


conclusiones del trabajo generado: https://youtu.be/La4JXUl9Jds

Link de los códigos VHDL de manera online: https://www.edaplayground.com/x/4dSi

Código en VHDL empleado para la práctica:

testbench.vhd

-- Testbench para Compuertas


library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;

entity Test_Pruebas is
-- Vacío
end Test_Pruebas;

architecture TP of Test_Pruebas is

-- DUT componente
component COMPUERTAS is
port(
A: in std_logic;
B: in std_logic;
COR: out std_logic;
CXOR: out std_logic;
CAND: out std_logic);
end component;
signal Entrada_A, Entrada_B: std_logic;

begin

-- Connectar DUT
DUT: COMPUERTAS port map(Entrada_A, Entrada_B);

process
begin
Entrada_A <= '0';
Entrada_B <= '0';
wait for 1 ns;

Entrada_A <= '0';


Entrada_B <= '1';
wait for 1 ns;

Entrada_A <= '1';


Entrada_B <= '0';
wait for 1 ns;

Entrada_A <= '1';


Entrada_B <= '1';
wait for 1 ns;

-- Limpiar Entrada
Entrada_A <= '0';
Entrada_B <= '0';

wait;
end process;
end TP;
design.vhd

-- Diseño de Compuertas AND, OR y XOR


library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;

entity COMPUERTAS is
port(
A: in std_logic;
B: in std_logic;
COR: out std_logic;
CXOR: out std_logic;
CAND: out std_logic);
end COMPUERTAS;

architecture Behavioral of COMPUERTAS is


begin
COR <= A OR B;
CXOR <= A XOR B;
CAND <= A AND B;
end Behavioral;

BIBLIOGRAFÍA

https://rua.ua.es/dspace/bitstream/10045/19252/1/practica3.pdf

También podría gustarte