Anda di halaman 1dari 78

Este material representa una guía del curso de

Arquitectura del Computador I. Como tal, no


pretende ser, ni lo es, un material exhaustivo de
todos los temas tratados en el curso.

Para lograr la formación necesaria que se busca


como objetivo, se deberá complementar la
información de esta guía con apoyo de la
bibliografía correspondiente y el contenido de las
clases dictadas.

En suma, se recomienda no apoyarse


exclusivamente en este material, que es una
simple guía.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Indice
INDICE....................................................................................................................................................... 2

INTRODUCCIÓN...................................................................................................................................... 4

ALGEBRA DE BOOLE............................................................................................................................. 5

PUERTAS LÓGICAS ................................................................................................................................ 6


PUERTA AND ........................................................................................................................................... 6
PUERTA OR .............................................................................................................................................. 6
PUERTA NOT............................................................................................................................................ 7
OR INCLUSIVO Y E XCLUSIVO (PUERTA XOR) ............................................................................................ 7
PUERTAS NAND Y NOR........................................................................................................................... 8
PUERTA XNOR......................................................................................................................................... 8
COMBINACIÓN DE PUERTAS LÓGICAS ...................................................................................................... 10
LEYES DEL ALGEBRA DE BOOLE..................................................................................................... 11
DEFINICIÓN DEL ALGEBRA ...................................................................................................................... 11
DUALIDAD .............................................................................................................................................. 12
TEOREMAS BÁSICOS................................................................................................................................ 13
1. Idempotencia .............................................................................................................................. 13
2. Acotamiento................................................................................................................................ 13
3. Absorción ................................................................................................................................... 13
4. Unicidad de Neutros ................................................................................................................... 14
5. Unicidad del Complemento ......................................................................................................... 14
6. Reciprocidad del Complemento (a’)’ = a ................................................................................... 15
7. Complemento de 0 y 1 ................................................................................................................. 15
8. a ≠ a’........................................................................................................................................ 15
9. Teorema del Consenso ................................................................................................................ 16
10. Propiedad ............................................................................................................................... 16
11. Teoremas de De Morgan ......................................................................................................... 16
EJEMPLOS DE ALGEBRA DE BOOLE .......................................................................................................... 17
Cálculo Proposicional ........................................................................................................................ 17
Teoría de Conjuntos ........................................................................................................................... 17
FUNCIONES BOOLENAS Y SIMPLIFICACIÓN................................................................................. 19
EXPRESIONES Y FUNCIONES BOOLEANAS ................................................................................................. 19
Constantes y Variables Booleanas ...................................................................................................... 19
Expresiones Booleanas ....................................................................................................................... 19
Funciones Booleanas.......................................................................................................................... 20
TABLAS DE ESPECIFICACIÓN .................................................................................................................... 21
EXPRESIONES Y T ABLAS DE ESPECIFICACIÓN ........................................................................................... 22
Suma de Productos Canónicos ............................................................................................................ 23
Producto de Sumas Canónicas ............................................................................................................ 24
Formas Canónicas SPC y PSC............................................................................................................ 25
SIMPLIFICACIÓN DE FUNCIONES ............................................................................................................... 26
Método Algebraico ............................................................................................................................. 26
Método de Karnaugh .......................................................................................................................... 27

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Indice 3

PUERTAS UNIVERSALES NOR Y NAND............................................................................................ 34


COMPUERTAS NOR Y NAND SON FUNCIONALMENTE COMPLETAS............................................................ 34
Compuerta NOT solo con compuertas NOR ........................................................................................ 34
Compuerta AND solo con compuertas NOR ........................................................................................ 34
Compuerta OR solo con compuertas NOR........................................................................................... 35
Compuertas NOT, AND y OR solo con compuertas NAND .................................................................. 35
Compuerta XOR solo con compuertas NOR ........................................................................................ 36
Compuerta XOR solo con compuertas NAND...................................................................................... 36
CIRCUITOS COMBINACIONALES ..................................................................................................... 37
CODIFICADORES ...................................................................................................................................... 38
Codificadores sin prioridad ................................................................................................................ 38
Codificadores con prioridad ............................................................................................................... 40
DECODIFICADORES.................................................................................................................................. 41
MULTIPLEXORES ..................................................................................................................................... 43
DEMULTIPLEXORES ................................................................................................................................. 45
COMPARADORES ..................................................................................................................................... 46
SUMADORES ........................................................................................................................................... 47
DESPLAZADORES (SHIFTER) .................................................................................................................... 48
UNIDAD ARITMÉTICO-LÓGICA (UAL)...................................................................................................... 49
CIRCUITOS SECUENCIALES .............................................................................................................. 50
SISTEMAS SECUENCIALES ........................................................................................................................ 50
Clasificación de los Circuitos Secuenciales......................................................................................... 51
Representación de Circuitos Secuenciales........................................................................................... 52
Diseño de Circuitos Secuenciales........................................................................................................ 53
CIRCUITOS BIESTABLES........................................................................................................................... 56
Biestable R-S ...................................................................................................................................... 57
CIRCUITOS TEMPORIZADORES ................................................................................................................. 58
Biestable R-S con Reloj....................................................................................................................... 58
Biestable D......................................................................................................................................... 59
FLIP-FLOPS Y REGISTROS ........................................................................................................................ 60
MEMORIA............................................................................................................................................... 61
MEMORIAS SEMICONDUCTORAS .............................................................................................................. 62
TIPOS DE MEMORIA................................................................................................................................. 63
MEMORIA COMO CIRCUITO INTEGRADO ................................................................................................... 64
REPRESENTACIÓN DE DATOS........................................................................................................... 65
DATOS NUMÉRICOS................................................................................................................................. 65
Conversiones...................................................................................................................................... 66
Representación de Enteros.................................................................................................................. 68
Aritmética Binaria .............................................................................................................................. 70
Representación en Punto Flotante....................................................................................................... 71
DATOS NO NUMÉRICOS ........................................................................................................................... 74
Caracteres.......................................................................................................................................... 74
Boolean.............................................................................................................................................. 76
REPRESENTACIÓN DE TIPOS COMPUESTOS................................................................................................ 77
Array.................................................................................................................................................. 77
Record................................................................................................................................................ 77
Unión ................................................................................................................................................. 77
String ................................................................................................................................................. 77
BIBLIOGRAFÍA...................................................................................................................................... 78

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Introducción
Al sistema que utiliza la notación algebraica para describir las relaciones lógicas se lo denomina
álgebra de Boole, en honor al lógico y matemático inglés George Boole (1813 -1864).

El álgebra de Boole es de gran importancia para el diseño de circuitos del computador pues
permite la simplificación de los circuitos lógicos. Esto permite realizar una función determinada con
menos puertas lógicas, lo que a su vez aumenta la velocidad de operación.

Podríamos decir, que si una estructura algebraica puede considerarse como base de las ciencias
de la computación esta es indudablemente la que ha sido soporte de dicha ciencia.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Algebra de Boole
Las leyes del álgebra de Boole se basan en tres operadores lógicos simples: AND, OR y NOT.
Estas tres operaciones lógicas siguen muy de cerca el lenguaje cotidiano.

Si observamos una oración, como por ejemplo:

“Si hace buen tiempo AND (y) es domingo comeremos asado.”

Que comamos asado o no dependerá de dos cosas: que haga buen tiempo y que sea domingo.

Para tomar la decisión se debe considerar si los enunciados “hace buen tiempo” y “es domingo”
son verdaderos o falsos. De las cuatro posibilidades sólo una de ellas hará que comamos
asado.

Una tabla que muestre las combinaciones posibles de los enunciados se denomina tabla de
verdad. En nuestro caso para el AND lógico planteado:

Hace buen tiempo Es domingo Comeremos asado


FALSO FALSO FALSO
FALSO VERDADERO FALSO
VERDADERO FALSO FALSO
VERDADERO VERDADERO VERDADERO

Un proceso similar se puede observar para la función OR (inclusivo):

“Si Alejandra OR (o) Miriam van al cine, Carolina también irá.”

Nuevamente hay dos condiciones que determinarán que Carolina vaya o no al cine: que
Alejandra pueda ir o que Miriam pueda ir.

La tabla de verdad para el enunciado anterior será la siguiente:

Alejandra irá Miriam irá Carolina irá al cine


FALSO FALSO FALSO
FALSO VERDADERO VERDADERO
VERDADERO FALSO VERDADERO
VERDADERO VERDADERO VERDADERO

La operación lógica (NOT) es una operación unaria, denominada operación de complemento:

“Si NOT (no) llegamos temprano, perderemos nuestro lugar.”

Esta vez la única condición a considerar es si llegamos temprano. La tabla de verdad queda:

Llegamos temprano Perderemos el lugar


FALSO VERDADERO
VERDADERO FALSO

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Puertas Lógicas
Los componentes electrónicos que componen los circuitos lógicos de una computadora se
denominan puertas lógicas.

En los circuitos digitales existen variables las cuales tienen solamente dos valores permitidos.
Comúnmente se toma tanto la corriente como el voltaje como este tipo de variables. Por ejemplo el
voltaje puede tener cambios abruptos de nivel. De esta forma se puede decir que el voltaje está en
ALTO (HIGH) o BAJO (LOW). Estos estados pueden ser asignados arbitrariamente a valores de
VERDADERO o FALSO, o también a los bits 1 y 0. Las puertas lógicas funcionan al igual que los
operadores lógicos, representando una condición de VERDADERO mediante el dígito binario 1 y la
condición de FALSO mediante el dígito binario 0.

Puerta AND
La tabla de verdad y el diagrama de la puerta lógica AND son:

x x y x*y
0 0 0
xy
0 1 0
y
1 0 0
1 1 1
Representación de una puerta AND Tabla de verdad del AND

La función de la puerta AND puede describirse en palabras como:


“La salida será 1 si ambas entradas son 1, de lo contrario será 0”.

La expresión booleana para la puerta AND es x * y.

Puerta OR
La tabla de verdad y el diagrama de la puerta lógica OR son:

x x y x+y
x+y 0 0 0
y 0 1 1
1 0 1
1 1 1
Representación de una puerta OR Tabla de verdad del OR

La expresión booleana para esta puerta es x + y.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Puertas Lógicas 7

Puerta NOT
La puerta NOT tiene una sola entrada. Su tabla de verdad y diagrama de representación son:

x x' x x’
0 1
1 0
Representación de una puerta NOT
Tabla de verdad del NOT

La expresión booleana para esta puerta es x’.

OR Inclusivo y Exclusivo (Puerta XOR)


El operador OR puede tener dos connotaciones. La primera (OR inclusivo) ya se ha estudiado. La
segunda acepción es aquella en la cual una condición binaria resulta verdadera si una de sus dos
partes es verdadera pero no las dos.

En los circuitos lógicos la operación OR exclusivo se denota por XOR. Esta puede construirse a
partir de puertas AND, OR y NOT. La tabla de verdad para esta compuerta es:

x x y x⊕y
x⊕y
0 0 0
y 0 1 1
1 0 1
1 1 0
Representación de una puerta XOR Tabla de verdad del XOR

Su expresión booleana es: x ⊕ y, y además puede ser escrita como: (x’ * y) + (x * y’)

x
x’

x XOR y
x

y y’

x y x’ * y x * y’ (x’ * y) + (x * y’)
0 0 0 0 0
0 1 1 0 1
1 0 0 1 1
1 1 0 0 0

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
8 Puertas Lógicas

Puertas NAND y NOR


Existen dos operadores booleanos que merecen estudio aparte. Estos son los operadores NAND y
NOR.
x
x y x NAND y
x NAND y 0 0 1
y 0 1 1
1 0 1
1 1 0
Representación de una puerta NAND Tabla de verdad del NAND

El resultado de la operación x NAND y es equivalente al de (x y)’, es decir, el complemento del


resultado de efectuar x AND y.

x x y x NOR y
x NOR y
0 0 1
y 0 1 0
1 0 0
1 1 0
Representación de una puerta NOR Tabla de verdad del NOR

La tabla pone de manifiesto que el resultado de la operación x NOR y, es equivalente a la


operación (x+y)’, el complemento de x OR y.

Una de las propiedades más importantes de las funciones NAND y NOR es que son
funcionalmente completas, todas las operaciones NOT, AND, OR pueden expresarse mediante una
de estas funciones. Por esta razón se dice que las funciones son puertas universales.

Puerta XNOR
También existe la puerta XNOR, inversa a la XOR.

x y (x ⊕ y)’
(x ⊕ y)’ 0 0 1
0 1 0
1 0 0
1 1 1
Representación de una puerta XNOR Tabla de verdad del XNOR

Su expresión booleana es: (x ⊕ y)’, y además puede ser escrita como: (x’ * y’) + (x * y)

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Puertas Lógicas 9

X XNOR y

x y x’ * y’ x*y (x’ * y’) + (x * y)


0 0 1 0 1
0 1 0 0 0
1 0 0 0 0
1 1 0 1 1

OBSERVACIONES

• Las compuertas AND, OR, NOT, NAND y NOR son los principales bloques constructivos del
nivel de la lógica digital

