You are on page 1of 31

Sistemas Digitales I Segundo

Laboratorio:
Funciones Lógicas: Simplificación
e Implementación. Conversión de
Códigos (EE635 – M)

Integrantes:

 Fernández Oriondo Christian Omar
 Villano Obregón Raúl
 Zumaran Miraval José Agustín

Docente: Ing. Luis Miguel Romero Goytendia
Ciclo Académico: 2016 -1
FIEE - UNI
Funciones Lógicas y Conversión de
Códigos

 Objetivos:

 Implementar funciones Booleanas utilizando diversas compuertas
lógicas.
 Comprobar la validez de los métodos algebraico y gráfico, para la
simplificación de funciones lógicas.
 Implementar circuitos combinacionales utilizando las compuertas
indicadas en cada caso.
 Aplicar lo aprendido en el primer laboratorio.

 Resumen Teórico:

 Algebra de Boole y Funciones Booleanas:

El álgebra de Boole es un sistema de elementos del conjunto B =
{0,1} y los operadores binarios {+}, {⦁} y { ⎻}, definidos de la
siguiente forma:

A B A+B A⦁B Á
0 0 0 0 1
0 1 1 0 1
1 0 1 0 0
1 1 1 1 0

Operador {+} : Operador OR
Operador {⦁} : Operador AND
Operador {⎻} : Operador NOT

Estos operadores cumplen las siguientes propiedades:

 Propiedad Conmutativa:

A+B=B+A
A⦁B=B⦁A

 Propiedad Distributiva:

A ⦁ (B+C) = A ⦁ B + A ⦁ C
A + B ⦁ C = (A+B) ⦁ (A+C)

 Elementos Neutros Diferentes:

A+0=A
A⦁1=A

 Siempre existe la negación de “A”:
A+ Á =1
A ⦁ A’ = 0

 Leyes de Morgan:

´ B= Á ⦁ B́
A+
A ´⦁ B= Á + B́

Una función booleana establece la dependencia entre una variable
de salida “f” y un conjunto de variable de entrada “A, B, C, D,…, etc.”,
es decir, una correspondencia entre el valor binario de la variable de
entrada y la variable de salida.

Las funciones booleanas son multiformes, es decir, pueden
representarse de muy diversas formas: desde el enunciado textual que
expresa las especificaciones o requisitos que definen la función, hasta
su forma algebraica como operaciones entre las variables, pasando por
su tabla de verdad que detalla en forma de listado, el valor de la
función para cada conjunto de valores de las entradas.

Un ejemplo de función booleana expresada desde un enunciado es la
siguiente:

“Cuatro tanques de gran capacidad de una planta química contienen
diferentes líquidos sometidos a calentamiento. Se utilizan sensores de
nivel de líquido para detectar si el nivel de los tanques A y B excede un
nivel predeterminado. Los sensores de temperatura de los tanques C y
D detectan cuando la temperatura de estos tanques desciende de un
límite prescrito. Suponga que las salidas A y B del sensor de nivel del
líquido son BAJOS cuando el nivel es satisfactorio y ALTOS cuando es
demasiado alto. Asimismo, las salidas C y D del sensor de temperatura
son BAJAS cuando la temperatura es satisfactoria y ALTAS cuando la
temperatura es demasiado baja. Diseñe el circuito lógico que detecte
cuando el nivel del tanque A o B es muy alto al mismo tiempo que la
temperatura ya sea en el tanque C o en el D es muy baja”.

En este caso la función booleana que nos piden depende de 4
variables: A, B, C y D.

Un ejemplo de función booleana expresada algebraicamente es la
siguiente:

f ( A , B ,C , D , E )=B Ć D É+ ACD É+ Á Ć E+ Á B́ Ć

En este caso la función booleana que nos piden depende de 5
variables: A, B, C, D y E.
 Simplificación de Funciones Booleanas:

El objetivo de la simplificación es minimizar el costo de realización de
una función mediante elementos de circuitos físicos, donde el costo
depende de la naturaleza de los elementos de circuito por utilizar. En
general, es deseable minimizar el número de elementos de circuito y
que cada elemento sea lo más sencillo posible. Algunos métodos son:

 Método de Karnaugh:

