Vous êtes sur la page 1sur 17

CAPTULO 1

Circuitos Combinacionales.
1.1.- Fundamentos.

La funcin principal de los sistemas digitales, entre ellos las


computadoras, es la de procesar informacin. Por tanto es necesario
contar con mtodos y sistemas para representar la informacin en formas
que se puedan manipular y almacenar utilizando equipo electrnico o de
otro tipo.
En esta seccin se estudiarn los sistemas numricos y cdigos que se
utilizan con frecuencia en las computadoras y sistemas digitales.

1.1.1.- Sistemas numricos.

Un sistema numrico consta de un conjunto ordenado de smbolos


llamados dgitos, con relaciones definidas para la suma, resta,
multiplicacin y divisin. La base (r) del sistema numrico es el nmero
total de dgitos permitidos en dicho sistema. Cualquier nmero en un
sistema dado puede tener una parte entera y una parte fraccionaria
separadas mediante un punto.
Los sistemas numricos de uso comn en el diseo de sistemas
digitales y la programacin de computadoras, incluyen el decimal (r=10), el
binario (r=10), el octal (r=8) y el hexadecimal (r=16).
Dos formas de representar un nmero de cualquier base r son la
notacin posicional y la notacin polinomial.
Un nmero positivo N en notacin posicional se escribe como:

N = an 1an 2|...a1a0 .a1a 2 ...a m


r
Un nmero positivo N en notacin polinomial se escribe como:

N=

n 1

ai r i

(1.1)

(1.2)

i = m

Captulo 1: Circuitos Combinacionales

Nombre
Base
Dgitos

Primeros
enteros
positivos

Decimal
Binario
10
2
0,1,2,3,4,5,6, 0, 1
7,8,9
17

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Octal

0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111
10000

Hexadecimal
8
16
0,1,2,3,4,5,6, 0,1,2,3,4,5,6,
7
7,8,9,A,B,C,D
,E,F
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
10
9
11
A
12
B
13
C
14
15
D
E
16
F
17
10
20

Tabla 1.1. Sistemas numricos importantes.

1.1.1.1.- Aritmtica binaria.

La aritmtica binaria es muy sencilla, se usan los algoritmos usados


comnmente en el sistema decimal. Esto lo veremos con los siguientes
ejemplos:
Ejemplo 1.1 Suma. Sumar los dos nmeros binarios (111101) y (10111).

1
1
1

1
0
0

1
1
1

0
1
0

1
1
0

Acarreos

Sumando
Sumando
Suma

Diseo Moderno de Sistemas Digitales

Seccin 1.1 Fundamentos

Ejemplo 1.2 Resta. Restar (10111) a (1001101).


1
-

0
1

0
1
1

1
0
0

1
1
1

0
1
1

1
1
0

Minuendo
Sustraendo
Diferencia

Ejemplo 1.3. Multiplicacin. Multiplicar (10111) por (1010).


1
x

1
1

0
0
1

1
0
1
1

0
0
0
1
0

0
1
0
1
0
1
0

1
0
0
1
0

1
1
0
1

1
0
0

Multiplicando
Multiplicador

Producto

Ejemplo 1.4. Divisin. Dividir (1110111) entre (1001).

Divisor

/1 1
0 1
0

1
0
0
0

1
0
1
1
1

1
1
1
0
0
0

0
1

1
1

Cociente
Dividendo

1
1
1

1
0

Residuo

1.1.1.2.- Conversiones de base.

Estudiaremos dos mtodos de conversin de nmeros entre diferentes


bases. El primero se conoce como sustitucin de una serie mientras que el
segundo es el de divisin/multiplicacin por la base.
El mtodo de sustitucin de una serie se basa en la representacin
polinomial de un nmero. La ecuacin (1.2) puede expandirse en la forma:

N = a n 1r n 1 + ... + a0 r 0 + a 1r 1 + ... + a m r m

(1.3)

Los pasos a seguir para realizar la conversin de un nmero de base A,


a su representacin en base B, son:

Captulo 1: Circuitos Combinacionales

1) Se forma la representacin en serie del nmero en base A en el


