DE SAN MARCOS
Universidad del Perú - Decana de América
PROYECTO FINAL
CÓDIGO: 15190147
LIMA – PERÚ
2018
1. LABORATORIO 1
A) COMPUERTA XNOR
Implementamos 2 entradas estas con una compuerta XOR y en serie una puerta NOT, este circuito
es también una compuerta lógica combinada llamada “XNOR”. Su funcionamiento es similar a la
de los interruptores conmutados.
TABLA DE VERDAD
0 0 1
0 1 0
1 0 0
1 1 1
FUNCIÓN BOOLEANA
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity ejercicio1 is
Port ( a : in std_logic;
b : in std_logic;
y : out std_logic);
end ejercicio1;
begin
y<=a xnor b;
end xnor11;
SIMULACIÓN FUNCIONAL
Es una compuerta NAND de dos entradas (variables), esta compuerta lógica niega todo los posibles
valores de la compuerta AND, para ello veremos su tabla de verdad
TABLA DE VERDAD
0 0 1
0 1 1
1 0 1
1 1 0
FUNCIÓN BOOLEANA
̅̅̅̅̅
𝑓(𝐴, 𝐵) = (𝐴. 𝐵) = (𝐴̅ + 𝐵̅)
CÓDIGO VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity ejercicio2 is
Port ( A,B : in STD_LOGIC;
SALIDA : out STD_LOGIC);
end ejercicio2;
begin
PROCESS(A,B)
BEGIN
IF A = '1' AND B = '1' THEN
SALIDA <= '0';
ELSE
SALIDA <= '1';
END IF;
END PROCESS;
end Behavioral;
SIMULACIÓN FUNCIONAL
2. LABORATORIO 2
A) COMPUERTA OR DE 3 ENTRADAS
TABLA DE VERDAD
A B C X
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
ÁLGEBRA DE BOOLE
X=A+B+C
En la compuerta OR de 3 entradas la única forma en que el LED este apagado será cuando
las entradas sean 0 en simultáneo, caso contrario siempre será 1.
CÓDIGO VHDL
library IEEE;
use IEEE.std_logic_1164.all;
entity ejercicio3 is
port (A: in std_logic; B: in std_logic; C: in std_logic; F: out std_logic );
end ejercicio3;
begin
SIMULACIÓN FUNCIONAL
B) Determine la tabla de verdad para el circuito de la figura 3.16 obteniendo los niveles
lógicos presentes en cada una de las salidas de las compuertas para cada una de las 16
posibles combinaciones de los niveles de entrada.
TABLA DE VERDAD
A B C D E X
0 0 0 0 0 0
0 0 0 0 1 1
0 0 0 1 0 0
0 0 0 1 1 1
0 0 1 0 0 0
0 0 1 0 1 1
0 0 1 1 0 0
0 0 1 1 1 1
0 1 0 0 0 0
0 1 0 0 1 1
0 1 0 1 0 0
0 1 0 1 1 1
0 1 1 0 0 0
0 1 1 0 1 0
0 1 1 1 0 0
0 1 1 1 1 1
1 0 0 0 0 0
1 0 0 0 1 1
1 0 0 1 0 0
1 0 0 1 1 1
1 0 1 0 0 0
1 0 1 0 1 0
1 0 1 1 0 0
1 0 1 1 1 1
1 1 0 0 0 0
1 1 0 0 1 1
1 1 0 1 0 0
1 1 0 1 1 1
1 1 1 0 0 0
1 1 1 0 1 0
1 1 1 1 0 0
1 1 1 1 1
SIMULACIÓN EN DSCH
CÓDIGO VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity ejercicio4 is
PORT(A, B, C, D, E : in STD_LOGIC;
X, Y, Z, W : inout STD_LOGIC;
out1 : out STD_LOGIC);
end ejercicio4;
ARCHITECTURE a of ejercicio4 is
begin
x <= A OR B;
Y <= X AND C;
Z <= NOT Y;
W <= Z OR D;
out1 <= W AND E;
end a;
SIMULACIÓN FUNCIONAL
3. LABORATORIO 3
A) La figura 4.42 muestra el diagrama de una alarma para automóvil empleada para detectar
ciertas condiciones no deseables. Los tres interruptores se emplean para indicar el estado
en el que se encuentra la puerta del lado del conductor, el encendido y los faros
respectivamente. Diseñe un circuito lógico con tres interruptores como entradas, de
manera que la alarma se active cuando se presenten cualquiera de las siguientes
condiciones:
𝑃̅𝐸 + 𝐸̅ 𝐿 = 𝐴
Lo simulamos:
CÓDIGO VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity ejercicio5 is
end ejercicio5;
SIMULACIÓN FUNCIONAL
B) En el circuito digital que se muestra: Cuando X=0, F es el XOR de A, B y C. Si X=1, F es el OR
de A, B y C. Diseñar el circuito utilizando el mínimo de CI LS7400. Se pide:
𝐹 = 𝐴+𝐵+𝐶
X A B C F
0 0 0 0 0
0 0 0 1 1
0 0 1 0 1
0 0 1 1 0
0 1 0 0 1
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1
CÓDIGO VHDL
library ieee;
use ieee.std_logic_1164.ALL;
entity ejercicio6 is
PORT(
X, A, B, C : IN STD_LOGIC;
F : OUT STD_LOGIC);
end ejercicio6;
BEGIN
m <= X AND C;
n <= X AND NOT(C) AND B;
o <= A AND NOT(B) AND NOT(C);
p <= NOT(B) AND NOT(A) AND C;
q <= A AND B AND C;
r <= B AND NOT (C) AND NOT(A);
F <= m OR n OR o OR p OR q OR r;
END arc;
SIMULACIÓN FUNCIONAL
4. LABORATORIO 4
A) Convertir de BCD (2-4-2-1) conocido como AIKEN a BCD natural. Usar un F.A. de 4 bits.
A3 A2 A1 A0 S3 S2 S1 S0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1
0 0 1 0 0 0 1 0
0 0 1 1 0 0 1 1
0 1 0 0 0 1 0 0
1 0 1 1 0 1 0 1
1 1 0 0 0 1 1 0
1 1 0 1 0 1 1 1
1 1 1 0 1 0 0 0
1 1 1 1 1 0 0 1
Para esta simulación haremos que nuestro circuito detecte los 1 del bit más a la izquierda
y actúe como sumador, el circuito hace que se le sume (-6) a la entrada para que se
convierta en código BCD natural.
Pero si en la entrada se detecta que el bit de la izquierda es 0, entonces el número seguirá
igual.
SIMULACIÓN EN DSCH
CÓDIGO VHDL
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.std_logic_arith.ALL;
use ieee.std_logic_unsigned.ALL;
entity lab4_1 IS
PORT(
A3, A2, A1, A0 : IN STD_LOGIC;
S3, S2, S1, S0 : OUT STD_LOGIC);
end lab4_1;
S0 <= z(0);
S1 <= z(1);
S2 <= z(2);
S3 <= z(3);
end arc;
SIMULACIÓN FUNCIONAL
5. LABORATORIO 5
A) Diseñe un codificador de prioridad de 4 entradas activas en nivel bajo y una salida para
indicar que no hay ninguna entrada activa, como se muestra en la figura:
Para A1:
Mapa K
E0E1
00 01 11 10
E2E3
00 0 0 1 0
01 0 0 1 0
11 0 0 X 0
10 0 0 1 0
𝐴1 = 𝐸0 𝐸1
Para A0:
Mapa K
E0E1 00 01 11 10
E2E3
00 0 0 0 1
01 0 0 0 1
11 0 0 X 1
10 0 0 1 1
𝐴0 = ̅̅̅
𝐸1 𝐸0 + 𝐸2 𝐸0
Para Y:
Mapa K
E0E1 00 01 11 10
E2E3
00 0 0 0 0
01 0 0 0 0
11 0 0 1 0
10 0 0 0 0
𝑌 = 𝐸0 𝐸1 𝐸2 𝐸3
SIMULACIÓN EN DSCH
CÓDIGO VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity lab5_1 is
end lab5_1;
SIMULACIÓN FUNCIONAL
B) Analizar el circuito dado y hallar la expresión booleana de la salida F en función de las
entradas (x, y, z1, z0)
𝐷0 = 𝑋 ⊕ 𝑌
𝐷1 = 𝑋 + 𝑌
𝐷2 = ̅̅̅̅̅̅̅̅
𝑋+𝑌
𝐷3 = 𝑌̅
A partir de ello obtendremos la tabla de verdad con entradas Z1, Z0, X e Y, y con salida F:
TABLA DE VERDAD
X Y Z1 Z0 F
0 0 0 0 0
0 0 0 1 0
0 0 1 0 1
0 0 1 1 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 0
1 0 0 0 1
1 0 0 1 1
1 0 1 0 1
1 0 1 1 0
1 1 0 0 0
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
𝐹 = ̅̅̅̅
𝑍1̅̅̅̅ ̅̅̅̅(𝐷1) + 𝑍1𝑍0
𝑍0(𝐷0) + 𝑍0𝑍1 ̅̅̅̅ (𝐷2) + 𝑍0𝑍1(𝐷3)
Reemplazando en términos de X e Y:
𝐹 = ̅̅̅̅
𝑍1̅̅̅̅ ̅̅̅̅(𝑋 + 𝑌) + 𝑍1𝑍0
𝑍0(𝑋̅𝑌 + 𝑌̅𝑋) + 𝑍0𝑍1 ̅̅̅̅ (𝑋𝑌
̅̅̅̅) + 𝑍0𝑍1(𝑌̅)
SIMULACIÓN EN DSCH
CÓDIGO VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity lab5_2 is
PORT(
X, Y, Z1, Z0 : IN STD_LOGIC;
F : OUT STD_LOGIC);
end lab5_2;
begin
end arc;
SIMULACIÓN FUNCIONAL
6. LABORATORIO 6
LATCH SR
El Latch SR es el latch lógico más simple en donde S y R representan a set y reset respectivamente,
a diferencia de los flip-flops los latch son asíncronos, por lo que no tienen reloj (CLK).
DIAGRAMA DE ESTADOS
ECUACIÓN DE ESTADO
TABLA DE FUNCIONAMIENTO
ANÁLISIS
A partir de la tabla de funcionamiento se puede analizar la forma de trabajo del Latch SR:
SIMULACIÓN EN DSCH
DIAGRAMA DE TIEMPOS
CÓDIGO VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity lab6_1 is
PORT (
S : IN STD_LOGIC;
R : IN STD_LOGIC;
Q : OUT STD_LOGIC);
end lab6_1;
Q <= Q1;
Q1 <= S NAND notQ;
notQ <= R NAND Q1;
end arc;
SIMULACIÓN FUNCIONAL
B)
LATCH D
DIAGRAMA DE ESTADOS
ECUACIÓN DE estado
TABLA DE FUNCIONAMIENTO
ANÁLISIS
En la primera fila de tabla se puede observar la condición D=0 y Q=X, aquí la X indica una condición
no importa, en este caso cuando la entrada D=0, el estado presente el latch será el mismo que su
estado anterior sin importar el dato presente en la entrada Q.
Al analizar la tabla de verdad se puede observar que cuando la entrada D=1, el valor presente en la
entrada Q (1 o 0), será el valor que se mantendrá almacenado en el latch.
SIMULACIÓN EN DSCH
DIAGRAMA DE TIEMPOS
CÓDIGO VHDL
LIBRARY IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity lab6_2 is
PORT(
Clock, Data : IN STD_LOGIC;
Q : OUT STD_LOGIC);
end lab6_2;
begin
end arc;
SIMULACIÓN FUNCIONAL