El método de Karnaugh no es más que una extensión de los
conceptos de tablas de combinaciones, diagramas de Venn y
minitérminos.
Se puede graficar fácilmente las funciones Booleanas sobre un mapa
K si estas se expresan en forma canónica, pues cada minitérmino o
maxitérmino de la forma canónica corresponde a una celda sobre el
mapa K, donde cada minitérmino se representa con 1 y cada
maxitérmino por 0.
Cuando se representa la función en suma de minitérminos,
normalmente se omite los maxitérminos del mapa y viceversa.

Cada cuadrado sobre un mapa K de dos variables tiene dos
cuadrados adyacentes lógicamente; cada cuadrado sobre un mapa
de tres variables tiene tres cuadrados adyacentes, etc. En general,
cada cuadrado en un mapa K de n variables tiene n cuadrados
adyacentes lógicamente, donde cada par de cuadrados adyacentes
difiere precisamente en una variable.

Al combinar los términos (cuadrados) en un mapa K siempre se
agrupa una cantidad de cuadrados que represente una potencia de
dos; es decir, 2, 4, 8, etc. Al agrupar dos cuadrados se elimina una
variable, al agrupar 4 cuadrados se elimina dos variables, etc.

 Método Algebraico:

Se procede mediante la aplicación de los diversos postulados y
teoremas del Algebra de Boole para simplificar las funciones
Booleanas. Es recomendable si la función tiene pocas variables, de
otro modo se complica el uso de teoremas, postulados y
propiedades.

 Método Quine-McCluskey:

El método Q-M realiza una búsqueda lineal ordenada sobre los
minitérminos de la función, para determinar todas las
combinaciones de minitérminos adyacentes lógicamente. Se
procede según:

• Se escribe la representación binaria de los productos estándar de
la función Booleana dada.
• Se ordenan de acuerdo al número de l's.
• Se combinan todos los términos posibles
En este informe de laboratorio se desarrollaran varios ejemplos usando
los diferentes métodos introducidos en este resumen teórico.

“Simplificación mediante mapa de Karnaugh”

 Códigos Binarios:

Los códigos numéricos sirven para representar números con fines de
procesamiento y de almacenamiento. En un sistema digital se utilizan
codificaciones binarias. A continuación se mencionan algunos:

 Código Binario Natural:

El sistema binario, recibe el nombre de código binario natural. La
utilización de este código presenta grandes ventajas en la
realización de operaciones aritméticas. Con n cifras binarias o bits se
pueden obtener 2" combinaciones diferentes. Cada codificación de
estas se puede asignar a una cantidad diferente.

 Código Gray:

Es un tipo especial de código binario que no es ponderado (los
dígitos que componen el código no tienen un peso asignado). Su
característica es que entre una combinación de dígitos y la
siguiente, sea ésta anterior o posterior, sólo hay una diferencia de
un dígito. Por eso también se le llama Código progresivo. Esta
progresión sucede también entre la última y la primera combinación.
Por eso se le llama también código cíclico. La figura muestra una
tabla de equivalencia:
 Códigos BCD:

Sirven para representar los dígitos decimales del O al 9 y son un
ejemplo de códigos ponderados. El código BCD utiliza 4 bits y se
conoce también como código 8421.

Los códigos BCD se utilizan para codificar números que se envían a
pantallas numéricas y para representar números de procesadores
que realizan aritmética decimal.

Existen diversos códigos BCD ponderados de los cuales los más
importantes se muestran en la tabla siguiente. Los códigos BCD no
ponderados son aquellos en los que no se tiene asignado un peso a
cada posición binaria, y el más utilizado es el BCD Exceso 3.
 Códigos de Paridad:

Se forman a partir de un código C, agregando en la posición de bit
más significativo; un bit de paridad P. En un código de paridad impar
el bit de paridad se especifica como 0 ó 1 de modo que el peso
W(P,C) sea impar. El bit de paridad de un código de paridad par se
selecciona de modo que el W(P,C) sea par. Esto se detalla en la tabla
siguiente. La detección de errores en información codificada con
paridad, se realiza con facilidad, verificando que una palabra de
código tenga la paridad correcta.

 Cuestionario:

1) Dadas las siguientes funciones:

F1 = ∑ m(0,1,2,3,8,10,12,14)
F2 =∏ M (0,3,4,7,8,11,12,15)
F3 =∏ M (1,2,3,5,6,7,9,13,14,15)
F4 = ∑ m(1,2,4,7,8,11,13,14)

a) Simplificar F1 por el método de Quine:

Como “14” es el mini término mayor, entonces se trata de una
función de 4 variables. Ordenamos los mini términos de acuerdo a la
cantidad de “Unos” que presentan en el sistema binario. Luego
calculamos las diferencias respectivas, recordando que deben ser
potencias de 2. Luego obtenemos los siguientes datos:

Mini término 1ra Diferencia 2da
Diferencia
El par (2,8) está contenido en (1,2) y (2,4), por lo que se puede
eliminar. Finalmente la función simplificada es ∑m(0,1,2,3) +
∑m(8,10,12,14) y esto resulta:

F1= Á . B́+ A . D́

Para obtener esta función utilizando solo compuertas NAND, se
niega dos veces las partes de la expresión que contengan sumas
(OR o NOR) y esto resulta:

´ ´
F1=( Á . B́) .( A ´. D́)

b) Simplificar F2 por el método de Quine-McCluskey:

Escribimos el equivalente en mini términos de F2:

F2 = ∑m(1,2,5,6,9,10,13,14)

Como “15” es el maxi término mayor, entonces se trata de una
función de 4 variables. Ordenamos os mini términos de acuerdo a la
cantidad de “Unos” que presentan en el sistema binario. Luego
calculamos las diferencias respectivas, recordando que solo debe
haber un cambio entre los bits del par de mini términos que
elegimos. Luego obtenemos los siguientes datos:
Mini término 1era Diferencia 2da
Diferencia

Luego los Implicantes primos son - - 0 1 y - - 1 0, como ninguno
de sus mini términos coinciden, entonces no se puede eliminar
alguno.

Finalmente se obtiene:

F2 =C D́+ Ć D

Para obtener esta función utilizando solo compuertas NOR, se niega
dos veces las partes de la expresión que contengan productos (AND
o NAND) y esto resulta:

F2 =Ć+´ D+ C +´ D́

c) Simplificar F3 por el método del Tabulado o Numérico:

Escribimos el equivalente en mini términos de F3:

F3 = ∑m(0,4,8,10,11,12)

Como “15” es el maxi término mayor, entonces se trata de una
función de 4 variables. Ordenamos los mini términos de acuerdo a la
cantidad de “Unos” que presentan en el sistema binario. Luego
calculamos las diferencias respectivas, recordando que deben ser
potencias de 2. Luego obtenemos los siguientes datos:

Así tenemos la tabla de implicantes primos:

Se observa que los mini términos de PI1 y PI2 también están
presentes en PI3 y PI4, por lo tanto se pueden eliminar.

Finalmente la función simplificada es ∑m(10,11) + ∑m(0,4,8,12).

F3 =A B́ C+ Ć D́

d) Simplificar F4 por el método de Karnaugh:

F4 es una función de 4 variables, por lo tanto su mapa de Karnaugh
es el siguiente:
Se observa que no se pueden juntar “unos” en grupos de 2, mucho
menos de 4 y 8. Entonces:

F4= A’.B’.C’.D + A’.B’.C.D’ + A’.B.C’.D’+ A’.B.C.D + A.B’.C’.D’ +
A.B’.C.D + A.B.C’.D + A.B.C.D’
F4= (A.B + A’.B’).(C’.D + C.D’) + (A’.B + A.B’).(C.D + C’.D’)
F4= (A⊕B)’.(C⊕D) + (A⊕B).(C⊕D)’

Finalmente:

F4 = (A⊕B) ⊕ (C⊕D)

e) Implementar la función simplificada F 1 usando sólo compuertas
NAND:

´
Nuestra función es: F1=( Á´. B́) .( A ´. D́)

“Implementación usando sólo compuertas NAND”
“Tabla de verdad de F1”

