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
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Indice 3
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.
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:
Nuevamente hay dos condiciones que determinarán que Carolina vaya o no al cine: que
Alejandra pueda ir o que Miriam pueda ir.
Esta vez la única condición a considerar es si llegamos temprano. La tabla de verdad queda:
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
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
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
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
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
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
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
x y p z
0 0 0 1
0 1 0 1
1 0 0 1
1 1 1 0
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.
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
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 (+).
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:
2. Acotamiento
(2a) a+1=1 (2b) a*0=0
Demostración:
3. Absorción
(3a) a + (a * b) = a (3b) a * (a + b) = a
Demostración:
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:
0+q=0
q+0=q
Entonces q = 0.
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:
a+x=1 (3)
a*x=0 (4)
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Leyes del Algebra de Boole 15
Demostración:
(a')' = a.
7. Complemento de 0 y 1
(7a) 0' = 1 (7b) 1' = 0
Demostración:
8. a ≠ a’
Demostración:
a+a=1
a*a=0
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
16 Leyes del Algebra de Boole
Demostración:
10. Propiedad
(10a) a + b = 0 entonces a = 0 y b = 0
(10b) a * b = 1 entonces a = 1 y b = 1
Demostración:
Demostración:
Se probará que a' * b' es el complemento de a + b, verificando que satisface las condiciones:
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
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Leyes del Algebra de Boole 17
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:
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.
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
18 Leyes del Algebra de Boole
A continuación se muestra con Diagramas de Venn las operaciones de intersección (∩) y unión de
(∪)dos conjuntos.
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:
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:
2. El complemento de cualquier expresión booleana (si f es una expresión booleana, f' también lo es)
Ejemplo:
a
b+1
(a + c') * (b' * c)
b * c + (a'+ b) * c * d'
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.
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:
Definición:
Una función booleana f es una correspondencia que a cada valor de V adjudica uno de G.
Ejemplos:
V f(x, y)
(0, 0) 0
(0, 1) 1
(1, 0) 0
(1, 1) 1
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.
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 Π
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)
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
El procedimiento para construir una tabla de especificación a partir de una expresión booleana es el
siguiente:
Ejemplo:
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:
x y f(x, y)
0 0 1
0 1 0
1 0 1
1 1 0
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
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.
Ejemplo:
x y f(x, y)
0 0 0
0 1 1
1 0 0
1 1 1
f(x, y) = x' y + x y
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
24 Funciones Booleanas y Simplificación
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:
x y f(x, y)
0 0 0
0 1 1
1 0 0
1 1 1
f(x, y) = (x + y) (x’ + y)
OBSERVACIONES
• Las funciones f(x, y) obtenidas por SPC y por PSC son distintas pero equivalentes
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Funciones Booleanas y Simplificación 25
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:
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
Ejemplos:
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)
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í:
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
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’.
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
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:
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.
x\y 0 1
0 1
1 1 1
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
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
x\yz 00 01 11 10
0 0 1 3 2
1 4 5 7 6
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
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:
y
x\yz 00 01 11 10
0 1 1
1 1 1 x
z
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
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
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
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:
y
wx\yz 00 01 11 10
00 1 1
01 1
x
11 1
w
10 1 1
z
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
y’
x\yz 00 01 11 10
0 0 0
1 0 x’
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
A continuación se demostrará como construir las compuertas NOT, AND y OR utilizando solo
compuertas NOR.
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Puertas Universales NOR y NAND 35
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
36 Puertas Universales NOR y NAND
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.
• 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.
Se construirá un codificador 4 a 2. Para eso alcanzará con 2 bits para el código binario (22 = 4).
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
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
40 Circuitos Combinacionales
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.
V = D0 + D1 + D2 + D3
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.
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
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á:
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
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
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
44 Circuitos Combinacionales
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.
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.
El demultiplexor puede utilizarse en muchos casos como decodificador y adopta cualquiera de las
funciones que un decodificador realiza.
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.
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.
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
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 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.
S0 = C’ D1
Si = C Di-1 + C’ Di+1
Sn-1 = C Dn-2
Para i entre 1 y n-2
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Combinacionales 49
00 – A AND B
01 – A OR B
10 – NOT B
11 – A + B
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
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Secuenciales 51
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
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.
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
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
0/0
Donde:
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.
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
Estado binario
Estado y1 Y0
A 0 0
B 0 1
C 1 0
D 1 1
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
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Circuitos Secuenciales 55
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.
• 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 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”.
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.
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.
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.
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 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
CK D Qn+1
0 x Qn
1 0 0
1 1 1
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.
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.
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.
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
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
• 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.
Ejercicio:
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.
• 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
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:
• 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:
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
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Representación de Datos 67
• 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:
Ejemplos:
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
Ejemplos:
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:
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:
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
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.
Si los dos sumandos tienen el mismo signo y el resultado es de signo opuesto, ha habido overflow
y el resultado es incorrecto.
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
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
• Exponente de 2 dígitos con signo -99 <= e <= 99 (en total 199)
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
72 Representación de Datos
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
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é.
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.
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.
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
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
Representación de Datos 75
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados
76 Representación de Datos
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.
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
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.
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
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa y asociados