• Las compuertas NAND y NOR son funcionalmente completas, es decir que las
operaciones NOT, AND y OR se pueden expresar usando una de esas funciones. Por esta se
denominan puertas universales. La demostración de que las puertas NAND y NOR son
universales se verá más adelante.

• Las compuertas NAND y NOR requieren dos transistores cada una, mientras que las
compuertas AND y OR requieren tres

• Cualquier compuerta de la vistas (salvo el NOT) puede tener mas de dos entradas (en la
práctica no más de ocho)

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
10 Puertas Lógicas

Combinación de Puertas Lógicas


Las puertas lógicas pueden ser unidas entre sí de forma de obtener circuitos secuenciales y
combinados. Todo circuito lógico se puede representar mediante una tabla de verdad que describa
qué salida se puede esperar para las distintas combinaciones de entrada.

Por ejemplo, para un circuito sencillo:


x
p z
y

Donde z puede ser expresada como: z = (x * y) ‘


La tabla de verdad queda:

x y p z
0 0 0 1
0 1 0 1
1 0 0 1
1 1 1 0

Como hay dos entradas hay cuatro combinaciones posibles (22)

La utilización de tablas de verdad no se limita a circuitos de dos entradas y una salida, sino que se
pueden ampliar a cualquier circuito. Por ejemplo:

x
s

y
t
z

En este circuito hay tres entradas, se deben considerar ocho combinaciones (23):

x y z s t
0 0 0 1 1
0 0 1 1 1
0 1 0 1 0
0 1 1 1 1
1 0 0 1 1
1 0 1 1 1
1 1 0 0 0
1 1 1 0 1

Es importante hacer notar que el orden en que se efectúan las operaciones es decisivo.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Leyes del Algebra de Boole
Saber como se simplifican expresiones complejas de álgebra boolena, reduciéndolas a un mínimo
de operadores es de gran importancia cuando se aplican a los circuitos lógicos. Para ello es
necesario definir formalmente un álgebra de Boole.

Definición del Algebra


Sea B = {a, b, c,...}, un conjunto en el cual se han definido dos operaciones binarias + y *, una
operación unaria ' y sean 0 y 1 dos elementos diferentes de B.

Entonces a la séxtupla <B, +, *, ', 0, 1> se le llama álgebra de Boole si se cumplen las siguientes
propiedades para elementos a, b, c cualesquiera del conjunto B:

1. Asociativas
(1a) (a + b) + c = a + (b + c)
(1b) (a * b) * c = a * (b * c)

2. Conmutativas
(2a) a+b=b+a
(2b) a* b=b*a

3. Distributivas
(3a) a + (b * c) = (a + b) * (a + c)
(3b) a * (b + c) = (a * b) + (a * c)

4. Existencia de neutro
∀ a ∈B
(4a) a+0=a
(4b) a*1=a

5. Existencia del complemento

∀ a ∈ B ∃ algún a' ∈ B tal que:


(5a) a + a' = 1
(5b) a * a' = 0

La anterior álgebra de Boole se denota sencillamente B. Al elemento 0 se lo llama cero, al


elemento 1 se lo llama unidad y a a' se lo llama complemento de a. A los resultados de las
operaciones + y * se los llama suma y producto respectivamente.

Generalmente se omite el símbolo *, usándose en su lugar la yuxtaposición. Por lo tanto (3a) y (3b)
se escriben:

(3a) a + bc = (a + b) (a + c)
(3b) a (b + c) = ab + ac

Se adopta la convención usual de que, a no ser que se indique otra cosa con paréntesis, ' tiene
precedencia sobre *, y * tiene precedencia sobre +.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
12 Leyes del Algebra de Boole

Dualidad
El concepto de dualidad es una valiosa ayuda para la simplificación que se basa en la simetría de
los operadores AND (*) y OR (+).

El dual de cualquier enunciado en un álgebra de Boole B es el enunciado obtenido al intercambiar


las operaciones + y *, e intercambiar los correspondientes elementos 0 y 1, en el enunciado
original.

Ejemplo:

El dual de (1 + a)(b + 0) = b es 0a + b1 = b

Además el Principio de Dualidad nos dice que el dual de cualquier teorema en un álgebra de
Boole es también un teorema.

Es decir que si cualquier enunciado es una consecuencia de los axiomas de un álgebra de Boole,
entonces el dual también es una consecuencia de esos axiomas, ya que el enunciado dual se
puede probar usando el dual de cada paso en la demostración del enunciado original.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Leyes del Algebra de Boole 13

Teoremas Básicos
1. Idempotencia
(1a) a+a=a (1b) a*a=a

Demostración:

a*a = (a * a) + 0 Por Neutro de la suma.


