Codigo Prac 2 Diseño Logico

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

1.

Diseño con compuertas básicas

1. Diseño de una compuerta mayoritaria.


Una compuerta mayoritaria es una compuerta cuya salida vale “1” cuando la mayoría de las entradas
vale “1”. Empleando compuertas básicas, diseñe una compuerta mayoritaria de 4 bits. Indicar el
procedimiento de diseño.
Tabla de verdad de la compuerta mayoritaria
A B C D F
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1

Mapa de Karnaugh

Ilustración 4. Mapa de karnaugh de la compuerta mayoritaria

Función booleana
Con ayuda del mapa de Karnaugh y algebra de Boole hallamos la siguiente expresión:
F=((AB) ((C+D) + (CD))) + ((CD) (A+B))

Diagrama lógico

Ilustración 5. Diagrama Lógico de la compuerta mayoritaria a 4 bits.

Programa en VHDL
Entity comp_mayor is
Port (a,b,c,d: in bit;
f: out bit);
end comp_mayor;

architecture comp_mayor_arch of comp_mayor is


begin
f<= ((a and b) and ((c or d) or (c and d))) or ((c and d) and (a or b);
end comp_mayor_arch;

2. Diseño con compuertas XOR.


2. Diseño de un comparador de magnitud.
Empleando compuertas lógicas, diseñe un circuito combinatorio que compare dos números binarios de 3
bits c/u. Únicamente se tendrá salida cuando ambos números sean iguales. Indicar el procedimiento de
diseño.

Tabla de Verdad del Comparador de Magnitud


A B C D E F X
0 0 0 0 0 0 1
0 0 0 0 0 1 0
0 0 0 0 1 0 0
0 0 0 0 1 1 0
0 0 0 1 0 0 0
0 0 0 1 0 1 0
0 0 0 1 1 0 0
0 0 0 1 1 1 0
0 0 1 0 0 0 0
0 0 1 0 0 1 1
0 0 1 0 1 0 0
0 0 1 0 1 1 0
0 0 1 1 0 0 0
0 0 1 1 0 1 0
0 0 1 1 1 0 0
0 0 1 1 1 1 0
0 1 0 0 0 0 0
0 1 0 0 0 1 0
0 1 0 0 1 0 1
0 1 0 0 1 1 0
0 1 0 1 0 0 0
0 1 0 1 0 1 0
0 1 0 1 1 0 0
0 1 0 1 1 1 0
0 1 1 0 0 0 0
0 1 1 0 0 1 0
0 1 1 0 1 0 0
0 1 1 0 1 1 1
0 1 1 1 0 0 0
0 1 1 1 0 1 0
0 1 1 1 1 0 0
0 1 1 1 1 1 0
1 0 0 0 0 0 0
1 0 0 0 0 1 0
1 0 0 0 1 0 0
1 0 0 0 1 1 0
1 0 0 1 0 0 1
1 0 0 1 0 1 0
1 0 0 1 1 0 0
1 0 0 1 1 1 0
1 0 1 0 0 0 0
1 0 1 0 0 1 0
1 0 1 0 1 0 0
1 0 1 0 1 1 0
1 0 1 1 0 0 0
1 0 1 1 0 1 1
1 0 1 1 1 0 0
1 0 1 1 1 1 0
1 1 0 0 0 0 0
1 1 0 0 0 1 0
1 1 0 0 1 0 0
1 1 0 0 1 1 0
1 1 0 1 0 0 0
1 1 0 1 0 1 0
1 1 0 1 1 0 1
1 1 0 1 1 1 0
1 1 1 0 0 0 0
1 1 1 0 0 1 0
1 1 1 0 1 0 0
1 1 1 0 1 1 0
1 1 1 1 0 0 0
1 1 1 1 0 1 0
1 1 1 1 1 0 0
1 1 1 1 1 1 1

Mapa de Karnaugh

Ilustración 6. Mapa de Karnaugh del comparador de magnitud


Función Booleana
Con ayuda del mapa de Karnaugh obtuvimos una expresión que simplificaos y finalmente nos dio:

X= (AE+A’E’) (BF+B’F’) (CF+C’F’)


Diagrama lógico

Ilustración 7. Diseño lógico del comparador de magnitud

Programa en VHDL
Entity comp_mag is
Port (a, b, c, d, e: in bit;
x: out bit);
end comp_magr;

architecture comp_mag_arch of comp_mag is


begin
f<= (a xnor e) and (b xnor f) and (c xnor f);
end comp_mag_arch;

2.2 Diseño de un generador de bit de paridad.


Empleando compuertas lógicas, diseñar un generador de paridad “PAR” para un conjunto de 4 bits (debe
generar el quinto bit). Indicar el procedimiento de diseño.

Tabla de verdad de un generador de bit de paridad


D C B A W Y X Z F
0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1 1
0 0 1 0 0 0 1 0 1
0 0 1 1 0 0 1 1 0
0 1 0 0 0 1 0 0 1
0 1 0 1 0 1 0 1 0
0 1 1 0 0 1 1 0 0
0 1 1 1 0 1 1 1 1
1 0 0 0 1 0 0 0 1
1 0 0 1 1 0 0 1 0
1 0 1 0 1 0 1 0 0
1 0 1 1 1 0 1 1 1
1 1 0 0 1 1 0 0 0
1 1 0 1 1 1 0 1 1
1 1 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1 0

Mapa de Karnaugh

Ilustración 8. Mapa de Karnaugh para la salida F


Función Booleana
Con el mapa de Karnaugh llegamos a la siguiente expresión booleana

F= ((c’b+cb’) (a’b’+ab)) + ((a’b+ab’)(c’b’+cb))

Con la tabla de verdad observamos que las salidas w, x, y, z con iguales a las entradas es decir que nos
quedan así:
W=d
Y=c
X=b
Z=a

Diagrama Lógico

Ilustración 9. Diagrama Lógico del comparador de magnitud

Programa en VHDL
entity bit_par is
port (a, b, c, d: in bit;
f, w, x, y, z: out bit);
end bit_par;

architecture bit_par_arch of bit_par is


begin
f<= ((c xor d) and (a xnor b)) or ((a xor b) and (c xnor d));
w<= a;
x<= b;
y<= c;
z<= d;
end bit_par_arch;

3. DISEÑO CON COMPUERTAS UNIVERSALES.


Diseñe el circuito lógico que se describe abajo, empleando solamente compuertas NAND’s de dos
entradas.
En la Figura no. 1 se muestra el diagrama a bloques de una alarma para automóvil. Ésta se emplea para
detectar ciertas condiciones no deseables. Los tres interruptores se utilizan para indicar el estado en que
se encuentra la puerta del lado del conductor, el encendido y los faros respectivamente.

Diseñe un circuito lógico con estos tres interruptores como entrada, de manera que la alarma sea activada
cuando se presenten cualquiera de las siguientes condiciones:
• Los faros están prendidos mientras el encendido no está activado.
• La puerta está abierta mientras el encendido está activado.
Tabla de verdad
P E F A
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Mapa de Karnaugh

Ilustración 10. Mapa de Karnaugh del circuito Alarma

Función Booleana

Al analizar el mapa de Karnaugh encontramos la expresión:

A= (E’F) + (PE)

Diagrama Lógico

Ilustración 11. Diagrama lógico de la alarma de un coche


Programa en VHDL
entity alarma is
por
t
(p,
e, f:
in
bit;
a:
out
bit)
;
end alarma;

architecture
alarma_arch of
alarma isbegin
f<= (not e and
f) or (p and e);end
alarma_arch;

También podría gustarte