formato de la ecuacin (1.3).
2) Se evala la serie usando la aritmtica de base B.
Ejemplo 1.5. Convertir (101000) a base 10.

N = 1 2 4 + 0 2 3 + 1 2 2 + 0 21 + 0 2 0
= (16)10 + 0 + (4)10 + 0 + 0
= (20)10
Ejemplo 1.6. Convertir (274)8 a base 10.

N = 2 8 2 + 7 81 + 4 8 0
= (128)10 + (56)10 + (4)10
= (188)10
El mtodo de divisin/multiplicacin por la base se puede dividir en
dos partes. Una para convertir un nmero N entero de base A a la base B
(divisin entre la base), y la otra para convertir el nmero fraccionario
(multiplicacin por la base).
El mtodo de divisin entre la base consiste de los siguientes pasos:
1) Dividir el nmero N que est en base A, entre la base deseada,
obteniendo el coeficiente Q1 y el residuo R0. R0 es el dgito menos
significativo del resultado.
2) Se calcula cada uno de los dgitos restantes dividiendo cada
cociente resultante entre la base deseada.
3) Se detiene el proceso cuando el cociente sea cero.
Ejemplo 1.7. Convertir (234) a base 8.
8/234 =
29/8 =
3/8
=

29 +
3 +
0 +

2/8
5/8
3/8

b0=2
b1=5
b2=3

entonces (234)10 = (325)8

Diseo Moderno de Sistemas Digitales

Seccin 1.1 Fundamentos

El mtodo de multiplicacin por la base se muestra en el siguiente


ejemplo:
Ejemplo 1.8. Convertir (0.1285) a base 8.
0.1285 8 = 1.0280

b -1 = 1

0.0280 8 = 0.2240

b-2 = 0

0.2240 8 = 1.7920

b -3 = 1

0.7920 8 = 6.3360

b-4 = 6

0.3360 8 = 2.6880

b -5 = 2

0.6880 8 = 5.5040

b -6 = 5

0.5040 8 = 4.0320

b-7 = 4

0.0320 8 = 0.2560

b -8 = 0

as:

(0.1285) = (0.10162540...)8

1.1.2.- Representacin de nmeros con signo.

El signo de los nmeros almacenados en los sistemas digitales se


especifica mediante un dgito llamado dgito de signo, que por lo general
se coloca en la posicin extrema izquierda de los dgitos del nmero. Los
nmeros positivos se especifican con un dgito de signo igual a cero, y los
negativos, con un dgito de signo distinto de cero. El mtodo ms sencillo
de representar nmeros con signo es el de magnitud y signo. Un nmero
de la forma N = (a n 1...a0 .a 1...a m )r , se puede representar en la forma
de magnitud y signo como sigue:

N = (Sa n 1...a0 .a 1...a m )r

(1.4)

donde S=0 si N es positivo y S=1 si N es negativo.

1.1.2.1.- Complemento.
El complemento a una base [N]r de un nmero (N)r dado por la ecuacin
(1.2), se define como:

[N ]r

= r n (N )r

(1.5)

Captulo 1: Circuitos Combinacionales

donde n es el nmero de dgitos de (N)r. El nmero positivo ms grande


que puede representarse es rn-1-1, mientras que el nmero negativo ms
pequeo es rn-1.
Signo Decimal
+7
+6
+5
+4
+3
+2
+1
0
-1
-2
-3
-4
-5
-6
-7

Binario en
magnitud y signo
0,111
0,110
0,101
0,100
0,011
0,010
0,001
0,000
(1,000)
1,001
1,010
1,011
1,100
1,101
1,110
1,111

Complemento a
dos
0,111
0,110
0,101
0,100
0,011
0,010
0,001
0,000
1,111
1,110
1,101
1,100
1,011
1,010
1,001

Complemento a
uno
0,111
0,110
0,101
0,100
0,011
0,010
0,001
0,000
(1,111)
1,110
1,101
1,100
1,011
1,010
1,001
1,000

Tabla 1.2. Diferentes formas de representar nmeros con signo.


El complemento a dos es el caso especial (para nmeros binarios) del
complemento a una base, est dado por:

[N ]2 = 2 n ( N ) 2