f) Implementar la función simplificada F2 usando sólo compuertas NOR:

Nuestra función es:

F2 =Ć+´ D+ C +´ D́

“Implementación usando sólo compuertas NOR”
“Tabla de verdad de F2”

g) Implementar la función simplificada F3 usando sólo compuertas AOI:

Nuestra función es:

F3 =A B́ C+ Ć D́

“Implementación usando compuertas AOI”
“Tabla de verdad de F3”

h) Implementar la función simplificada F4 usando sólo compuertas XOR:

Nuestra función es:
F4 = (A⊕B) ⊕ (C⊕D)

“Implementación usando sólo compuertas XOR”
“Tabla de verdad de F4”

i) Comprobar experimentalmente el funcionamiento en el laboratorio:

La implementación se realiza en el horario respectivo.

2) Simplificar e implementar en el laboratorio, la función
incompletamente especificada, simplificada por el método del
tabulado o numérico a cuatro literales. Determinar además los
IPE, IPES, IPNE y términos opcionales, si los hay:

f (A , B , C , D , E)=∑ m( 1,4,5,7,12,14,17,20,21,22,23,28)+d (0,3,6,19,30)

Como en la pregunta 1 y se realizó varios ejemplos de simplificación, a
partir de ahora colocaremos la función final. Construimos la siguiente
tabla según los datos:

Luego el circuito es:
Según los datos se construyó la siguiente tabla:

La función final es:
F=B́ E+C É

3) Simplificar e implementar en el laboratorio, la función
incompletamente especificada, por el método de Karnaugh a
cuatro literales:

f ( A , B ,C , D , E )=B Ć D É+ ACD É+ Á Ć E+ Á B́ Ć+d ( Á B Ć D́ É+ Á BCD É+ A B́ Ć D É)

Algunos de los términos de f están incompletos. Para completarlos se
usan las leyes del algebra de Boole. Ejemplo:

B Ć D É=( A+ Á) B Ć D É

Y con esto ya tenemos 2 minitérminos. Luego se completa el mapa de
Karnaugh:

Finalmente la función simplificada es: F=AD É+ Á Ć

Su tabla de verdad es:
El circuito es:
4) Diseñe e implemente en el laboratorio lo siguientes circuitos:

S1 S0 Función de Salida
0 0 Complemento a 2 de un numero de 4
bits
0 1 Detector de paridad impar de un
número de 4 bits
1 0 Conversor de código GRAY a BINARIO
de 4 bits
1 1 Conversor de código BINARIO a GRAY
de 4 bits

El circuito debe tener 4 entradas y 4 salidas, las cuales deben
visualizarse en LED’s. Utilice compuertas tri-state para
manejar datos de 4 bits.

Siendo las entradas A, B, C y D, elaboramos una tabla con los valores
solicitados:
A partir de esta, obtenemos las siguientes relaciones booleanas:

Como sólo disponemos de 4 salidas, entonces para controlar la función
deseada debemos cortocircuitar salidas. Para esto se usa compuertas
tri-state. La habilitación de estas compuertas dependerá de los
controles S1 y S0. Si la función deseada es la de paridad impar de la
entrada, usaremos la salida “Z” (las demás estarán inoperativas). Así
tenemos el siguiente circuito:
5) Diseñe un circuito lógico combinacional, cuya entrada es un
número codificado en binario de 4 bits y cuya salida es la
representación en código BCD del número binario de entrada.
Se pide lo siguiente:

a) La tabla de combinaciones.
b) Las funciones de salida, simplificadas por el método de
Karnaugh
c) La implementación del circuito en el laboratorio, usando
cualquier compuerta. Las salidas deben visualizarse en
LED’s.

Como la entrada es de 4 bits, esta varia del cero hasta el quince. Para
entradas mayores que nueve se necesitara un indicador de decenas,
sólo una porque la entrada a lo mucho es quince. Luego se tiene la
siguiente tabla:

Luego las salidas son:

 Z1:

 W2:
 X2:

 Y2;

 Z2:

Es evidente que la salida Z2 es igual a la entrada D.
El circuito final es:

6) Diseñar e implementar en el laboratorio un circuito detector de
código, que nos permita visualizar en diodos LED, el
equivalente binario del código que se intenta detectar, que se
muestra en la tabla. La entrada es un numero binario de cuatro
bits (generado en forma manual o a través de un contador), la
salida debe ser el código detectado y deben tener un
visualizador (LED’s de distintos colores). Por otro lado, si
ocurre una entrada invalida del código a detectar, los LED’s de
salida deben apagarse:

S1 S0 Función de Salida
0 0 EXCESO 3 GRAY (LED
VERDE)
0 1 AIKEN (LED AMARILLO)
1 0 8 4 -2 -1 (LED ROJO)
1 1 BCD (LED ANARANJADO)

Es conocido que no todas las combinaciones de 4 bits son válidas
para determinado código (Ejemplo: BCD sólo existe de 0000 hasta
1001). Considerando esto se obtuvo la siguiente tabla:

Siendo las entradas A, B, C, D y las salidas W, Y, X, Z; las relaciones
booleanas y la simulación son los siguientes:
“Circuito detector de Códigos”
7) Un código BCD se transmite a un receptor lejano. Los bits son
A, B, C y D, con A como el MSB. EL circuito receptor contiene
un detector de errores BCD que examina el código recibido y
prueba si es BCD legal (es decir ≤ 1001). Diseñe e implemente
el circuito en el laboratorio, utilizando compuertas NOR, de
modo que se produzca un nivel alto en cualquier condición de
error:

Siendo las entradas A, B, C, D y la salida F; las relaciones booleanas, la
simulación y la tabla de verdad son las siguientes:

Luego para implementar la función usando solamente compuertas
NOR, se debe negar dos veces las partes de la función que contengan
productos. Nos queda:

´ ´
F= Á + B+C
8) Diseñar e implementar en el laboratorio un conversor de
código, que convierta el código EXCESO 3 GRAY al código
AIKEN, emplee en el diseño compuertas XOR de dos entradas,
y otras compuertas. Visualizar las salidas en LED’s:

Siendo las entradas A, B, C, D y las salidas X, Y, Z y W; las relaciones
booleanas, la simulación y la tabla de verdad son las siguientes:
9) Diseñar e implementar en el laboratorio un circuito
combinacional con 4 líneas de entrada que representen un
dígito decimal en BCD y 4 líneas de salida que generen el
complemento a 9 del dígito de entrada. Visualice la salida en
un display de 7 segmentos:

Siendo las entradas A, B, C, D y las salidas W, X, Y y Z; las relaciones
booleanas, la simulación y la tabla de verdad son las siguientes:
 Observaciones, Conclusiones y Recomendaciones:

• Comprobamos la importancia de los circuitos de integración a media
escala (MSI), puesto que reducen notablemente el número de
compuertas básicas a utilizar en la implementación de los ejercicios.

 Se comprobó el funcionamiento de los distintos circuitos aritméticos,
ya sean sumadores, comparadores, etc.
 Se comprobó el funcionamiento de los multiplexores, demultiplexores,
codificadores y decodificadores.

• De la experiencia se concluye que sin el desarrollo de la
nanotecnología no sería posible que tuviéramos, por ejemplo, un
computador en casa, ya que estos en sus inicios eran muy costosos y
ocupaban mucho espacio. Hemos comprobado en esta experiencia
que, usando circuitos MSI, podemos implementar un sumador de dos
números de cuatro bits en un protoboard, y ahora un celular que ocupa
menos espacio realiza esa y muchísimas otras funciones.

 El funcionamiento de todos los circuitos fueron corroborados en el
laboratorio, pero recomendamos tener a la mano el manual de circuitos
integrados TTL, puesto que no todos los pines son correspondientes en
los diferentes circuitos, y no considerar esto puede causar errores.

 Bibliografía:

 Romero Goytendia, Luis Miguel – Sistemas Digitales – Editorial EDUNI

 Manual de Circuitos TTL - http://www.ie.itcr.ac.cr/rsoto/TTL%20Data
%20Book%20y%20mas/MANUAL_TTL_esp.pdf

 Electrónica UNICROM, para el aficionado y el experto -
http://unicrom.com/