= (a * a) + (a * a') Por Complemento.
= a * ( a + a') Por Distributiva.
=a*1 Por Complemento.
=a Por Neutro del producto.

a+a = (a + a) * 1 Por Neutro del producto.


= (a + a) * (a + a') Por Complemento.
= a + a * a' Por Distributiva.
=a+0 Por Complemento.
=a Por Neutro de la suma.

2. Acotamiento
(2a) a+1=1 (2b) a*0=0

Demostración:

a+1 = a + (a + a') Por Complemento.


= (a + a) + a' Por Asociativa
= a + a' Por Idempotencia (a + a = a).
=1 Por Complemento.

a*0 =0 Por Dualidad

3. Absorción
(3a) a + (a * b) = a (3b) a * (a + b) = a

Demostración:

a + (a * b) =a*1+a*b Por Neutro del producto.


= a * (1 + b) Por Distributiva.
=a*1 Por Acotamiento.
=a Por Neutro del producto.

a * (a + b) = a Por Dualidad

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
14 Leyes del Algebra de Boole

4. Unicidad de Neutros
Demostración:

Si q es neutro de la suma se cumple que:

0+q=0

Como 0 es también neutro podemos escribir:

q+0=q

Igualando miembro a miembro:

q + 0 = 0 + q (se cumple por conmutativa)

Entonces q = 0.

Si l es neutro de la multiplicación es l = 1, por dualidad.

5. Unicidad del Complemento


Por existencia de complemento se puede asegurar:

a + a' = 1 (1)
a * a' = 0 (2)

Se probará ahora que ese complemento es único. Es decir, si algún x satisface las mismas
condiciones que a', coincide con este.

Demostración:

En las condiciones de la hipótesis se cumple que:

a+x=1 (3)
a*x=0 (4)

Multiplicando por x ambos miembros de (1), se obtiene:

x*1 = x * (a + a') Por (1)


x = (x * a) + (x * a') Por Neutro y Distributiva.
= 0 + (x * a') Por (4)
= (a * a') + (x * a') Por (2)
= (a + x) * a' Por Distributiva
= 1 * a' Por (3)
= a' Por Neutro

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Leyes del Algebra de Boole 15

6. Reciprocidad del Complemento (a’)’ = a

Demostración:

Alcanza con observar que: a + a' = 1 y que A + A' = 1


a * a' = 0 A * A' = 0

Sea A = a’, si se sustituye en la expresión anterior, se tiene:

a + a' = 1 y que a' + (a')' = 1


a * a' = 0 a' * (a')' = 0

Igualando las expresiones anteriores, y aplicando las propiedades conmutativas se tiene:

a + a' = (a')' + a'


a * a' = (a')' * a'

Por unicidad del complemento, a es el complemento de a'. o sea

(a')' = a.

7. Complemento de 0 y 1
(7a) 0' = 1 (7b) 1' = 0

Demostración:

0+1=1 Por acotamiento (6a)


0*1=0 Por existencia de neutro (4b)
1 es el complemento de 0, 1 = 0'.
Por unicidad de complemento

1' = 0 Por dualidad.

8. a ≠ a’
Demostración:

Por Absurdo se supone a' = a, entonces se cumple:

a+a=1
a*a=0

Pero a+a=a=a*a Por idempotencia

Por lo que se puede deducir que 1 = 0 lo que es Absurdo.

Por lo tanto a ≠ a'.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
16 Leyes del Algebra de Boole

9. Teorema del Consenso


(9a) a + (a' * b) = a + b (9b) a * (a' + b) = a * b

Demostración:

a + (a'* b) = (a + a') * (a + b) Por Distributiva.


= 1 * (a + b) Por Complemento (a + a' = 1).
=a+b Por Neutro

a * (a' + b) Por Dualidad

10. Propiedad
(10a) a + b = 0 entonces a = 0 y b = 0
(10b) a * b = 1 entonces a = 1 y b = 1

Demostración:

a+b =0 Por hipótesis.


(a' + a) + b = a' + 0 Sumando a' a ambos miembros de la igualdad.
1+b = a' Por Complemento (a' + a = 1) y Neutro.
1 = a' Por Acotamiento (a + 1 = 1).
0 =a Por Complemento.

Por lo tanto (por existencia de neutro) 0 + b = 0 lo que implica b = 0.

11. Teoremas de De Morgan


(11a) (a + b)' = a' * b' (11b) (a * b)' = a' + b'

Demostración:

Se probará que a' * b' es el complemento de a + b, verificando que satisface las condiciones:

1) (a + b) + (a' * b') = 1 2) (a + b) * (a'* b') = 0

1) (a + b) + (a' * b') = (a + b + a') * (a + b + b') Por Distributiva


= (1 + b) * (a + 1) Por Complemento
=1*1=1 Por Acotamiento e Idempotencia

2) (a + b) * (a' * b') = (a * a' * b') + (b * a' * b') Por Distributiva


= (0 * b') + (a' * 0) Por Complemento
=0+0=0 Por Acotamiento e Idempotencia

(a * b)' = a' + b' Por Dualidad

Los teoremas de De Morgan son válidos para cualquier número de variables, es decir que:
1) (x1 + x 2 + ... + x n)' = x'1 * x'2 * ... * x'n
2) (x1 * x2 * ... * x n)' = x'1 + x'2 + ... + x'n

La demostración se realiza por inducción completa.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Leyes del Algebra de Boole 17

Ejemplos de Algebra de Boole


El Cálculo Proposicional y la Teoría de Conjuntos son instancias de un Álgebra de Boole.

Cálculo Proposicional
Definimos una proposición p como una oración o frase que puede ser verdadera (V) o falsa (F),
pero no ambas cosas a la vez. Las oraciones simples se unen mediante conectivas, siendo las
siguientes las más importantes:

Negación no ┐
Conjunción y Λ
Disyunción o V
Condicional Si … entonces →
Bicondicional Si y solo si ↔

En el lenguaje natural usamos un número más amplio de conectivas, tales como “a menos que”,
“pero”, etc. Pero estas conectivas se pueden reducir a las cuatro establecidas.

Dado las múltiples combinaciones posibles se usan tablas de verificación para expresarlas:

Proposiciones Funciones Proposicionales


p q pΛq pVq p→q p ↔q
F F F F V V
F V F V V F
V F F V F F
V V V V V V

Teoría de Conjuntos
Al definir un conjunto L no sólo se determinan sus elementos, sino también los que no los son. Sin
embargo, esto puede generar algunos problemas. Por ejemplo: Sea Z el conjunto de todos los
números enteros; esto define también un conjunto Z' que define “todo aquello que no es un número
entero”. O sea que Z' contiene por ejemplo al número ½ y letras, o cualquier elemento que no sea
entero. Para evitar complicaciones, resulta más adecuado restringir los elementos considerados a
un conjunto menor. En el ejemplo anterior, servirá el conjunto de números reales (R). Así que Z'
sería el conjunto de números reales (que no son enteros), y Z el conjunto de números enteros.

Con el fin de obtener esta restricción se define conjunto universal U como el conjunto de todos
los elementos que consideramos. El conjunto complementario de un conjunto A (o sea A') es el
complemento respecto a éste conjunto universal.

Para mostrar gráficamente la agrupación de elementos en conjuntos se usan los Diagramas de


Venn. A continuación se muestra con un Diagrama de Venn los conceptos anteriores:

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
18 Leyes del Algebra de Boole

También se define conjunto vacío ∅ al conjunto que carece de elementos.

A continuación se muestra con Diagramas de Venn las operaciones de intersección (∩) y unión de
(∪)dos conjuntos.

Ejemplo de Algebra de Boole en Conjuntos

Dado un conjunto S, se considera el conjunto potencia de S, P(S).


La séxtupla (P(S), ∪, ∩ , ‘, ∅, U) es un álgebra de Boole.

Represente mediante diagramas de Venn las siguientes expresiones.

1- A’ ∩B
2- (A ∪ B)’
3- (A ∩ B)’
4- A’ ∪ B’

5- A’ ∩ B’

Se deja como ejercicio que se verifiquen las propiedades 1, 2, 3 y los teoremas 1, 2, 3, 9, y 11 por
medio de Diagramas de Venn.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Funciones Boolenas y
Simplificación
Expresiones y Funciones Booleanas
Constantes y Variables Booleanas
Definición:

Se supone definida un álgebra de Boole en un conjunto: G = {0, 1, a, b, c,...}

Llamaremos constante en esa álgebra, a cada elemento de G.

Una variable x queda caracterizada por un subconjunto de G (el dominio de x), que es el conjunto de
valores que puede tomar.

Dada una variable cualquiera si no se hace una especificación especial se entenderá que su dominio
es todo el conjunto G.

Expresiones Booleanas
Definición:

Dada un álgebra de Boole <G, +, *> las expresiones booleanas son:

1. Constantes y variables booleanas.

2. El complemento de cualquier expresión booleana (si f es una expresión booleana, f' también lo es)

3. La suma y el producto de expresiones booleanas (si f y g son expresiones booleanas, f + g y f * g


también lo son)

4. Cualquier combinación finita del 1), 2) y 3) define una expresión booleana.

Ejemplo:
a
b+1
(a + c') * (b' * c)
b * c + (a'+ b) * c * d'

En todo lo que sigue se trabaja en un álgebra booleana de dos elementos:


G = {0, 1}, que es el interés desde el punto de vista de nuestras aplicaciones.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
20 Funciones Booleanas y Simplificación

Funciones Booleanas
Se considera un conjunto de n variables booleanas x1, x2 x3, ... , xn a partir de las mismas se define
una variable n-dimensional V.

V = (x1, x2, x3,..., xn)

Ese vector V se caracteriza por ser una sucesión de n variables booleanas perfectamente
determinadas. Toda vez que se adjudica un valor (una constante de G) a x1, uno a x2, uno a x3, etc.,
se tiene un valor de V.

Ejemplo:

Dado G = {0,1} se toma para V una dimensión 3, los posibles valores de V serán entonces:

(0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0) y (1,1,1)

Definición:

Una función booleana f es una correspondencia que a cada valor de V adjudica uno de G.

• Si la dimensión de V es n, se dice que f es una función de n variables.


• Una función booleana de n variables tiene 2n posibles valores de entrada, por lo que puede
especificarse completamente como una tabla de 2n filas. Se toma como convención listar los
valores de entrada en orden numérico (base 2):

Ejemplos:

Una función booleana para V de dimensión 2, puede definirse como:

V f(x, y)
(0, 0) 0
(0, 1) 1
(1, 0) 0
(1, 1) 1

Función booleana para V de dimensión tres:

V f(x, y, z)
(0, 0, 0) 1
(0, 0, 1) 1
(0, 1, 0) 0
(0, 1, 1) 0
(1, 0, 0) 0
(1, 0, 1) 1
(1, 1, 0) 0
(1, 1, 1) 0

Ejercicio:100
¿Cuántas funciones booleanas de 2 variables hay? ¿Y de 3?
¿Cuántas funciones booleanas de n variables hay’

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Funciones Booleanas y Simplificación 21

Tablas de Especificación
Toda función booleana pueden presentarse por medio de una tabla de especificación o tabla de
verdad.

A veces se estila el no separar las columnas de las variables individuales.

La función f(x, y, z) del ejemplo anterior, se puede representar por la siguiente tabla de verdad:

Nº Decimal x y z f(x, y, z)
0 0 0 0 1
1 0 0 1 1
2 0 1 0 0
3 0 1 1 0
4 1 0 0 0
5 1 0 1 1
6 1 1 0 0
7 1 1 1 0

Un método abreviado para especificar la función es indicar sólo los puntos para los cuales vale 1,
presentación Σ o indicar sólo los puntos para los cuales vale 0 Presentación Π

La determinación de cada punto puede hacerse considerando el vector n-dimensional de ceros y


unos, que lo caracteriza, como un número escrito en base 2, e indicar su valor decimal, que es más
breve.

Así pues, para especificar la función f cuya tabla recién se escribió, se dice, la función f(x, y, z) vale 1
para los puntos 000, 001, 101, cuyos valores decimales son 0, 1 y 5. La correspondiente
presentación es:

f(x, y, z) = Σ (0, 1, 5)

Se sobrentiende que en los demás puntos vale 0.

En forma similar, la Presentación Π especifica los puntos para los cuales f vale 0, con los mismos
procedimientos de conversión binario decimal. En este caso sería:

f(x, y, z) = Π (2, 3, 4, 6, 7)

Se elige normalmente la presentación más breve, o sea, con menos vértices. Es importante destacar
que, tanto en la Presentación Σ como en la Presentación Π , debe indicarse el número de variables
y el orden en que se consideran.

Por ejemplo f = Σ (2, 5) no es una especificación ya que puede tratarse de cualquier función de tres o
más variables, con éstas en cualquier orden.

La función f(x, y, z) = Σ (0, 1, 5, 8) tampoco es correcta, porque 8 no es un valor decimal válido para
una función de tres variables.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
22 Funciones Booleanas y Simplificación

Expresiones y Tablas de Especificación


Si se toma una expresión booleana en las variables x, y, z,... la misma define una función f en una
variable V = (x, y, z,...). En efecto, para cada valor de V, la realización de las operaciones indicadas
en la expresión determina una constante. Se puede así a partir de una expresión, construir una
tabla de especificación de la función.

El procedimiento para construir una tabla de especificación a partir de una expresión booleana es el
siguiente:

• Identificar el número de variables (n) de la expresión booleana


• Escribir los números en binario para las n variables, o sea armar una tabla de 2n filas
• Obtener fila por fila el valor de la función evaluando la expresión booleana

Ejemplo:

Dada la función f(x, y) = x’y + xy’ construir la tabla de especificación

x y x’y xy’ f(x, y)


0 0 0 0 0
0 1 1 0 1
1 0 0 1 1
1 1 0 0 0

Más interesante es el procedimiento para construir a partir de la tabla de especificación, una


expresión que genere la misma función. Debe destacarse desde ya que, a diferencia del proceso
de construcción de una tabla a partir de una expresión que es unívoco, este no lo es.

Más aún, a partir de una tabla de especificación, se puede hallar infinitas expresiones que determinan
esa misma función.

Por ejemplo:

Para la siguiente tabla de especificación:

x y f(x, y)
0 0 1
0 1 0
1 0 1
1 1 0

Algunas de las infinitas funciones son:

f(x, y) = y’
f(x, y) = x’y’ + xy’
f(x, y) = x’y’ + y’
f(x, y) = (x’ + y’) (x + y’)

Se desarrollarán dos métodos para construir por lo menos una función equivalente a la tabla de
especificación. Los métodos que se verán serán la "suma de productos canónicos" (SPC) y el
“producto de sumas canónicas” (PSC)

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Funciones Booleanas y Simplificación 23

Suma de Productos Canónicos


Llamaremos producto canónico de n variables x1, x2,... x n al producto de todas ellas donde cada
variable debe aparecer una y una sola vez, en forma simple o complementada.

El número de productos canónicos de n variables es 2n.

Los cuatro productos canónicos de las variables x1 x2 son:


x1 x2 x1' x2 x1 x2' x1'x2'

Toda función de una variable n-dimensional V, puede expresarse como suma de los productos
canónicos, de los componentes de V, cada uno con un coeficiente.

El coeficiente de cada producto canónico es el valor de la función en un punto (n-dimensional) cuyas


coordenadas se determinan así:

Si xi toma valor 1 en la tabla de verdad, entonces aparecerá en el producto canónico en forma


simple. Por lo contrario si su valor es 0, xi aparece complementada (xi').

El teorema es más difícil de enunciar que de aplicar.

Ejemplo:

Dada la siguiente tabla de especificación:

x y f(x, y)
0 0 0
0 1 1
1 0 0
1 1 1

En este caso tenemos 4 productos canónicos:

x y f(x, y) Productos Canónicos


0 0 0 x’ y’
0 1 1 x’ y
1 0 0 x y’
1 1 1 xy

Al escribir la función como suma de productos canónicos (SPC) resulta:

f(x, y) = f(0, 0) * x’ y’ + f(0, 1) * x’ y + f(1, 0) * x y’ + f(1, 1) * x y

f(x, y) = 0 * x’ y’ + 1 * x’ y + 0 * x y’ + 1 * x y Por Neutro

f(x, y) = x' y + x y

En la práctica la construcción práctica se hace con el siguiente criterio:

"La SPC se forma, a partir de la tabla de especificación buscando los valores de V =


(x1, x2,..., xn) para los cuales f vale 1. Por cada uno de ellos se suma un producto
canónico donde cada xi aparece complementada si en ese punto vale 0, y aparece
simple si en este punto vale 1".

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
24 Funciones Booleanas y Simplificación

Producto de Sumas Canónicas


Otro método para expresar una función es a través del producto de sumas canónicas.

La definición de suma canónica es, por supuesto, dual de la del producto canónico. La regla de
construcción se traduce así:

"el PSC se forma a partir de la tabla de especificación, buscando los valores de V = (x1, x2,...,
xn) por lo cual f vale 0. Por cada uno de ellos se introduce como factor una suma canónica en
que cada xi entra complementado si en ese punto vale 1 y entra simple si en ese punto vale 0".

Ejemplo:

Dada la siguiente tabla de especificación (la misma que en el ejemplo de SPC):

x y f(x, y)
0 0 0
0 1 1
1 0 0
1 1 1

Por dualidad, en este caso tenemos 4 sumas canónicas:

x y f(x, y) Sumas Canónicas


0 0 0 x+y
0 1 1 x + y’
1 0 0 x’ + y
1 1 1 x’ + y’

Al escribir la función como producto de sumas canónicas (PSC) resulta:

f(x, y) = (x + y) (x’ + y)

OBSERVACIONES

• Las funciones f(x, y) obtenidas por SPC y por PSC son distintas pero equivalentes

• Si se simplifican ambas funciones se obtiene otra función equivalente: f(x, y) = y

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Funciones Booleanas y Simplificación 25

Formas Canónicas SPC y PSC


Los productos canónicos también se los denomina mintérminos. La SPC es la suma de los
mintérminos para los cuales la función vale 1

Las sumas canónicas también se las denomina maxtérminos. El PSC es el producto de los
maxtérminos para los cuales la función vale 0

Ejemplos:

Mintérminos y Maxtérminos para una función de tres variables.

Valor decimal x y z Mintérminos Maxtérminos


0 0 0 0 x’y’z’ x+y+z
1 0 0 1 x’y’z x+y+z’
2 0 1 0 x’yz’ x+y’+z
3 0 1 1 x’yz x+y’+z’
4 1 0 0 xy’z’ x’+y+z
5 1 0 1 xy’z x’+y+z’
6 1 1 0 xyz’ x’+y’+z
7 1 1 1 xyz x’+y’+z’

Mintérminos y Maxtérminos para una función de cuatro variables.

Valor decimal w x y z Mintérminos Maxtérminos


0 0 0 0 0 w’x’y’z’ w+x+y+z
1 0 0 0 1 w’x’y’z w+x+y+z’
2 0 0 1 0 w’x’yz’ w+x+y’+z
3 0 0 1 1 w’x’yz w+x+y’+z’
4 0 1 0 0 w’xy’z’ w+x’+y+z
5 0 1 0 1 w’xy’z w+x’+y+z’
6 0 1 1 0 w’xyz’ w+x’+y’+z
7 0 1 1 1 w’xyz w+x’+y’+z’
8 1 0 0 0 wx’y’z’ w’+x+y+z
9 1 0 0 1 wx’y’z w’+x+y+z’
10 1 0 1 0 wx’yz’ w’+x+y’+z
11 1 0 1 1 wx’yz w’+x+y’+z’
12 1 1 0 0 wxy’z’ w’+x’+y+z
13 1 1 0 1 wxy’z w’+x’+y+z’
14 1 1 1 0 wxyz’ w’+x’+y’+z
15 1 1 1 1 wxyz w’+x’+y’+z’

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
26 Funciones Booleanas y Simplificación

Simplificación de Funciones
Método Algebraico
Si bien la expresión de una función como SPC tiene las virtudes de la construcción sistemática y la
unicidad, no es en general, la más económica desde el punto de vista circuital. En efecto, para una
construcción AND-OR (o NOR-NOR o NAND-NAND) interesa minimizar el número de sumandos, o
sea, el número de circuitos AND (primer nivel.). A igual número de sumandos será mejor la expresión
que tenga el menor número de variables. La expresión óptima según estos criterios se denomina
mínima suma de productos (MSP).

La reducción algebraica hace uso de los axiomas y teoremas del álgebra de Boole. La idea es ir
obteniendo expresiones equivalentes más simples hasta obtener la mínima MSP.

Los axiomas y teoremas del álgebra de Boole más útiles son los siguientes:

(1) aa' =0

(2) a +a' =1

(3) a b + a'b =b

(4) a + a b =a

(5) a'b + a =a+b

Ejemplos:

a- f(x,y,z) = x'yz + x'yz' + xyz + xyz'

x'yz + x'yz' + xyz + xyz' = x'(zy + z'y) + x(zy + z'y) Factor común.
= x'y + xy Por (3)
=y Por (3)

b- f(x,y,z) = x'y'z + xy'z + xy'z' + x'yz

x'y'z + xy'z + xy'z' + x'yz = x'(y'z + yz) + x(y'z + y'z') Factor común.
= x'z + xy' Por (3).
.

La propiedad (3), en la forma que ha sido aplicada, puede ser formulada así:

x1(x1* ... xn*) + x1'(x2* ... xn*) = x2* ... xn*

Los dos productos que se asocian difieren sólo en que una variable aparece simple en uno y
complementada en otro. Se denominan productos vecinos.

Se han desarrollado varios métodos para sistematizar la simplificación y llegar, efectivamente, a una
expresión óptima.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Funciones Booleanas y Simplificación 27

Método de Karnaugh
El método de Karnaugh se llama así en honor a Maurice Karnaugh (ingeniero de
Telecomunicaciones de los Laboratorios Bell). Es un procedimiento gráfico utilizado para simplificar
funciones booleanas. Para aplicarlos debemos conocer la tabla de especificación de la función.

Dimensión Dos

Para funciones de dos variables: f(x, y) se hace el siguiente cuadro:

x\y 0 1
0
1 x
y

Cada casillero queda asociado a un punto de la función f(x, y), y en él se indica el valor de la función.

x\y 0 1 x\y 0 1
0 x’y’ x’y 0 0 1
1 xy’ xy x 1 2 3 x
y y

Habitualmente se anotan sólo los unos, sobreentendiéndose los ceros en los lugares restantes

Para simplificar la función hay que buscar áreas adyacentes con 1 (horizontales o verticales), dado
que éstas representan x, x’, y, e y’.

Hay que sumar dichos términos

Ejemplo:

La función f(x, y) cuya tabla de especificación se indica como sigue (función OR):

x y f(x,y)
0 0 0
0 1 1
1 0 1
1 1 1

El diagrama de Karnaugh se representa así:

x\y 0 1
0 1
1 1 1

Obsérvese que con notación ∑, escribiríamos: f(x, y) = ∑ (1, 2, 3) y la SPC es: x’y + xy’ + xy.

El diagrama nos indica claramente que tenemos dos pares de vecinos, caracterizados
porque una variable queda fija y la otra se complementa. (No son vecinos los casilleros en
diagonal pues cambian dos variables, es decir que, para ser vecino, hay que tener un lado
común)

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
28 Funciones Booleanas y Simplificación

Cada par de vecinos asociados (esto se indica con un óvalo en el diagrama) admite una
representación más sencilla. Así, por ejemplo, g(x, y) = ∑ (2, 3) que corresponde a dos
vecinos, da lugar a la siguiente simplificación:

g(x, y) = xy’ + xy = x(y’ + y) = x

Pero esta expresión para la función g(x, y) podía deducirse directamente del diagrama de
Karnaugh. En efecto, observando:

x\y 0 1
0
1 1 1

Es claro que el óvalo queda caracterizado por ser “la zona donde x vale 1”, o sea que la
función es g(x, y) = x.

Cada óvalo en el diagrama de Karnaugh corresponde a un sumando en una suma de


productos. Cuanto más grande sea el óvalo, más sencilla es la expresión que lo caracteriza.

Entonces, de los cuatro posibles recubrimientos correspondientes a la función f(x, y) que


estamos analizando:

x\y 0 1
0 1
1 1 1

f(x, y) = x’y + xy’ +xy Es la Suma de Productos Canónicos

x\y 0 1
0 1
1 1 1

f(x, y) = x’y + x

x\y 0 1
0 1
1 1 1

f(x, y) = xy’ + y

x\y 0 1
0 1
1 1 1

Es el último el que nos da la MSP (mínima suma de productos). f(x, y) = x + y

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Funciones Booleanas y Simplificación 29

Dimensión Tres

Cuando se pasa a funciones de tres variables: x, y, z, debe hacerse una adjudicación de casilleros tal
que mantenga la continuidad de los vecinos.

y
x\yz 00 01 11 10
0
1 x
z

Obsérvese que la clave está en la inversión del orden habitual para el par yz. En efecto, en lugar de
seguir el orden binario, se ordena permutando 10 con 11, lo cual corresponde a 0, 1, 3, 2 en decimal.
De esta forma, para pasar de una columna a la siguiente, y de la última a la primera, sólo se modifica
un dígito (binario) por vez.

Los productos canónicos del diagrama de Karnaugh para una función de 3 variables son:

y
x\yz 00 01 11 10
0 x’y’z’ x’y’z x’yz x’yz’
1 xy’z’ xy’z xyz xyz’ x
z

Un detalle que facilita el trabajo es pasar directamente de la notación ∑ o ∏ al diagrama de


Karnaugh. Para ello, sólo es necesario conocer el equivalente decimal de cada casillero::

x\yz 00 01 11 10
0 0 1 3 2
1 4 5 7 6

En el cuadro se anotan solo los 1 (el resto es 0)

Para simplificar hay que buscar áreas adyacentes horizontales o verticales, lo más grande posible (8,
4, 2 o 1 celdas), dado que éstas representan menos términos

Hay que sumar dichos términos

Los agrupamientos (óvalos) presentan aquí mayores posibilidades, presentaremos uno de cada tipo:

x\yz 00 01 11 10
0 1 1 1 1
1 1 1 1 1

f(x, y, z) = 1

x\yz 00 01 11 10
0 1 1 1 1
1

f(x, y, z) = x’

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
30 Funciones Booleanas y Simplificación

x\yz 00 01 11 10
0 1 1
1 1 1
f(x, y, z) = z’

x\yz 00 01 11 10
0
1 1 1

f(x, y, z) = xz

x\yz 00 01 11 10
0
1 1 1

f(x, y, z) = xz’

x\yz 00 01 11 10
0 1
1 1

f(x, y, z) = y’z

x\yz 00 01 11 10
0
1 1

f(x, y, z) = xy’z’

Ejemplo:

Se va a simplificar la función f(x, y, z) = Σ (0, 1, 5, 6) por el método de Karnaugh

y
x\yz 00 01 11 10
0 1 1
1 1 1 x
z

Las agrupaciones mayores son las mostradas antes:


- Un grupo de vecinos horizontal, arriba a la izquierda: x’y’
- Un grupo de vecinos vertical, por mas que uno esté repetido: y’z
- Un elemento suelto, abajo a la derecha: xyz’

La Mínima Suma de Productos es: f(x,y,z) = x’y’ + y’z + xyz’

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Funciones Booleanas y Simplificación 31

Dimensión Cuatro

Al pasar a cuatro variables: w, x, y, z, el esquema se transforma en:

y
wx\yz 00 01 11 10
00
01
x
11
w
10
z

Obsérvese que en este caso se intercambian los pares 10 y 11 tanto en la fila (para el par wx) como
en la columna (para el par yz.)

Puede observarse que cada estado de una variable (simple o complementada), caracteriza una
región (de ocho casilleros en este caso). Las regiones menores se determinan por la intersección de
aquellos conjuntos, y corresponden al producto de las variables involucradas.

Los productos canónicos del diagrama de Karnaugh para una función de 4 variables son:

y
wx\yz 00 01 11 10
00 w’x’y’z’ w’x’y’z w’x’yz w’x’yz’
01 w’xy’z’ w’xy’z w’xyz w’xyz’
x
11 wxy’z’ wxy’z wxyz wxyz’
w
10 wx’y’z’ wx’y’z wx’yz wx’yz’
z

En éste caso el equivalente decimal de cada casillero es:

y
wx\yz 00 01 11 10
00 0 1 3 2
01 4 5 7 6
x
11 12 13 15 14
w
10 8 9 11 10
z

Para simplificar hay que buscar áreas adyacentes horizontales o verticales lo más grande posible
(16, 8, 4, 2 o 1 celdas). El mapa es como si fuera circular

Hay que sumar dichos términos

Podemos agregar algunos ejemplos de diagramas de Karnaugh para funciones de 4 variables:

wx\yz 00 01 11 10
00
01 1 1 1 1
11 1 1 1 1
10

f(w, x, y, z) = x

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
32 Funciones Booleanas y Simplificación

wx\yz 00 01 11 10
00 1 1
01 1 1
11 1 1
10 1 1

f(w, x, y, z) = z’

wx\yz 00 01 11 10
00 1 1
01
11
10 1 1

f(w, x, y, z) = x’y

wx\yz 00 01 11 10
00 1 1
01
11
10 1 1

f(w, x, y, z) = x’z’

wx\yz 00 01 11 10
00
01 1
11 1
10

f(w, x, y, z) = xyz

wx\yz 00 01 11 10
00 1
01
11
10

f(w, x, y, z) = w’x’y’z’

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Funciones Booleanas y Simplificación 33

Ejemplo:

Se va a simplificar la función f(w, x, y, z) = Σ (0, 1, 6, 8, 9, 14) por el método de Karnaugh

y
wx\yz 00 01 11 10
00 1 1
01 1
x
11 1
w
10 1 1
z

Las agrupaciones mayores son las mostradas antes:


- Un grupo de vecinos horizontal, arriba y abajo a la izquierda: x’y’
- Un grupo de vecinos vertical, al medio a la derecha: xyz’

La Mínima Suma de Productos es: f(w, x, y, z) = x’y’ + xyz’

Método de Karnaugh. Dualidad

Por dualidad se puede hacer el Karnaugh con ceros, y se obtienen productos de sumas.

Ejemplo:

Simplificar la función f(x, y, z) = Π (2, 3, 7) por el método de Karnaugh utilizando el método dual

En el mapa de Karnauh se ponen los ceros.

y’
x\yz 00 01 11 10
0 0 0
1 0 x’
z’

Las agrupaciones mayores son las mostradas antes:


- Un grupo de vecinos horizontal, arriba a la derecha: x + y’
- Un grupo de vecinos vertical, en el medio: y’ + z’

El Mínimo Producto de Sumas es: f(x, y, z) = (x + y’)( y’ + z’)

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Puertas Universales NOR y NAND
Compuerta Expresión Circuito
x
NOR (x + y)’
y

x
NAND (x * y)’
y

Compuertas NOR y NAND son funcionalmente completas


Las compuertas NOR y NAND son funcionalmente completas, es decir que se puede construir
cualquier otra compuerta a partir de esas.

A continuación se demostrará como construir las compuertas NOT, AND y OR utilizando solo
compuertas NOR.

Compuerta NOT solo con compuertas NOR


A’ = (A+A)’ Por idempotencia
A

Compuerta AND solo con compuertas NOR


A * B = ((A * B)’)’ Por reciprocidad de complemento
= (A’ + B’)’ Por De Morgan
= ((A + A)’ + (B + B)’)’ Por idempotencia

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Puertas Universales NOR y NAND 35

Compuerta OR solo con compuertas NOR


A + B = ((A + B)’)’ Por reciprocidad de complemento
= ((A + B)’ + (A + B)’)’ Por idempotencia

En general se cumple que (A + B + C) = ((A + B + C)’ + (A + B + C)’)’

Compuertas NOT, AND y OR solo con compuertas NAND


Por dualidad se puede demostrar como construir las compuertas NOT, AND y OR utilizando
únicamente compuertas NAND.

A continuación se muestra la construcción de compuertas NOT, AND y OR utilizando solo


compuertas NAND o solo compuertas NOR

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
36 Puertas Universales NOR y NAND

Compuerta XOR solo con compuertas NOR


A continuación se verá como construir la compuerta XOR utilizando sólo compuertas NAND.

A’B + AB’ = ((A’B)’)’+((AB’)’)’ Por reciprocidad de complemento


= (A+B’)’+(A’+B)’ Por De Morgan
= (((A+B’)’+(A’+B)’)’)’ Por Recip.Comp.
= (((A+B’)’+(A’+B)’)’+((A+B’)’+(A’+B)’)’)’ Por Idempotencia
= (((A+(B+B)’)’+((A+A)’+B)’)’+((A+(B+B)’)’+((A+A)’+B)’)’)’

Compuerta XOR solo con compuertas NAND


Como ejemplo se verá como construir la compuerta XOR utilizando sólo compuertas NAND.

A’B + AB’ = ((A’B + AB’)’)’ Por reciprocidad de complemento


= ((A’B)’ (AB’)’)’ Por De Morgan
= (((AA)’B)’ (A(BB)’)’)’ Por idempotencia

OBSERVACION

• La compuerta XNOR se puede construir utilizando sólo compuertas NOR, o solo compuertas
NAND. Las demostraciones se realizan de forma similar

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Combinacionales
Los circuitos combinacionales generan un estado en sus salidas que es una combinación lógica de
las entradas presentes en ese momento, si cambia la entrada, la salida cambia.

Se representan usando Álgebra de Boole a partir de su función y su tabla de especificación

Entre los circuitos combinacionales clásicos tenemos:

• Lógicos
• Codificadores y Decodificadores
• Multiplexores y Demultiplexores
• Comparadores

• Aritméticos
• Sumadores y Desplazadores

• Aritméticos y Lógicos
• Unidad Aritmético Lógica

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
38 Circuitos Combinacionales

Codificadores
Un codificador es un circuito combinacional con 2N líneas de entrada y N líneas de salida, cuya
misión es presentar en la salida el código binario correspondiente a la entrada activada.

Un ejemplo es un circuito utilizado en conjunción con un teclado. Este podría tener 64 líneas de
entrada, una de las cuales produce una señal cuando se pulsa la tecla correspondiente. Como por
lo general se pulsa una sola tecla cada vez, cada una de las 64 posibles señales de entrada se
puede codificar como un número binario de 6 bits (26= 64).

Existen dos tipos de codificadores: codificadores sin prioridad y codificadores con prioridad.

Codificadores sin prioridad


Ejemplo: Circuito de control de una cadena de música con 4 botones de selección, a la salida del
codificador se obtiene el número (código binario) correspondiente al botón apretado.

Se construirá un codificador 4 a 2. Para eso alcanzará con 2 bits para el código binario (22 = 4).

Decimal Entrada Salida Botón


E3 E2 E1 E0 C1 C0
0 0 0 0 1 0 0 CD
1 0 0 1 0 0 1 TAPE
2 0 1 0 0 1 0 RADIO
3 1 0 0 0 1 1 DISCO

En cada momento, solo habrá un botón apretado. Se trata de un codificador sin prioridad.

En los codificadores sin prioridad, puede darse el caso de salidas cuya entrada no pueda ser
conocida: por ejemplo, la salida 0 podría indicar que no hay ninguna entrada activada o que se
haya activado la entrada número 0. Además, ciertas entradas pueden hacer que en la salida se
presente la suma lógica de dichas entradas, ocasionando mayor confusión. Por ello, este tipo de
codificadores es usado únicamente cuando el rango de datos de entrada está correctamente
acotado y su funcionamiento garantizado.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Combinacionales 39

Al hacer la tabla de verdad, hay que tener en cuenta que muchas entradas NO SE PUEDEN
PRODUCIR. En este tipo de codificador una y sólo una de las entradas estará activa en cada
momento. Utilizaremos esto para simplificar las ecuaciones. Se utilizará una x para indicar que
esa salida nunca se producirá.

E3 E2 E1 E0 C1 C0
0 0 0 0 x x
0 0 0 1 0 0
0 0 1 0 0 1
0 0 1 1 x x
0 1 0 0 1 0
0 1 0 1 x x
0 1 1 0 x x
0 1 1 1 x x
1 0 0 0 1 1
1 0 0 1 x x
1 0 1 0 x x
1 0 1 1 x x
1 1 0 0 x x
1 1 0 1 x x
1 1 1 0 x x
1 1 1 1 x x

C1 y C0 siempre valen x excepto para 4 filas. Los mapas de Karnaugh que se obtienen son:

C1 C0
E3E2\E1E0 00 01 11 10 E3E2\E1E0 00 01 11 10
00 x 0 x 0 00 x 0 x 1
01 1 x x X 01 0 x x x
11 x x x X 11 x x x x
10 1 x x X 10 1 x x x

C1 = E2 + E3 C0 = E1 + E3

El circuito codificador 4 a 2 sin prioridad queda de la siguiente manera:

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
40 Circuitos Combinacionales

Codificadores con prioridad


Para evitar los problemas anteriormente comentados, se diseñan codificadores con prioridad.

En estos sistemas, cuando existe más de una señal activa, la salida codifica la de mayor prioridad
(generalmente correspondiente al valor decimal más alto).

Adicionalmente, se codifica una (o dos) salidas más para indicar que ninguna entrada está activa, o
que alguna entrada está activa. Esta medida permite discernir entre los supuestos de que el
circuito estuviera deshabilitado por la no activación de la señal de capacitación, que el circuito no
tuviera ninguna entrada activa, o que la entrada número 0 estuviera activada.

Ejemplo: Codificador 4 a 2 con prioridad.

Decimal Entrada Salida


D3 D2 D1 D0 A1 A0 V
0 0 0 0 X X 0
0 0 0 0 1 0 0 1
1 0 0 1 X 0 1 1
2 0 1 X X 1 0 1
3 1 X X X 1 1 1

A1 = D3 + D3’D2 = D3 + D2 por Teorema de Consenso

A0 = D3 + D3’D2’D1 = D3 + D2’D1 por Teorema de Consenso

V = D0 + D1 + D2 + D3

El circuito codificador 4 a 2 con prioridad queda de la siguiente manera:

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Combinacionales 41

Decodificadores
La decodificación es la acción opuesta a la codificación. Un decodificador es un circuito
combinacional con n bits de entrada (en forma de códigos binarios), y a partir de estos
selecciona entre m líneas de salida (m es un entero menor o igual a 2n), que controlan la
actividad de un dispositivo de salida como puede ser una impresora. Cada línea de salida será
activada para una sola de las combinaciones posibles de entrada.

Ejemplo: Decodificador 2 a 4, para controlar que luz se prende en un semáforo.

Entrada Salida
A1 A0 D3 D2 D1 D0
0 0 0 0 0 1 D0 = A1’ A0’
0 1 0 0 1 0 D1 = A1’ A0
1 0 0 1 0 0 D2 = A1 A0’
1 1 1 0 0 0 D3 = A1 A0

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
42 Circuitos Combinacionales

Los codificadores y decodificadores también se utilizan en el control de los movimientos de la


cabeza de un disco y para seleccionar los canales de salida provenientes de dispositivos.

En el siguiente ejemplo se diseñará un decodificador para convertir códigos decimales codificados


en binario (Binary Coded Decimal - BCD) a una forma que encienda una de las 8 luces
correspondientes a su valor decimal.

0
1
2
x
DECODIFICADOR 3
y 4
5
z 6
7

La tabla de verdad del decodificador y la expresión booleana para cada dígito decimal será:

Dígito Entrada Salida Expresión


x y z 0 1 2 3 4 5 6 7 Booleana
0 0 0 0 1 0 0 0 0 0 0 0 x’ y’ z’
1 0 0 1 0 1 0 0 0 0 0 0 x’ y’ z
2 0 1 0 0 0 1 0 0 0 0 0 x’ y z’
3 0 1 1 0 0 0 1 0 0 0 0 x’ y z
4 1 0 0 0 0 0 0 1 0 0 0 x y’ z’
5 1 0 1 0 0 0 0 0 1 0 0 x y’ z
6 1 1 0 0 0 0 0 0 0 1 0 x y z’
7 1 1 1 0 0 0 0 0 0 0 1 xyz

Por lo tanto el circuito lógico correspondiente es:

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Combinacionales 43

Multiplexores
El circuito multiplexor tiene 2n entradas de datos, n líneas de control y 1 salida. Las señales de
control se utilizan para seleccionar (en binario) cual entrada se va a encaminar a la salida.

Un multiplexor es como una llave de paso que sólo conecta uno de los canales de datos de entrada
con el canal de datos de salida

Ejemplo: Circuito multiplexor para n=1.


La línea de control C selecciona qué entrada (A o B) se dirige hacia la salida S

Entrada Salida
C A B S
0 0 0 0 S = C’AB’ + C’AB + CA’B + CAB
0 0 1 0 A = C’A(B’+B) + CB(A’+A)
0 1 0 1 = C’A + CB
0 1 1 1
1 0 0 0 S = C’A + CB
1 0 1 1 B
1 1 0 0 También se puede simplificar usando
1 1 1 1 mapas de Karnaugh

Ejemplo: Circuito multiplexor para n=3.

Líneas de Control Salida


A B C F
0 0 0 D0
0 0 1 D1
0 1 0 D2
0 1 1 D3
1 0 0 D4
1 0 1 D5
1 1 0 D6
1 1 1 D7

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
44 Circuitos Combinacionales

F = D0A’B’C’ + D1A’B’C + D2A’BC’ + D3A’BC + D4AB’C’ + D5AB’C + D6ABC’ + D7ABC

Este tipo de circuitos tiene múltiples aplicaciones. Se utilizan para transformar datos paralelos a
seriales, alimentando las líneas de control sucesivamente con los números binarios 000 a 111.

Asimismo, esto permite que podamos variar en el tiempo dichas líneas de control, dividiendo la
utilización del canal principal en lo que se da en llamar: “Time Division Multiplexing” o TDM.

También son usados para implementar funciones: con un multiplexor de 8 entradas es posible
realizar cualquier tabla de verdad de 3 entradas. A continuación se muestra el ejemplo
correspondiente a la función de mayoría.

Generalizando, con un circuito multiplexor de n líneas de control, podremos implementar cualquier


función lógica de n variables.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Combinacionales 45

Demultiplexores
Es el caso inverso del circuito anterior. El circuito demultiplexor dispone de 1 única entrada de
datos, n líneas de control y 2n salidas. Las líneas de control seleccionan hacia cual de las salidas
se encaminará la entrada.

En el campo de las telecomunicaciones el demultiplexor es un dispositivo que puede recibir a


través de un medio de transmisión compartido una señal compleja multiplexada y separar las
distintas señales integrantes de la misma encaminándolas a las salidas correspondientes.

El demultiplexor puede utilizarse en muchos casos como decodificador y adopta cualquiera de las
funciones que un decodificador realiza.

Ejemplo: Circuito demultiplexor para n=2.

Entrada Salida
A B I O3 O2 O1 O0
0 0 0 0 0 0 0
0 0 1 0 0 0 1 O0 = A’ B’ I
0 1 0 0 0 0 0
0 0 1 0 0 1 0 O1 = A’ B I
1 0 0 0 0 0 0
1 0 1 0 1 0 0 O2 = A B’ I
1 1 0 0 0 0 0
1 1 1 1 0 0 0 O3 = A B I

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
46 Circuitos Combinacionales

Comparadores
El circuito comparador dispone de 2 x n entradas y 1 única salida. Controla si los dos conjuntos de
n entradas son iguales.

Los circuitos comparadores se utilizan para confrontar valores, por ejemplo para determinar el bit
de paridad.

Ejemplo: Circuito comparador de 4 bits.


Si son iguales la salida vale 1, si son distintos vale 0.

Dos entradas de n bits son iguales, si y solo si son iguales bit a bit

También existen los comparadores de magnitud, que devuelven tres salidas, una en el caso que
a<b, otra en el caso a=b, y otra para el caso a>b.

Ejemplo: Se mostrará la construcción de un comparador de magnitud para 1 bit.

Entrada Salida
A B A<B A=B A>B
0 0 0 1 0 A<B = A’ B
0 1 1 0 0 A=B = A’ B’ + A B = (A XOR B)’
1 0 0 0 1 A>B = A B
1 1 0 1 0

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Combinacionales 47

Sumadores
El circuito medio sumador consta de 2 entradas: A y B y tiene 2 salidas: la suma de A y B (en
binario) y el acarreo a la siguiente posición (hacia la izquierda).

Entrada Salida
A B Sum Carry
0 0 0 0 Sum = A XOR B
0 1 1 0 Carry = A B
1 0 1 0
1 1 0 1

El circuito sumador completo tiene 3 entradas ya que además de A y B se considera el acarreo


de la posición de la derecha (Carry in). A su vez tiene 2 salidas: la suma (en binario) de las 3
entradas y el acarreo a la siguiente posición (hacia la izquierda).

Entrada Salida
A B Cin Sum Cout Sum = A’B’Cin + A’BCin’ + AB’Cin’ + ABCin
0 0 0 0 0 Sum = Cin’(A’B + AB’) + Cin(A’B’+AB)
0 0 1 1 0 Sum = (A XOR B) XOR Cin
0 1 0 1 0
0 1 1 0 1 Cout = A’BCin + AB’Cin + ABCin’ + ABCin
1 0 0 1 0 Cout = Cin(A’B + AB’) + AB(Cin’ + Cin)
1 0 1 0 1 Cout = Cin(A XOR B) + AB
1 1 0 0 1
1 1 1 1 1 Sum y Cout se pueden simplificar por Karnaugh

Se construye a partir de dos medio-sumadores.

Se utiliza para construir sumadores de n bits. El acarreo de salida de un bit se usa como acarreo
de entrada de su vecino izquierdo.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
48 Circuitos Combinacionales

Desplazadores (Shifter)
Se utiliza para desplazar (a la derecha o a la izquierda) las líneas de entrada D. La línea de
control C determina la dirección del desplazamiento (0=hacia la izquierda, 1=hacia la derecha).

Se puede mostrar para 3 bits (así con la línea de Control C, quedan mapas de Karnaugh de 4
variables), y es más fácil de demostrar.

Entrada Salida Simplificando las funciones


C D0 D1 D2 S0 S1 S2 con mapas de Karnaugh:
0 0 0 0 0 0 0 S0 = C’ D1
0 0 0 1 0 1 0 S1 = C D0 + C’ D2
0 0 1 0 1 0 0 S2 = C D1
0 0 1 1 1 1 0
0 1 0 0 0 0 0
0 1 0 1 0 1 0
0 1 1 0 1 0 0
0 1 1 1 1 1 0
1 0 0 0 0 0 0
1 0 0 1 0 0 0
1 0 1 0 0 0 1
1 0 1 1 0 0 1
1 1 0 0 0 1 0
1 1 0 1 0 1 0
1 1 1 0 0 1 1
1 1 1 1 0 1 1

En forma genérica las expresiones anteriores quedan de la siguiente manera:

S0 = C’ D1
Si = C Di-1 + C’ Di+1
Sn-1 = C Dn-2
Para i entre 1 y n-2

Ejemplo: Circuito desplazador para n=8 bits

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Combinacionales 49

Unidad Aritmético-Lógica (UAL)

Unidad aritmético-lógica de 1 bit

Es un componente básico de cualquier procesador. Este circuito puede calcular cualquiera de 4


funciones, de pendiendo de las líneas de entrada de función F0 y F1:

00 – A AND B
01 – A OR B
10 – NOT B
11 – A + B

Unidad aritmético-lógica de 8 bits

Operaciones con palabras de n bits se implementan con n circuitos idénticos para las
posiciones de bit individuales.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Secuenciales
Sistemas Secuenciales
Hasta ahora únicamente hemos visto circuitos combinacionales, o sea circuitos en los que las
salidas dependen única y exclusivamente de las combinaciones de entradas, y no de la historia
pasada del sistema. Los circuitos secuenciales, son capaces de producir señales de salida que
depende tanto de la entrada actual como de las anteriores. La característica más importante de los
circuitos secuenciales es que necesitan “memoria“ para conocer los estados previos.

Un sistema secuencial consta de un bloque combinacional, que generará la función lógica que
queramos realizar, y un grupo de elementos de memoria con una serie de señales realimentadas.

En un sistema secuencial podemos distinguir tres tipos de señales: señales de entrada, señales de
salida y señales de estado. Las señales de entrada y salida tienen el mismo significado que en los
sistemas combinacionales. En cambio, las señales de estado son aquellas que mantienen la
información de la historia pasada del sistema. Las señales de estado tienen dos versiones, según
se consideren a la salida o a la entrada del elemento de memoria:

• Señales de estado a la salida de los elementos de memoria, o sea a la entrada del bloque
combinacional, se denominan señales de estado presente ya que nos indica el estado en el
que se encuentra el sistema para realizar una operación.

• Señales de estado a la entrada de los elementos de memoria, o sea a la salida del bloque
combinacional, se denominan señales del próximo estado ya que nos indican el estado al
que llegará después de que el bloque combinacional haya realizado la operación

En un circuito secuencial las salidas dependen del estado de las entradas en el instante t y del
estado de las salidas en el instante t-1

Entidades de un circuito secuencial


• Espacio de Entrada (X = x1, x2, … )
• Espacio de Estados (Q = Q1, Q2, … )
• Espacio de Salida (Z = z1, z2, … )
• Ley de producción de nuevos estados a partir de las entradas y del estado anterior
• Ley de producción de salidas a partir de las entradas y del estado anterior

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Secuenciales 51

Clasificación de los Circuitos Secuenciales


Uno de los principales problemas de los circuitos secuenciales es determinar el momento en que el
próximo estado debe pasar al estado presente. Este problema se conoce como sincronización,
cuyas soluciones dieron lugar a una de las principales clasificaciones de los sistemas secuenciales.

• Asíncrono. La sincronización depende exclusivamente de los retrasos de la lógica


combinacional, sin necesidad de ninguna señal externa al sistema.

• Síncrono. La sincronización depende exclusivamente de una señal externa al sistema,


conocida generalmente como señal de reloj. Esta señal de reloj controlará el comportamiento
de los elementos de memoria.

Estos dos tipos de operaciones se pueden esquematizar de la siguiente manera:

Ambos se pueden modelar de la misma forma, es decir, con una lógica combinacional y
realimentaciones a través de elementos de memoria. La diferencia radica en el control de éstos
elementos: en el caso síncrono, los elementos de memoria son controlados por una señal externa
(el reloj), mientras que en el caso asíncrono esta señal externa no existe.

Un reloj es un circuito que emite una serie de impulsos de un ancho y separación determinadas
con precisión. El intervalo entre dos subidas o bajadas es lo que se denomina ciclo de reloj.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
52 Circuitos Secuenciales

Representación de Circuitos Secuenciales


Los sistemas secuenciales también tienen sus formas de representación que son más complejas,
debido a la dependencia temporal. Así, podemos encontrar las siguientes formas equivalentes:

Un diagrama de estado es un grafo dirigido en el que cada nodo representa un estado, y las
aristas las transiciones posibles. En ellos cada arista es etiquetada con un par de valores (e/s)
que denotan la entrada leída y la salida generada. Los diagramas de estado permiten describir
el comportamiento de un circuito secuencial.

El diagrama anterior se lee así: “si estoy en el estado Si y se produce la entrada xA, se pasa
al estado Sj y la salida e yl”.

Una tabla de estados y de salidas es una representación tabular del grafo anterior. Las entradas
se representan como columnas, y los estados presentes como filas. En el interior de cada celda se
indica el próximo estado y el valor que tomará la salida cuando sufra la transición.

Estado actual Entrada xA


Si Sj / yl

Ejemplo: Comportamiento del sistema de un bolígrafo

x1 = 1 => Pulsar bolígrafo x2 = 0 => Bolígrafo sin pulsar


S1 = Punta adentro S2 = Punta afuera
y1 = Sale la punta y2 = Entra la punta y3 = no se mueve

El diagrama de estados queda de la siguiente manera:

La tabla de estados y salidas queda de la siguiente manera:

Entrada
Estado actual x1 x2
S1 S2 / y1 S1 / y3
S2 S1 / y2 S2 / y3

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Secuenciales 53

Diseño de Circuitos Secuenciales


Para diseñar un circuito secuencial se deben realizar los siguientes pasos:

1) Diagrama de estados
2) Tabla de estados y salidas
3) Codificación de estados
4) Tabla de estados codificados (tabla de excitación)
5) Representación y simplificación de funciones booleanas
6) Diseño de circuitos lógicos