(1.6)

donde n es el nmero de bits de (N)2. El complemento a dos es el formato


de uso ms comn para los nmeros con signo en los sistemas digitales.
Ejemplo 1.9. Determinar el complemento a dos de (N)2=(01100101)2.
De la ecuacin (1.6),

Diseo Moderno de Sistemas Digitales

Seccin 1.1 Fundamentos

[N ]2 = [01100101]2
= 28 (01100101)2
= (100000000)2 (01100101)2
= (10011011)2
Ejemplo 1.10. Determinar el complemento a dos de (N)2=(10110)2, para
n=8
De la ecuacin (1.6),

[N ]2 = [10110]2
= 28 (10110)2
= (100000000)2 (10110)2
= (11101010)2
Ejemplo 1.11. Determinar el complemento a dos de (N)2=(11010100)2, y
verificar que puede servir para representar -(N)2 demostrando que
(N)2+[N]2=0.
Primero se determina el complemento a dos:

[N ]2 = (00101100)2 ,

ahora calculamos (N)2+[N]2:

+
1

1
0
0

1
0
0

0
1
0

1
0
0

0
1
0

1
1
0

0
0
0

0
0
0

del resultado obtenido, el 1 se denomina acarreo, descartndolo,


obtenemos que (N)2+[N]2=0.

El complemento disminuido a una base a una base [N]r-1 de un nmero


(N)r, se define como:

[N ]r 1 = r n ( N ) r 1
donde n es el nmero de dgitos de (N)r.

(1.7)

Captulo 1: Circuitos Combinacionales

El complemento a uno es el caso especial (para nmeros binarios) del


complemento disminuido a una base, y est dado por:

[N ]2 1 = 2 n ( N ) 2 1

(1.8)

donde n es el nmero de bits de (N)2.


Ejemplo 1.12. Determinar el complemento a uno de (N)2=(01100101)2,
para n=8
De la ecuacin (1.8),

[N ]2 1 = 28 (01100101)2
= (100000000)2 (01100101)2
= (10011010)2
Observar que para determinar el complemento a uno de un nmero binario,
basta con intercambiar los unos con los ceros y viceversa. Mientras que
para obtener el complemento a dos basta con obtener el complemento a
uno y sumarle 1.

1.1.2.2.- Sistemas numricos complementarios.

Los nmeros complementarios son la base de la aritmtica


complementaria, un mtodo frecuentemente utilizado en los sistemas
digitales para realizar operaciones algebraicas con nmeros con signo. En
estos sistemas, los nmeros positivos se representan de la misma manera
que en un sistema con magnitud y signo, mientras que los nmeros
negativos se representan como el complemento del nmero positivo
correspondiente.
Ya se ha definido el complemento a una base y se ha presentado la
forma de obtenerlo, adems se ha sugerido la forma en que puede
representarse un nmero negativo utilizando el complemento a una base.
Ahora, describiremos un sistema numrico que utiliza el complemento a
dos para representar a los nmeros negativos.
En el sistema numrico de complemento a dos, los nmeros positivos se
representan de la misma manera que en el sistema de magnitud y signo,

Diseo Moderno de Sistemas Digitales

Seccin 1.1 Fundamentos

utilizamos un bit 0 a la izquierda para representar el signo (positivo). Los


nmeros negativos se representan con el complemento a dos del nmero
positivo correspondiente a dicho nmero negativo, y tienen un bit de signo
igual a 1.
Ejemplo 1.13. Dado (N)2=(1100101)2, determinar las representaciones de
(N)2 en el sistema numrico de complemento a dos, para n=8.
La representacin de +(N)2 queda: + ( N )2 = (0.1100101)2
Para obtener la representacin -(N)2, hacemos lo siguiente:

(N )2 = [+ ( N )2 ]2

= [0,1100101]2
= 28 (0,1100101)2

= (100000000)2 (0,1100101)2
= (1,00110011)2

Ejemplo 1.14. Determinar la codificacin en el sistema numrico de


complemento a dos de (13)10 para n=8.
Primero convertimos (13)10 a binario, asi:

(13)10 = (1101)2 = (0,0001101)2


Ahora, calculamos el complemento a dos de este ltimo resultado, con lo
que podremos representar -(13)10:
(13)10 = (0,0001101)2
= [0,0001101]2
= (1,1110011)2

Ejemplo 1.15.
N=(1,1111010)2

Determinar

el

nmero

decimal

representado

por

10

Captulo 1: Circuitos Combinacionales

Como el bit de signo es 1, entonces se trata de un nmero negativo.


Calculando el complemento a dos del nmero dado, obtenemos su
magnitud:
N = (1,1111010)

= [1,1111010]2

= (0,0000110 )2
= (6 )10

donde (0,0000110)2=+(6)10. Por lo tanto (1,1111010)2 representa a -(6)10.

1.1.2.3- Aritmtica binaria complementaria.

Muchos sistemas y computadoras digitales utilizan un sistema


numrico de complemento a una base con el fin de minimizar la cantidad
de circuitos necesarios para realizar la aritmtica de enteros. De este
modo, podemos realizar la operacin A-B calculando A+(-B), donde (-B)
est representado por el complemento a dos de B: Por lo que solo
necesitamos un sumador binario y algunos circuitos complementarios para
realizar la suma y la resta.
Los sistemas digitales operan con sistemas finitos de nmeros, cuyo
tamao depende del nmero de bits disponibles. El nmero de bits fija un
intervalo numrico, el sistema no puede manejar nmeros fuera de este
intervalo.
Las mquinas que utilizan el sistema numrico de complemento a dos,
pueden representar nmeros en el intervalo:

2 n 1 N 2 n 1 1

(1.9)

donde n es el nmero de bits disponibles en el sistema para representar


N.
Si una operacin produce un resultado fuera del intervalo disponible
indicado por (1.9), entonces el resultado presentado no es correcto y se
dice que se tiene una condicin de sobreflujo. Se requiere entonces vigilar
las operaciones aritmticas para evitar tomar resultados errneos.
En los siguientes ejemplos se muestra el uso del sistema numrico de
complemento a dos de 5 bits.

Diseo Moderno de Sistemas Digitales

Seccin 1.1 Fundamentos

Ejemplo 1.16. Calcular (9)10+(5)


de 5 bits.

10

11

con aritmtica de complemento a dos

Se escriben los nmeros (9)10 y (5)


complemento a dos:

10

en su representacin de

(9)10 = +(1001)2 = (0,1001)2


(5)10 = +(0101)2 = (0,0101)2
Ntese que el quinto bit es el bit de signo. Sumando estos dos cdigos:
0
0
0

1
0
1

0
1
1

0
0
1

1
1
0

como el resultado presenta un bit de signo 0, entonces se trata de un


nmero positivo como se esperaba, as:
(0,1110)2=+(1110)2=+(14)10

Ejemplo 1.17. Calcular (12)10+(7) 10 con aritmtica de complemento a dos


de 5 bits.

(12)10 = +(1100)2 = (0,1100)2


(7 )10 = +(0111)2 = (0,0111)2
0
0
1

1
0
0

1
1
0

0
1
1

0
1
1

como el resultado presenta un bit de signo 1, entonces se trata de un


nmero negativo, as:
(1,0011)2=-(1101)2=-(13)10

12

Captulo 1: Circuitos Combinacionales

y el resultado es errneo. Lo que se esperaba como resultado es: +(19)10,


que el nmero de bits disponibles (n=5) no se puede representar por que
sale del rango permitido. Entonces ocurre una condicin de sobreflujo.

Ejemplo 1.18. Calcular (12)10-(5) 10 con aritmtica de complemento a dos


de 5 bits.

(12)10 = +(1100)2 = (0,1100)2


(5)10 = (0101)2 = (1,1011)2

0
1
0

1
1
0

1
0
1

0
1
1

0
1
1

el resultado presenta 6 bits, el sexto bit se conoce como bit de acarreo,


descartndolo, observamos que el resultado presenta un bit de signo 0,
entonces se trata de un nmero positivo, as:
(0,0111)2=+(0111)2=+(7)10

Ejemplo 1.19. Calcular (5)10-(12)10 con aritmtica de complemento a dos