Ejemplo:

Diseñar un circuito secuencial que reconozca la entrada 101. La salida de éste será 1 si y solo si la
entrada toma los valores 101. Ante cualquier otra secuencia de valores de entrada la salida será 0.

1) Diagrama de estados

0/0 1/0 1/0

1/0 0/0 1/1


A B C D

0/0
0/0

Donde:

A: Estado de búsqueda de una nueva secuencia.


B: Se recibe el primer 1.
C: Se ha recibido un 1 seguido de un 0.
D: Se reconoce la secuencia 101.

Por ejemplo: cuando el sistema está en C y recibe un 1 como entrada, pasa al estado D y
produce un 1 en la salida tras recibir la señal del reloj.

2) Tabla de estados y salidas

Entrada x
Estado actual 0 1
A A/0 B/0
B C/0 B/0
C A/0 D/1
D C/0 B/0

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
54 Circuitos Secuenciales

3) Codificación de estados

Se tienen 4 estados, se necesitan 2 bits para codificarlos (22 = 4)

Estado binario
Estado y1 Y0
A 0 0
B 0 1
C 1 0
D 1 1

4) Tabla de estados codificados (tabla de excitación)

La tabla de estados y salidas obtenida en el paso 2), codificada de acuerdo a la codificación de


estados establecida en el paso 3), se puede representar de la siguiente forma:

Qn Qn+1
y1 y0 x Y1 Y0 S
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 1 0 0
0 1 1 0 1 0
1 0 0 0 0 0
1 0 1 1 1 1
1 1 0 1 0 0
1 1 1 0 1 0

5) Representación y simplificación de funciones booleanas

En la tabla anterior están representadas tres funciones booleanas de tres variables.


Sean estas f1(y1, y0, x), f 0(y1, y0, x) y S(y1, y0, x):

• f 1 asigna a cada terna (y1, y0, x) un elemento de la columna Y1 de Qn+1.


• f 0 asigna a cada terna (y1, y0, x) un elemento de la columna Y0 de Qn+1.
• S asigna a cada terna (y1, y0, x) un elemento de la columna S.

f 1(y1, y0, x) = y1’y0x’ + y1y0’x + y1y0x’ x Conmutativa y Distributiva


(y 1’ + y1) y0x’ + y1y0’x x Complemento
f1(y1, y0, x) = y0x’ + y1y0’x

f 0(y1, y0, x) = y1’y0’x + y1’y0x + y1y0’x + y1y0x x Conmutativa y Distributiva


y1’x (y0’ + y0) + y1x (y0’ + y0) x Complemento
y1’x + y1x x Distributiva
(y1’ + y1)x x Complemento
f0(y1, y0, x) = x