de 5 bits.
+ (5)10 = +(0101)2 = (0,0101)2

(12 )10 = (1100 )2 = (1,0100 )2

0
1
1

0
0
1

1
1
0

0
0
0

1
0
1

En este caso no hay acarreo, el bit de signo es 1, por lo que tenemos un


nmero negativo, as:
(1,1001)2=-(0111)2=-(7)10

Diseo Moderno de Sistemas Digitales

Seccin 1.1 Fundamentos

13

1.1.3- lgebra booleana.

En 1849, George Bool present una formulacin algebraica de los


procesos del pensamiento y el razonamiento lgico. Esta formulacin se
conoce como lgebra booleana.

1.1.3.1.- Postulados.

La descripcin bsica de la formulacin del lgebra booleana, se basa


en conceptos de la teora de conjuntos, donde se define formalmente un
lgebra booleana como un conjunto matemtico distributivo y
complementado. Enseguida se presentan una serie de postulados que
sintetizan los elementos y propiedades bsicas del lgebra booleana.
Postulado 1. Definicin. Un lgebra booleana est formado por un
conjunto k de dos o ms elementos y los dos operadores AND y OR.
Postulado 2. Existencia de 0 y 1. En el conjunto k existen los elementos
0 y 1, tales que:
a) a+0=a
b) a1=a
Postulado 3. Conmutatividad. Para toda a y b en k:
a) a+b=b+a
b) ab=ba
Postulado 4. Asociatividad. Para toda a, b y c en k:
a) a+(b+c)=(a+b)+c
b) a(bc)=(ab)c
Postulado 5. Distributividad. Para toda a, b y c en k:
a) a+(bc)=(a+b)(a+c)
b) a(b+c)=(ab)+(ac)
Postulado 6. Complemento. Para toda a en k existe un nico elemento
llamado a (complemento de a ) en k tal que:
a) a + a = 1
b) a a = 0

14

Captulo 1: Circuitos Combinacionales

1.1.3.2- Teoremas fundamentales.

En esta seccin enunciamos algunos teoremas tiles del lgebra


booleana. Como se ver ms adelante, estos teoremas forman la base
de algunos mtodos estndar y automatizados por computadora para
simplificar funciones booleanas.

Teorema 1. Idempotencia.
a) a + a = a
b) aa = a
Teorema 2. Elementos neutros.
a) a + 1 = 1
b) a + 0 = 0
Teorema 3. Involucin.

a=a
Teorema 4. Absorcin.
a) a + ab = a
b) a (a + b ) = a
Teorema 5.
a) a + ab = a + b
b) a (a + b ) = ab
Teorema 6.
a) ab + ab = a
b) (a + b )(a + b ) = a
Teorema 7.
a) ab + abc = ab + ac
b) (a + b )(a + b + c ) = (a + b )(a + c )
Teorema 8. Teorema de Morgan.
a) a + b = a + b
b) ab = a + b
Ejemplo 1.20. ( X + Y ) + ( X + Y )Z = X + Y , usando el teorema 4(a).
Diseo Moderno de Sistemas Digitales

Seccin 1.1 Fundamentos

15

Ejemplo 1.21. A B ( A B + BC ) = A B , usando el teorema 4(b).


Ejemplo 1.22. B + ABC D = B + AC D , usando el teorema 5(a).
Ejemplo 1.23. Y ( X + Y + Z ) = Y ( X + Z ) , usando el teorema 5(b).
Ejemplo 1.24. Simplificar

(W + X + Y + Z )(W + X + Y + Z )(W + X + Y + Z )(W + X + Y + Z )


= (W + X + Y )(W + X + Y + Z )(W + X + Y + Z )
,
= (W + X + Y )(W + X + Y )
= (W + X )
Ejemplo 1.25. Simplificar

w y + w x y + wxyz + wx z = w y + w x y + wxy + wx z
= w y + wy + wx z
= w + wx z
=w
Ejemplo 1.26. Complementar la siguiente expresin.

a(b + z (x + a )) = a + (b + z (x + a ))

= a + b + (z (x + a ))

= a + b + (z + x + a )

= a +b + z + xa

= a + b + (z + x a )
= a + b + (z + x )

1.2- Funciones lgicas y minimizacin.

Se han enunciado los postulados y teoremas del lgebra booleana en


forma general, sin especificar los elementos del conjunto k. Los
resultados son vlidos para cualquier lgebra booleana. El lgebra
booleana en donde k={0, 1} se conoce como lgebra de conmutacin o
lgebra binaria.

16

Captulo 1: Circuitos Combinacionales

En lo que sigue, nos centraremos en el estudio de las funciones


binarias o funciones de conmutacin y en su minimizacin.

1.2.1.- Funciones lgicas.

Podemos definir una funcin booleana de la siguiente manera:


Sean x1, x2,...., xn variables del lgebra de conmutacin (es decir, cada una
de ellas puede adoptar o el valor de 0 o de 1), y sea f(x1, x2,...., xn) una
funcin de conmutacin. Esta funcin puede ser 0 o 1.
Como hay n variables y cada variable tiene dos posibles valores, hay 2n
maneras de asignar estos valores a las n variables. Adems, existen dos
valores posibles para la funcin f(x1, x2,...., xn). Por tanto, hay 2 2
diferentes funciones de conmutacin de n variables.
As, si n=0, las dos funciones de conmutacin de cero variables son:
f0 = 0

f1 = 1
Si n=1, las cuatro funciones de la variable A, son:
f 0 = 0, f 2 = A

f1 = A,

f3 = 1

Si n=2, tendremos 16 funciones posibles.

1.2.1.1.- Tablas de verdad.

Podemos representar una funcin de conmutacin mediante varias


expresiones de conmutacin diferentes, pero equivalentes.
Si evaluamos una funcin de conmutacin para todas las posibles
combinaciones de las entradas y presentamos los resultados como una
tabla, obtenemos una representacin nica de la funcin llamada tabla de
verdad.
Ejemplo 1.27. Tablas de verdad de las funciones AND; OR y NOT.
a
0
0
1
1

b f(a.b)=a+b
0
0
1
1
0
1
1
1

a
0
0
1
1

b
0
1
0
1

F(a,b)=ab
0
0
0
1

a
0
1

Diseo Moderno de Sistemas Digitales

F(a)= a
1
0

Seccin 1.1 Fundamentos

17

Ejemplo 1.28. Tabla de verdad de la funcin f ( A, B, C ) = AB + AC + AC


A
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1

C
0
1
0
1
0
1
0
1

F(A, B, C)
0
1
0
1
1
0
1
1

1.2.1.2.- Formas algebraicas de las funciones lgicas.


Las funciones lgicas se pueden escribir en dos formas especficas: la
forma suma de productos (SOP), y la forma producto de sumas (POS).
En la forma SOP, las funciones se construyen al sumar (OR) trminos
producto(AND), donde cada trmino producto se forma mediante el AND
de varias variables complementadas o no complementadas, cada una de las
cuales es una literal. Por ejemplo:
f ( A, B, C ) = A BC + B D + AC D
Las funciones de conmutacin en la forma POS, se construyen al
considerar el producto (AND) de trminos suma (OR), donde cada trmino
suma se obtiene mediante el OR de varias literales. Por ejemplo:
f ( A, B, C ) = ( A + B + C )(B + C + D )( A + C + D )
Si la funcin que est en la forma SOP, y cada uno de los trminos
producto contiene cada una de las n variables exactamente una vez, ya
sea en forma complementada o no complementada, entonces, se dice que
la funcin est en forma SOP cannica y a cada uno de los trminos se les
conoce como minitrminos. Entonces, para una funcin de n variables se
tienen nicamente 2n posibles minitrminos, y solo con ellos se puede
formar dicha funcin. Por ejemplo, para 3 variables, podemos tener 8
minitrminos.
Por otro lado, si una funcin que est en la forma POS tiene cada uno
de sus trminos suma formado por cada una de las n variables
exactamente una vez en forma complementada o no complementada,
entonces, se dice que la funcin est en la forma POS cannica, y a cada
uno de los trminos suma se les denomina maxitrmino.

Vous aimerez peut-être aussi