S(y1, y0, x) = y1y0’x

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Secuenciales 55

6) Diseño de circuitos lógicos

Dado un dispositivo D, capaz de almacenar el valor de entrada hasta que se ingrese una nueva
entrada, se puede diseñar un circuito que resuelva este problema.

A continuación se dibujarán los circuitos correspondientes a las funciones f1(y1, y0, x), f 0(y1, y0, x), y
S(y1, y0, x) simplificadas en el paso 6) utilizando compuertas lógicas.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
56 Circuitos Secuenciales

Circuitos Biestables
Un circuito biestable es un circuito secuencial con dos estados estables uno alto y otro bajo,
es decir tiene memoria con una salida que puede permanecer indefinidamente en uno de los
dos estados.

Características de los circuitos biestables:

• Un biestable almacena la información de 1 bit

• Los biestables son la base de los circuitos secuenciales

• Existen biestables asincrónicos y sincrónicos

• Las salidas dependen de las entradas y del estado anterior

• Como los dos estados son estables disponen de alguna señal externa de excitación para
hacerlos cambiar de estado
• La función de excitación define al tipo de biestable (R-S, D, J-K, y T)

Los circuitos biestables usados en combinación con una adecuada lógica combinacional se
pueden construir contadores, registros, memorias, y en general cualquier autómata.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Secuenciales 57

Biestable R-S
Se estudiará a continuación el circuito flip-flop R-S (R = Reset, S = Set).
El circuito R-S posee dos líneas de entrada y dos de salida.

S Flip-Flop Q’
R-S

R Q

El circuito está diseñado de forma que las líneas de salida Q y Q’ siempre sean opuestas.

Si Q=1 entonces Q’=0 (el estado es SET).


Si Q= 0 entonces Q’=1 (el estado es RESET).

Si el circuito está inicialmente en RESET, entonces un impulso 1 en la línea S hace que pase al
estado SET. Cuando cesa el impulso en la línea S, el circuito permanece en el estado SET.

Un impulso 1 enviado por la línea R, hace pasar el circuito a su estado original de RESET.

Un circuito R-S se puede construir utilizando varias técnicas como enlazar entre sí dos puertas
NAND o dos puertas NOR. Este bucle le proporciona al flip-flop su capacidad de “memoria”.

Tabla de verdad del circuito: Tabla de verdad esquematizada:

S R Q Qn+1 Qn+1’ S R Qn+1 Qn+1’


0 0 0 0 1 0 0 Qn Qn’
0 0 1 1 0 0 1 0 1
0 1 0 0 1 1 0 1 0
0 1 1 0 1 1 1 No usadas
1 0 0 1 0
1 0 1 1 0
1 1 0 No usadas
1 1 1 No usadas

El estado S=0 y R=0 se denomina estado estable, dado que el flip-flop permanece en el estado en
que se encontraba anteriormente.

Para S=0 y R=1 el flip-flop quedará en estado de RESET (Q =0, Q’=1).


Para S=1 y R=0 el circuito estará en estado de SET (Q=1, Q’=0).

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
58 Circuitos Secuenciales

Circuitos Temporizadores
En muchos circuitos digitales, el orden en que tienen lugar los eventos es crítico. Algunas veces un
evento debe preceder a otro, o puede ser necesaria la realización simultánea de los mismos.
Factores tales como la diferencia de tiempo de reacción de las compuertas, o la diferencia de
tiempo en el establecimiento de la señal en las líneas que interconectan dos compuertas hacen
que el comportamiento del circuito sea errático. Para permitir a los diseñadores controlar eventos
en el tiempo y evitar comportamientos no previstos, muchos circuitos digitales utilizan relojes para
la sincronización. Como ya se vio antes este tipo de circuitos se denominan sincrónicos.

Un reloj es un circuito que emite una serie de impulsos de un ancho y separación determinadas
con precisión. El intervalo entre dos subidas o bajadas es lo que se denomina ciclo de reloj.
Durante un ciclo de reloj pueden ocurrir muchos eventos. Generalmente se conecta a una línea del
reloj un circuito con retardo conocido de forma de generar un segundo reloj, obteniéndose de esta
forma una resolución más fina.

Si bien es fácil trabajar con circuitos sincrónicos debidos a sus intervalos de tiempo discretos,
estos presentan algunos problemas. Por ejemplo si una operación se completa en 2.1 ciclos,
debe ser ampliada a 3 ciclos dado que los ciclos fraccionados están prohibidos. Por otro lado si
existe un conjunto heterogéneo de eventos en ejecución, algunos más rápidos que otros, el
proceso debe ajustarse al evento más lento.

Biestable R-S con Reloj


Tiene una entrada adicional, normalmente en 0, que es el reloj.

Cuando el reloj esta en 0, sean cuales sean los valores de R y S el biestable no cambia de estado.
Cuando el reloj esta en 1, el circuito es sensible a R y S y se comporta como el biestable R-S que
se vio antes.

Si viene un pulso en 1 por las líneas S y R cuando el reloj esta e 1, el biestable queda en un estado
inconsistente. Por lo tanto, el uso de circuitos secuenciales con reloj no soluciona el problema de
estados inconsistentes, solo asegura que el circuito sea sensible a las señales de entrada
únicamente cuando lo permita el reloj.

La tabla de verdad del biestable R-S con reloj es la siguiente:

CLK S R Qn+1 Qn+1’


0 x x Qn Qn’
1 0 0 Qn Qn’
1 0 1 0 1
1 1 0 1 0
1 1 1 No usadas

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Secuenciales 59

Biestable D
Este tipo de flip-flop tiene como entrada lógica D y una entrada de reloj (CK).

D Q

CK Q’

El diseño del tipo D se basa en el biestable R-S.

La salida del circuito Q, se determina al comienzo de un ciclo de reloj. Si en ese momento la


entrada en D es HI (1), entonces la salida Q se pone en HI (1). Si por el contrario, la entrada en D
es LO (0) entonces la salida Q se pone en LO (0). La salida Q sólo puede cambiar durante una
transición de reloj de LO (0) a HI (1).

El circuito Biestable D sincronizado, es una verdadera memoria de un bit. El valor almacenado está
siempre disponible en Q. Para cargar el valor de D en memoria hay que enviar un impulso positivo
en la línea del reloj.

Si D = 1 y CK = 1, entonces Q = 1
Si D = 0 y CK = 1, entonces Q = 0
El valor almacenado siempre queda en Q

La tabla de verdad del biestable D es la siguiente:

CK D Qn+1
0 x Qn
1 0 0
1 1 1

Otros circuitos biestables conocidos son el Biestable JK, y el Biestable T

También existe el circuito monoestable que al recibir una excitación exterior, cambia de estado y
se mantiene en él durante un periodo (constante) de tiempo. Transcurrido dicho período, la salida
vuelve a su estado original. Por tanto, tiene un estado estable (de aquí su nombre) y un estado casi
estable.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
60 Circuitos Secuenciales

Flip-Flops y Registros
Un procesador se compone en una gran medida de una serie de registros de alta velocidad. Estos
se utilizan para almacenar resultados intermedios, datos temporales o direcciones de memoria, y
cierta información de control.

Existen ciertos registros dedicados a los que solamente puede acceder la Unidad de Control de la
CPU del computador. El registro más importante es el Contador de Programa (PC), que indica la
dirección de la próxima instrucción que debe ejecutarse. El Registro de Instrucción (RI) es otro
registro importante, este último contiene la instrucción que se está ejecutando. El Stack Pointer o
Puntero al Stack (SP), contiene la dirección del tope del Stack. Existe además un Registro de
Estado (FR o Flag Register) que contiene indicadores de estado como ser el Cero (Z), Acarreo o
Carry (C), Signo (S) y Overflow (O), estos se actualizan en forma automática al completarse
operaciones aritméticas o lógicas con el fin de indicar el estado y los resultados generados. La
mayoría de los computadores tienen además otros registros, algunos de los cuales son accesibles
a los programadores para almacenar resultados intermedios.

La mayoría de los registros pueden mantener 8, 16 o 32 bits. Como estos registros tienen que
aceptar y almacenar información binaria, no es sorprendente que se compongan de una serie de
flip-flops.

Ejemplo:

Se supondrá un registro con cuatro bits. Si se desea almacenar el número binario 1011,
lo que se necesita es alimentar las líneas con el mismo patrón binario.

Obsérvese que la salida de Q’ no se utiliza. Como el patrón binario se aplica a la línea


D de los biestables, las líneas Q producen la salida correspondiente. Para sustituir un
número almacenado es necesario restaurar cada flip-flop antes de almacenar el nuevo
número. Dado que es necesario restaurar todos los flip-flops al mismo tiempo, es
conveniente conectarlos entre sí permitiendo que la restauración del registro sea
activada por una sola señal.

También se pueden hacer con flip-flops R-S, o J-K.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Memoria
Un componente esencial de una computadora es su memoria. La memoria se utiliza para guardar
instrucciones y datos.

Una memoria se compone de un conjunto de celdas dotadas de una determinada organización.


Cada celda soporta 1 bit de información

A continuación se muestran diferentes formas de organizar 64 celdas de memoria:

Los bits se agrupan en unidades direccionables denominadas palabras.

La longitud de la palabra la determina el número de bits que la componen y constituye la mínima


cantidad de información direccionable..

La longitud de la palabra suele oscilar entre 8 bits (1 byte) hasta 64 bits.

Cada celda básica es un dispositivo físico con dos estados estables (o semi-estables) con
capacidad para cambiar el estado (escritura) y determinar su valor (lectura). Aunque en los
primeros computadores se utilizaron materiales magnéticos como soporte de las celdas de
memoria principal (memorias de ferritas, de película delgada, etc.) en la actualidad sólo se utilizan
los materiales semiconductores.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
62 Memoria

Memorias Semiconductoras
Desde un punto de vista conceptual y con independencia de la tecnología, consideraremos la celda
básica de memoria como un bloque con tres líneas de entrada (entrada dato, selección y
lectura/escritura) y una de salida (salida dato). La celda sólo opera (lectura ó escritura) cuando la
selección está activa.

A continuación se verá como construir una memoria con un biestable R-S

En las memorias uno de los aspectos fundamentales de diseño es el número de bits que pueden
ser leidos/escritos a la vez

Sobre la base de lo visto anteriormente y mediante la tecnología de circuitos integrados se pueden


diseñar pastillas de memoria de distintas capacidades.

En los primeros años de la década de los setenta las pastillas tenían 1 K bits, más tarde tuvieron
sucesivamente 4K, 16K, 64K, 256K etc. A principio de los noventa ya eran comunes las pastillas
con más de 4 millones de bits.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Memoria 63

Tipos de Memoria
La memoria RAM (Random Access Memory) pueden utilizarse para escribir o leer, ya que todas las
pastillas de memoria son accedidas en forma aleatoria. Hay dos variedades de memorias RAM: las
estáticas (SRAM) y las dinámicas (DRAM).

Las RAM estáticas se construyen a partir de circuitos similares al biestable de tipo D y tienen la
propiedad de retener su contenido mientras estén conectadas a la fuente de alimentación. Se usan
como memoria cache de nivel 2, son muy rápidas y caras.

Las RAM dinámicas están construidas con un conjunto de condensadores que pueden estar
cargados o descargados. Cada bit de la RAM dinámica debe refrescarse cada pocos milisegundos.
Se usan como memoria convencional. Tienen mas capacidad, son mas lentas y baratas que las
SRAM.

Las RAM no son el único tipo de pastillas de memoria. En muchas aplicaciones los datos y
programas deben permanecer aún cuando se desconecte la alimentación. En ellos se utilizan
memorias ROM (Read Only Memory). La información se graba en la fabricación, que normalmente
consiste en la exposición a la luz de un material fotosensible a través de una máscara con la
configuración deseada de bits. La única forma de cambiar un programa es sustituyendo la pastilla.

Para facilitar a la empresas el desarrollo de productos basados en ROM, se inventó otro tipo de
pastilla denominada PROM (Programable ROM). Es una ROM que puede ser programada una
única vez.

La EPROM (Erasable PROM) fue el siguiente avance en este tipo de memorias. Puede ser
programada y borrada (exponiendo la ventana de cuarzo de una EPROM a una luz ultravioleta
potente durante 15 minutos todos sus bits son puestos en 1). Estas memorias son más económicas
puesto que pueden ser reutilizadas. Se usan para diseño de prototipos en las etapas de prueba.

Las EEPROM (Electrical EPROM) pueden borrarse mediante impulsos eléctricos, sin necesidad de
ser sometidas luz ultravioleta. Las EEPROM difieren de la RAM en que el tiempo necesario para
grabar o borrar un byte es miles de veces mayor, a pesar de ello, los tiempos de acceso en lectura
son similares. Se usa en equipos de tecnología avanzada (CD/DVD, TV LCD, etc.)

La memoria flash ROM es una tecnología derivada de la EEPROM que permite la lectura y
escritura de múltiples posiciones de memoria en la misma operación, siempre mediante pulsos
eléctricos. Permite velocidades de funcionamiento muy superiores a la tecnología EEPROM, que
solo permitía trabajar sobre una única celda de memoria en cada operación. Estas memorias no
tienen partes móviles y son resistentes a golpes. Se usan en cámaras digitales, celulares, etc.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
64 Memoria

Memoria como Circuito Integrado


La comunicación entre una memoria y su ambiente se logra mediante líneas de selección de
dirección, líneas de entrada y salida de datos, y líneas de control.

A continuación se muestra un diagrama de bloque de una unidad de memoria

• Líneas de dirección: n
• Cantidad de palabras: 2n
• Bits por palabra: m
• Tamaño de la memoria: 2n x m

Las n líneas de dirección proporcionan un número binario de n bits que especifica una palabra
particular elegida entre las 2n palabras disponibles dentro de la memoria.

Las m líneas de datos se utilizan la transferencia a memoria (para entrada y/o salida de datos), en
un determinado instante sólo se puede leer o escribir en la memodia.

Las líneas de control identifican:


• CS (Chip Select), inhibe o habilita la memoria
• OE (Output Enable), inhibe o habilita las salidas (si el chip esta habilitado)
• WE (Write Enable), inhibe o habilita la escritura (si el chip esta habilitado y la salida inhabilitada)

Ejercicio:

¿Cuál es el tamaño de una memoria que tiene 11 líneas de dirección y 8 de datos?

Tamaño: 211 x 8 = 211 x 23 = 24 x 210 = 16 Kbits = 16.384 bits

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Representación de Datos
Las computadoras proveen un conjunto de tipos básicos que deben ser representados en la
memoria del computador, estos tipos generalmente son: enteros, reales, boolean, carácter.

La representación concreta de los mismos se realiza tomando en cuenta las operaciones que la
CPU es capaz de realizar y los valores que se pretende que estos tomen.

Datos Numéricos
La mayoría de los computadores usan el sistema binario para representar sus números. Además
dado su naturaleza finita, solamente pueden representar una cantidad fija de dígitos.

Un sistema de numeración con base k requiere k símbolos (0..k-1) para representar los dígitos.

A continuación se verán con mas detalle los siguientes sistemas de numeración:

• Sistema Binario (k = 2), la expresión dígito binario suele sustituirse por la palabra bit
• Dos dígitos: 0 1

• Sistema Octal (k = 8)
• Ocho dígitos: 0 1 2 3 4 5 6 7

• Sistema Decimal (k = 10)


• Diez dígitos: 0 1 2 3 4 5 6 7 8 9

• Sistema Hexadecimal (k = 10)


• Dieciséis dígitos: 0 1 2 3 4 5 6 7 8 9 A B C D E F

Un número lo vamos a escribir de la siguiente manera:

dn … d2 d1 d0 . d-1 d-2 … d-j


Por ejemplo:

• Número decimal: 2536.98


• Número hexadecimal: 1A8.C4

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
66 Representación de Datos

Conversiones
Conversión de decimal a base q

• Parte entera
Se hacen divisiones enteras entre q (obtener cociente y resto) hasta que el cociente sea 0
Se toman los restos al revés (el último dígito es el más significativo)

• Parte fraccionaria
Se multiplica la parte fraccionaria por q y se extrae el dígito entero
Se sigue así hasta obtener la precisión deseada, o hasta que la parte fraccionaria de 0

Ejemplo:

Número decimal: 25.3125


Numero binario: 11001.0101

Parte Entera Parte Fraccionaria


25 / 2 => 12 1 0.3215 x 2 = 0.625 ↓
12 / 2 => 6 0 0.625 x 2 = 1.25
6 / 2 => 3 0 0.25 x 2 = 0.5
3 / 2 => 1 1 0.5 x 2 = 1.0
1 / 2 => 0 1 ↑

Conversión de base q a decimal

• Parte entera
Se comienza por el lado derecho, se multiplica cada cifra por qx (x comienza en 0)
Se suman todos los resultados

• Parte fraccionaria
Se comienza por el lado izquierdo, se multiplica cada cifra por q–x (x comienza en 1)
Aclaración: q–x = (1/qx)
Se suman todos los resultados

Ejemplo:

Número binario: 10011.101


Numero decimal: 19.625

Parte Entera
1x24 + 0x23 + 0x22 + 1x21 + 1x20 = 16 + 2 + 1 = 19

Parte Fraccionaria
1x(1/2–1) + 0x(1/2–2) + 1x(1/2–3) = 0.5 + 0.125 = 0.625

Numero decimal: 19 + 0.625 = 19.625

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Representación de Datos 67

Conversión de binario a octal o hexadecimal

• Parte entera
Se comienza por el lado derecho y se agrupan cada 3 (octal) o 4 dígitos (hexadecimal)
Añadir ceros a la izquierda para completar grupos de tres o cuatro bits
Cada agrupación es un dígito octal o hexadecimal según la agrupación

• Parte fraccionaria
Se comienza por el lado izquierdo y se agrupan cada 3 (octal) o 4 dígitos (hexadecimal)
Añadir ceros a la derecha para completar grupos de tres o cuatro bits
Cada agrupación es un dígito octal o hexadecimal según la agrupación

Ejemplo:

Número binario: 101011.110


Número octal: 53.6
Número hexadecimal: 2B.C

Parte Entera Parte Fraccionaria


Octal 101 011 110
Hexadecimal 0010 10110 1100

Conversión de octal o hexadecimal a binario

• Parte entera y fraccionaria


Cada dígito octal o hexadecimal se convierte a su correspondiente número binario en 3 o 4 bits
Se pueden quitar los ceros de mas a la izquierda y de mas a la derecha del número

Ejemplos:

Número octal: 46.5


Número binario: 100110.101

Parte Entera Parte Fraccionaria


46 => 100 110 5 => 101

Número hexadecimal: 5A.E


Número binario: 1011010.111

Parte Entera Parte Fraccionaria


5A => 0101 1010 E => 1110

Otras Conversiones

Para conversiones de octal a hexadecimal y viceversa se debe pasar por otra base intermedia
(decimal o binario)

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
68 Representación de Datos

Representación de Enteros
Cuatro son los sistemas utilizados para representar números enteros:

1- Módulo y signo

El bit más a la izquierda es el de signo (0 si el número es positivo, 1 si el número es negativo)


Los restantes bis contienen el valor absoluto del número.

Ejemplos:

• Número +6 representado en módulo y signo con 8 bits: 00000110


• Número –6 representado en módulo y signo con 8 bits: 10000110

2- Complemento a uno

Tiene un bit de signo al igual que en el caso anterior. Los números positivos se representan igual
que en módulo y signo. Para representar un número negativo se debe escribir el número positivo y
reemplazar los ceros por unos y los unos por ceros. Este sistema ha dejado de usarse.

Ejemplos:

• Número +6 representado en complemento a 1 con 8 bits: 00000110


• Número –6 representado en complemento a 1 con 8 bits: 11111001

3- Complemento a dos

También cuenta con un bit de signo. Los números positivos se representan igual que en módulo y
signo, para obtener el negativo de un número se debe primero reemplazar los ceros por uno y los
unos por ceros. Al resultado obtenido se le suma 1.

Ejemplos:

• Número +6 representado en complemento a 2 con 8 bits: 00000110


• Número –6 representado en complemento a 2 con 8 bits: 11111010

4- Exceso
m-1
Para un número de m bits, se llama exceso a 2 .
Para representar un número en exceso se toma el valor decimal, se le suma el exceso (2m-1) y se
convierte a binario (se rellena con ceros a la izquierda si es necesario hasta completar los m bits),
tanto para números positivos como para negativos.

Ejemplos:

• Número +6 representado en exceso con 8 bits (27 = 128, Número =134): 10000110

7
Número –6 representado en exceso con 8 bits (2 = 128, Número =122): 01111010

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Representación de Datos 69

Ejemplo de Representación de Enteros

Representación de enteros de 3 bits:

Los números representados en módulo y signo y en complemento a 1 tienen dos representaciones


del cero.

En complemento a dos y en exceso no se presenta este problema, pero en este caso el rango de
números negativos y positivos se hace asimétrico (se puede representar un número mas en el
rango de los negativos).

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
70 Representación de Datos

Aritmética Binaria
Los números binarios se pueden sumar comenzando por el bit de la derecha y sumando los bits
correspondientes de los dos sumandos. Si se genera un acarreo, éste se lleva un lugar a la
izquierda, al igual que en la suma decimal.

En la aritmética de complemento a 1, el acarreo generado por la suma de los bits de la izquierda se


añade al de la derecha del resultado. En la aritmética de complemento a 2, el acarreo simplemente
se desecha.

Si los dos sumandos tienen el mismo signo y el resultado es de signo opuesto, ha habido overflow
y el resultado es incorrecto.

Podemos ver como ejemplo la siguiente suma binaria:

Primer Sumando 0 1 1
Segundo Sumando 0 0 1
Suma 0 1 0
Acarreo 0 0 1
Resultado 1 0 0

Las operaciones de multiplicación y división por potencias de dos pueden ser realizadas a través
de instrucciones de shifteo o corrimiento. Desplazando un número n lugares a la izquierda se
obtiene la multiplicación por 2n, mientras que desplazando m lugares a la derecha se logra la
división por 2m.

Si partimos por ejemplo del número 3 y lo vamos desplazando hacia la izquierda obtenemos:

0 0 0 0 0 0 1 1 3

0 0 0 0 0 1 1 0 3 * 21 =6

0 0 0 0 1 1 0 0 3*22 =12

0 0 0 1 1 0 0 0 3*23 = 24

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Representación de Datos 71

Representación en Punto Flotante


En esta notación el punto decimal (la coma) no se halla en una posición fija, su posición se indica
como una potencia de la base.

O sea se basa en números por medio de notación científica:

número = f * 10exponente

donde:
f : es la mantisa.
exponente: es un número entero positivo o negativo.

Ejemplos:
Número: 123.4 En notación científica: 1.234 x 102
Numero: -0.00789 En notación científica: -7.89 x 10-3

La versión de esta notación en las computadoras se denomina punto flotante. Usa números en
binario con un número finito de dígitos. Se utiliza para representar números reales

Cálculo de intervalo y precisión

El número de dígitos del exponente determina el intervalo de representación, mientras que la


precisión está determinada por el número de dígitos presentes en la mantisa.

Ejemplo de una representación:

• Fracción de 3 dígitos y signo dentro del intervalo 0.1 <= | f | < 1

• Exponente de 2 dígitos con signo -99 <= e <= 99 (en total 199)

• Permite representar magnitudes entre 0.100 x 10-99 y 0.999 x 10+99

• De los infinitos reales en intervalo [0.100x10-99, 0.999x10+99] se representan:

• 179,100 números negativos, 179,100 números positivos y el cero


(900 en cada intervalo x 199 exponentes = 179,100)

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
72 Representación de Datos

Diferencias entre Punto Flotante y Números Reales

Con los números de punto flotante se simula el sistema de numeración de los números reales.

Una diferencia importante entre los números representables por una mantisa finita es que
presentan desbordamiento y subdesbordamiento (no se puede representar números en ciertas
regiones)

El espacio entre dos números adyacentes expresables no es constante a lo largo de las regiones 2
y 6. Sin embargo la separación entre un número y su sucesor expresada como porcentaje es
prácticamente constante (por lo tanto el error relativo de redondeo también lo es).

Otra diferencia importante entre los número reales y los de punto flotante es su densidad (entre dos
números reales siempre hay un número real). Los números de punto flotante no forman un
continuo. Si el resultado de un cálculo no se puede representar se utiliza el número más cercano
expresable (se redondea)

En las computadoras la base del exponente suele ser 2, 4, 8, 16 en lugar de 10, en cuyo caso la
mantisa consiste en un arreglo de dígitos de la base. Si el dígito de la izquierda de la mantisa es
cero, se pueden desplazar todos los demás un lugar a la izquierda y disminuir el exponente en una
unidad. Una mantisa cuyo dígito de la izquierda no es cero, se dice que está normalizada. Los
números normalizados son preferibles a los no normalizados ya que sólo hay una forma
normalizada y muchas que no lo son.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Representación de Datos 73

Representación en Punto Flotante (IEEE 754)

En los años setenta el IEEE instituyo un comité para estandarizar la aritmética de punto flotante. La
norma 754 del IEEE fue el resultado de del trabajo realizado por dicho comité.

La norma define tres formatos:

- precisión sencilla (32 bits).


- doble precisión (64 bits).
- precisión extendida (80 bits).

Los dos primeros formatos utilizan base 2 para la mantisa y notación en exceso para los
exponentes. Ambos formatos se inician con el bit de signo para el número. Luego viene el
exponente que usa la notación en exceso 128 para precisión sencilla y 1024 para notación en
doble precisión. Por último se tiene la mantisa de 23 y 52 bits respectivamente.

SIGNO EXPONENTE FRACCIÓN


Cantidad de bits SIMPLE PRECISIÓN 1 8 23
Cantidad de bits DOBLE PRECISIÓN 1 11 52

En la actualidad, la mayoría de las CPUs tienen un coprocesador de punto flotante y todas ellas
se ajustan a la norma de punto flotante de la IEEE.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
74 Representación de Datos

Datos No Numéricos
Caracteres
Se debe poder representar el alfabeto, los dígitos y los signos de puntuación. Los primeros códigos
fueron de 6 bits que permitían representar 64 caracteres. Luego se usaron códigos de 7 bits, por
ejemplo el código ASCII de 7 bits. En la actualidad se utilizan exclusivamente códigos de 8 bits,
como el código EBCDIC y el código ASCII extendido, cada carácter tiene una codificación entre 0 y
255. Se utiliza 1 byte para su representación. El código ASCII ofrece mayor ventaja que el EBCDIC
al mantener un ordenamiento de los dígitos y los caracteres que simplifica las conversiones.

Código ASCII de 7 bits

Bits 654
3210 000 001 010 011 100 101 110 111
0000 NUL DEL SP 0 @ P ` P
0001 SOH DC1 ! 1 A Q A q
0010 STX DC2 ” 2 B R B r
0011 ETX DC3 # 3 C S C s
0100 EOT DC4 $ 4 D T D t
0101 ENQ NAK % 5 E U E u
0110 ACK SYN & 6 F V F v
0111 BEL ETB ’ 7 G W G w
1000 BS CAN ( 8 H X H x
1001 HT EM ) 9 I Y I y
1010 LF SUB * : J Z J z
1011 VT ESC + ; K [ K {
1100 FF FS , < L \ L |
1101 CR GS - = M ] M }
1110 SO RS . > N ^ N ~
1111 SI US / ? O _ O DEL

Significado de los caracteres de control

NUL Carácter nulo DC1 Control de dispositivo 1


SOH Comienzo de cabecera DC2 Control de dispositivo 2
STX Comienzo de texto DC3 Control de dispositivo 3
ETX Final de texto DC4 Control de dispositivo 4
EOT Fin de transmisión NAK Transmisión negativa
ENQ Petición de transmisión SYN Espera sincrónica
ACK Reconocimiento de transmisión ETB Fin bloque de transmisión
BEL Señal audible, timbre o alarma CAN Cancelar
BS Retroceso EM Final del medio
HT Tabulación horizontal SUB Sustitución
LF Avance de línea ESC Escape
VT Tabulación vertical FS Separador de ficheros
FF Avance de página GS Separador de grupos
CR Retorno de carro RS Separador de registros
SO Quitar desplazador de bits US Separador de unidades
SI Poner desplazador de bits DEL Borrar
DEL Escape de enlace de datos

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Representación de Datos 75

Código ASCII extendido

Formato de caracteres estándar

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
76 Representación de Datos

Formato de caracteres extendido

Boolean
El tipo boolean puede ser representado en 1 BIT donde el 0 significa FALSE y el 1 es TRUE. Como
poder acceder a un BIT de un BYTE es costoso, ya que se lo debe realizar a través de
operaciones, se representa en 1 BYTE, y se toma alguna de las siguientes convenciones:

1. El 0 es FALSE, el 1 TRUE.
2. El 0 es FALSE, distinto de cero es TRUE.
3. Negativos FALSE, positivos o cero es TRUE.

La mayoría de los procesadores contienen instrucciones en lenguaje de máquina que permiten


realizar operaciones sobre este conjunto.

Por ejemplo en las máquinas RISC se tiene:

AND Rs1, Rs2_o_imm, Rd And bit a bit


OR Rs1, Rs2_o_imm, Rd Or bit a bit
XOR Rs1, Rs2_o_imm, Rd Xor bit a bit

Donde:
Rs1: Registro fuente.
Rs2_o_imm: Registro fuente o inmediato.
Rd: Registro destino.

Realizan las operaciones bit a bit del contenido del registro Rs1 con el contenido del
registro Rs2_o_imm, y el resultado lo coloca en el registro Rd.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Representación de Datos 77

Representación de Tipos Compuestos

Array
Se reservan tantos BYTES como la cantidad de elementos del array por el tamaño del tipo base.

Record
Se reservan tantos BYTES como la suma del tamaño del tipo base de cada componente. Para
acceder a un elemento se debe calcular la dirección en que este se encuentra desde el comienzo
del record.

Unión
Se reservan tantos BYTES como para representar la más grande de las alternativas, más tantos
BYTES necesarios para representar el discriminante, generalmente un entero.

String
Se reservan tantos BYTES como cantidad de caracteres contenga. Existen además una serie de
operaciones incorporadas al hardware para su manipulación.

Por ejemplo, para el set de instrucciones de Intel correspondientes al procesador 80286 se


encuentran:

COMPS Compara dos cadenas.


STOS Almacena una cadena.
OUTS Salida de una cadena a un puerto.

Es importante destacar que desde el punto de vista de la máquina, no existe el tipo de sus datos,
sino que todos los dígitos son colecciones de BYTES, ni siquiera la cantidad de estos es de interés,
es decir, es responsabilidad del programador que sus datos sean tratados como pertenecientes a
cierto tipo.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Bibliografía
Tanenbaum, A. "Organización de computadoras. Un enfoque
estructurado".
Prentice-Hall Hispanoamericana. México

Taub,H. & Schilling, D. “Digital Integrated Electronics”.


McGraw-Hill. Japón.

M. Rafiquzzman, R. Chandra “Arquitectura de ordenadores Del diseño lógico al proceso


paralelo”
Anaya Multimedia

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados

Anda mungkin juga menyukai