Académique Documents
Professionnel Documents
Culture Documents
INFORME FINAL
TRABAJO DE INVESTIGACION
EJECUTORES
INDICE
pg
Resumen ............................................................................................................. i
Introduccin ........................................................................................................ ii
Esquema del contenido
1. REPRESENTACION DE DATOS
RESUMEN
Es comn en los docentes universitarios, al preparar sus clases, tomar 2 o ms libros
texto y hacer un resumen con cada uno de ellos que luego usar para impartir su
clase. Justamente es lo que pretende realizar el presente trabajo, tomando como base
el libro Arquitectura de Computadoras de MORRIS MANO M. y otros textos como por
ejemplo Sistemas Digitales, Principios y Aplicaciones de TOCCI, Ronald y Diseo
Digital Principios y Practicas de WAKERLY, John F. seleccionar lo mejor de cada uno
de ellos y hacer un resumen, explicando con mayor detalle las reas que lo requieran
o se consideren necesarias, resolviendo algunos ejercicios y planteando otros.
INTRODUCCION
En la ciencia, la tecnologa, la administracin y, de hecho, muchos otros campos de la
actividad humana, constantemente se manejan cantidades. Estas se miden, registran,
manipulan aritmticamente, observan o se utilizan en muchos sistemas fsicos. Existen
bsicamente dos maneras de representar el valor numrico de las cantidades: la
analgica y la digital.
Las cantidades analgicas tienen la caracterstica de poder variar gradualmente sobre
un intervalo continuo de valores como en el caso de un velocmetro. La posicin
angular de la aguja representa el valor de la velocidad del automvil y sigue cualquier
cambio que ocurra conforme el automvil acelere o frene. Mientras que las cantidades
digitales varan en etapas discretas (paso a paso), como por ejemplo un reloj digital, el
cual no cambia continuamente sino por etapas (uno por minuto o por segundo) a pesar
que el tiempo transcurre en forma contina.
Por otro lado, uniendo adecuadamente compuertas NAND o NOR se puede formar un
FLIP-FLOP que es la unidad bsica de almacenamiento. Uniendo Flip-Flops y circuitos
combinatorios se puede disear registros, contadores, unidad de memoria y otros
componentes de apoyo del procesador.
Para finalizar, todos los componentes mencionados unidos mediante circuitos lgicos,
los cuales les proveeran de las selales de control apropiadas para que stos
tranfieran y procesen la informacin, ya sea un codigo de instruccin o un dato.
I REPRESENTACION DE DATOS
1.1. Sistemas numricos
Si bien es cierto que una computadora puede realizar una serie de tareas
complejas, la verdad es que lo nico que comprende es 0 y 1. Estos 0 y 1
agrupados adecuadamente (bajo un formato) pueden representar diferentes tipos
de informacin binaria para el procesador tales como datos, cdigo ejecutable,
caracteres, seales de control, etc. Como resulta obvio pensar, el sistema de
numeracin que puede traducir directamente la computadora es el BINARIO, pero
ste resulta muy difcil de comprender y manipular por los seres humanos ya que
la mayora estamos acostumbrados a usar el sistema de numeracin DECIMAL.
Otro de los inconvenientes de trabajar con el sistema binario es la documentacin,
ya que para expresar cualquier nmero en binario se necesitar mucho ms
espacio que si se utilizara, por ejemplo, el sistema decimal o, mejor aun, el sistema
HEXADECIMAL.
Estos tres tipos de sistemas de numeracin pertenecen a los sistemas numricos de
base o raz r (r=2 para binario, r=10 para decimal y r=16 para hexadecimal),
tambin se les conoce como sistemas posicionales debido a que cada digito tiene
un valor basado en su posicin relativo al digito menos significativo (el que se
encuentra ms a la derecha).
Para determinar el valor que representa un nmero de base r en el sistema decimal
se puede utilizar la siguiente formula:
N=
e -1
d *r
i= - f
Donde:
Al tener, este sistema slo los dgitos 0 y 1, cualquier nmero que se desee
representar se debe de hacer con una combinacin de stos.
El conteo en binario inicia con 0, al sumarle 1 (0+1) nos dar 1. Si luego le
sumamos 1 (1 + 1) nos dar 0 (porque no existe el digito 2) ms 1 de
acarreo es decir 10 en total, que es la representacin de 2. Nuevamente
sumamos 1 (10 + 1) resultar 11 (representacin de 3) y al sumarle 1
(11+1) nos dar 100 (4 en binario) y as sucesivamente.
Numeracin del 0 al 15 en decimal, binario y binario con 4 bits
Dec
0
1
2
3
4
5
6
7
Bin
0
1
10
11
100
101
110
111
Bin 4 bits
0000
0001
0010
0011
0100
0101
0110
0111
Dec
8
9
10
11
12
13
14
15
Bin
1000
1001
1010
1011
1100
1101
1110
1111
Bin 4 bits
1000
1001
1010
1011
1100
1101
1110
1111
1.1.3. Hexadecimal
Este sistema de numeracin est conformado por los 10 dgitos del sistema
decimal (0-9) y 6 dgitos ms, como por ejemplo el DIGITO DIEZ (10) o
el DIGITO TRECE (13), pero para evitar confusiones cuando se
3
11101110
=
-110
Como se aprecia el resultado es -110 cuando debi ser 62.
En la actualidad este sistema se emplea nicamente para la
codificacin de nmeros con punto flotante.
b) Complemento a 2.- El complemento a r de un numero N de un sistema
de base r es rn-N, donde n es la cantidad de dgitos de N y el
complemento a (r-1) es (rn-1)-N.
Ejemplo: Hallar el complemento a 10 de 392
103-392=608
Ejemplo: Hallar el complemento a 9 de 392
103-1-392=607
Es decir, que el complemento a r de N es igual al complemento a (r-1)
de N, ms 1.
Ahora si a un nmero X le restamos Y entonces:
X-Y = X-Y+rn-rn = X+(rnY)-rn = X+CY(r)-rn
Donde CY(r) es el complemento a r de Y.
7
5
8
E
2
1
9
6
5
2
B
D
3
0111
0101
1000
1110
0010
0001
1001
0110
0101
0010
1011
1101
0011
y normalizado:
1.00101011101011000111000100001100101100101001010111101 x 25
donde E = C-2N-1+1
7
Una vez obtenida las respectivas representaciones de los valores con parte
fraccionaria, hay que evaluar el ERROR de precisin. Hay 2 tipos de error:
por DEFECTO y por EXCESO. El primero se da cuando la representacin
obtenida es menor que el valor real y la segunda cuando es mayor,
obviamente se deber elegir aquella que tenga menor error.
En el caso del formato de 32 bits, podemos apreciar que el digito 24 del
numero normalizado (despus del punto) es 1 por lo que procedemos a
redondear (aumentar en 1 la mantisa) lo cual nos dar 95D639h x 2-18 =
37,459201812744140625. Esta representacin, aunque genera un error por
exceso, es la ms cercana al valor real.
Con el formato de 64 bits ocurre algo semejante. El bit 53 del numero
normalizado tambin es 1, por lo que se procede a redondear con lo que se
obtiene 12BAC710CB295Fh x 2-47 = 37,45920000000000271711 que
como se aprecia es bastante prximo a 34.4592.
1.4. Otros cdigos
En ocasiones, se utilizan otros cdigos binarios para nmeros decimales y
caracteres alfanumricos. Las computadoras digitales tambin emplean otros
cdigos binarios para aplicaciones especiales. Veamos algunos de ellos:
1.5.1. Cdigo Gray
Es la representacin de un conjunto de valores de tal manera que los
dgitos que lo conforman (binario) cambia slo uno de ellos conforme
avanza de un valor al siguiente. Por ejemplo, 3 en binario de cuatro bits es
0011 y 4 es 0100 como se aprecia, para pasar de 3 a 4, tres bits cambian su
estado, lo cual podra producir uno o ms estados intermedios, si los tres
bits no cambiasen simultneamente, esto no ocurre en cdigo Gray.
Para formar una tabla de nmeros en cdigo Gray de N bits se debe seguir
las siguientes reglas:
a) Un cdigo Gray de 1 bit tiene dos palabras cdigo: 0 y 1.
b) Las primeros 2N palabras de N+1 bits son iguales a las palabras de N
bits precedidas por un 0.
c) Las ultimas 2N palabras de N+1 bits son iguales a las palabras de N bits
escritas en orden inverso y precedidas por un 1.
Ejemplo:
N=1
0
1
N=2
00
01
--11
10
N=3
000
001
011
010
----110
111
101
100
1.5.3. ASCII
Muchas aplicaciones requieren el manejo de datos que no solo estn
formados por nmeros sino tambin por letras del alfabeto y por ciertos
caracteres especiales. Un conjunto de caracteres alfanumricos incluye los
10 dgitos decimales, las 26 letras del alfabeto y otros caracteres como $,
+, -, etc. Por lo que se necesitan 6 bits para codificarlos. Pero si adems se
incluyen letras maysculas o minsculas entonces se necesitaran 7 bits,
con lo que se puede codificar hasta 128 caracteres. Este conjunto de
cdigos ha sido estandarizado y tiene el nombre de ASCII (Cdigo
estndar americano para intercambio de informacin) y en la actualidad ha
sido extendido a 8 bits, es decir, 256 caracteres.
10
1.5. Ejercicios
1.5.1. Resueltos
a) Cual es el menor entero negativo y el mayor entero positivo que se
puede almacenar en un formato de 10 bits donde tambin se
representarn nmeros negativos usando complemento a 2
El menor entero positivo ser: -210-1 = -29 = -512
El mayor entero positivo ser: 210-1-1 = 29-1 = 511
b) Convertir 8503 a base 13
8503/13
cociente 654, residuo 1 (digito menos significativo)
654/13
cociente 50, residuo 4
50/13
cociente 3, residuo 11
3/13
cociente 0, residuo 3 (digito ms significativo)
Por lo tanto 8503 en base 13 ser: 3B41
c) Convertir 46.483 a base 16
Primero la parte entera
46/16
cociente 2, residuo 14 = E
2/16
cociente 0, residuo 2 = 2
46 en base 16 es 2E
Ahora la parte fraccionaria
0.483*16 = 7.728
0.728*16 = 11.648
11
0.648*16 = 10.368
10
0.368*16 = 5.888
0.888*16 = 14.208
14
7
B
A
5
E
12
1.5.2. Propuestos
a) Cual es el menor entero negativo y el mayor entero positivo que se
puede almacenar en un formato de enteros con signo de 8 bits.
b) Se desea representar slo enteros positivos con 12 bits, Cul es el
mayor entero que se puede representar?
c) Convertir 97058 a base 7.
d) Convertir 23.81 a base 12
e) Determine la secuencia de bits para la representacin de -7903.37 en
un formato de 32 bits.
f) Determine el verdadero valor (en decimal) almacenado en el ejercicio
anterior.
g) Determine la secuencia de bits para la representacin de 0.00517 en un
formato de 32 bits.
h) Determine el verdadero valor (en decimal) almacenado en el ejercicio
anterior.
i) Si A, B y C son variables enteras con signo de 16 bits que contienen
los valores -10732, 6932 y 0 respectivamente. Determine el valor de C
luego de hacer la siguiente operacin C=A-B.
j) Si A, B y C son variables enteras sin signo de 10 bits que contienen los
valores 372, 998 y 0 respectivamente. Determine el valor de C luego de
hacer la siguiente operacin C=A+B.
k) Convertir a cdigo Gray 826 (10 bits).
l) Codifique en binario 8037 (BCD)
13
C=AB
A B C
0 0 0
0 1 0
1 0 0
1 1 1
C=A+B
A B C
0 0 0
0 1 1
1 0 1
1 1 1
C=A
A C
0 1
1 0
C=(AB)
A B C
0 0 1
0 1 1
1 0 1
1 1 0
C=AB
A B C
0 0 0
0 1 1
1 0 1
1 1 0
C=(AB)
A B C
0 0 1
0 1 0
1 0 0
1 1 1
C=(A+B)
A B C
0 0 1
0 1 0
1 0 0
1 1 0
Ejemplo: F = A(B+C)
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F
0
0
0
0
1
0
0
0
A+0=A
A+1=1
A+A=A
A+A=1
A+B=B+A
A+(B+C)=(A+B)+C
A(B+C)=AB+AC
(A+B)=AB
9)
10)
11)
12)
13)
14)
15)
16)
17)
A0=0
A1=A
AA=A
AA=0
AB=BA
A(BC)=(AB)C
A+BC=(A+B)(A+C)
(AB)=A+ B
(A)=A
15
X
0
0
0
0
1
1
1
1
Y
0
0
1
1
0
0
1
1
Z
0
1
0
1
0
1
0
1
F
1
0
0
1
1
0
1
1
16
Si hacemos que: A = XY
F = AZ + AZ
F = A(Z + Z)
F=A1
F=A
F = XY
entonces tenemos:
si aplicamos la identidad 7) queda:
aplicando la identidad 4) Z + Z = 1
por la identidad 10)
regresando el valor original
Y
0
0
1
1
0
0
1
1
Z
0
1
0
1
0
1
0
1
F
0
0
0
0
1
0
1
0
F = (A + B)(A + B)
F = (A + B)A + (A + B)B
F = AA + BA + AB + BB
Con esto queda demostrado que (A + B)(A + B) puede ser reemplazado por
simplemente B, es decir, que la salida F slo y nicamente depende de la
variable de entrada B y no se toma en cuenta, para nada, el valor que pueda
tomar la variable A, esto tambin se puede apreciar en la tabla de verdad y el
diagrama simplificado de la expresin original de la figura 2.6
A
0
0
1
1
B
0
1
0
1
F
0
1
0
1
En este caso se puede ver como queda simplificada una expresin booleana
al mximo.
Cabe recalcar, una vez ms, que la tabla de verdad que se muestra en la
figura 2.6 satisface las condiciones de salida para ambos diagramas lgicos
(el original y el simplificado)
18
B
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
F
0
1
0
1
0
0
0
0
A
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
F
1
1
0
1
1
1
0
0
1
(0001)
5
(0101)
13
(1101)
9
(1001)
3
(0011)
7
(0111)
15
(1111)
11
(1011)
2
(0010)
6
(0110)
14
(1110)
10
(1010)
10
2
6
14
10
2
8
0
4
12
8
0
9
1
5
13
9
1
11
3
7
15
11
3
10
2
6
14
10
2
8
0
4
12
8
0
Como se observa la lnea 0 tiene adyacentes a las lneas 1 y 4 pero no a las lneas
2 y 8. Igual ocurre con la lnea 2 que tiene adyacentes a las lneas 3 y 6 pero no a
las lneas 0 y 10. Este inconveniente se resuelve copiando la tabla alrededor de la
tabla original como se muestra en la figura 2.10
Una vez que se tiene el mapa se forman grupos de 2, 4, 8, 16, etc. lneas
adyacentes cuya funcin de salida es 1. Esto significa que se pueden agrupar de:
2 trminos: Las lneas (0,1), (0,4), (0,2), (0,8); (5,1), (5,7), (5,4), (5,13); (11,9),
(11,3), (11,10), (11,15), etc.
4 trminos: Las lneas (0,1,3,2), (0,4,12,8), (0,1,4,5), (0,2,8,10); (1,5,13,9),
(1,3,9,11), (1,3,5,7); (6,4,14,12), (6,2,14,10), (6,7,15,14), etc.
8 trminos: Las lneas (0,1,3,2,4,5,7,6), (0,4,12,8,1,5,13,9), (0,4,12,8,2,6,14,10),
(0,1,3,2,8,9,11,10), etc.
No hay que olvidar que solo se agruparn las lneas cuya funcin de salida es 1
20
A
0
0
0
0
0
0
0
0
B
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
F
1
1
1
1
1
1
0
0
A
1
1
1
1
1
1
1
1
8
9
10
11
12
13
14
15
B
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
F
0
1
1
0
0
0
0
0
CD
01
1
4
1
12
5
13
7
15
0
9
CD
10
CD
11
11
0
14
0
10
Los nmeros en la esquina superior derecha de las celdas se corresponden con los
nmeros de lnea y los nmeros en el centro son los valores que toma la funcin
de salida en esa lnea.
En los bordes superior e izquierdo, aparecen los valores que pueden tomar las
variables lgicas. Por ejemplo, la interseccin de la fila AB y la columna CD
definen el trmino ABCD (0101, lnea 5). Otro detalle a tener en cuenta es el
orden o secuencia que tienen los elementos de los bordes, as, AB, AB, AB y
AB se corresponden con 00, 01, 11 y 10 (cdigo Gray para 0, 1, 2 y 3), de igual
manera ocurre con el borde superior.
A continuacin se proceder a agrupar. Cuanto mayor nmero de elementos
tenga el grupo, mayor ser la simplificacin
Las lneas 0, 1, 3 y 2 forman el grupo 1.
Las lneas 0, 1, 4 y 5 forman el grupo 2.
Las lneas 1 y 9 forman el grupo 3 y, finalmente,
Las lneas 2 y 10 el grupo de 4.
21
No importa que se tomen lneas que pertenecen a algn grupo para formar otro
grupo.
Ahora pasaremos a simplificar. La regla de simplificacin es sencilla:
QUEDARN SOLO AQUELLAS VARIABLES LGICAS PARA LAS
QUE NO APARECE SU COMPLEMENTO EN EL GRUPO
En el grupo 1 (ABCD + ABCD + ABCD + ABCD) quedar: AB
En el grupo 2 (ABCD + ABCD + ABCD + ABCD) quedar: AC
En el grupo 3 (ABCD + ABCD) quedar: BCD
En el grupo 4 (ABCD + ABCD) quedar: BCD
Por ultimo, se unen las reducciones mediante un operador OR (+) quedando:
F = AB + AC + BCD + BCD
Condicin no importa
En algunos casos se va a dar que, ciertas entradas nunca van a ocurrir, por lo que
no estarn definidos los correspondientes valores para la funcin de salida. Esto se
conoce como condicin NO IMPORTA, es decir, que no importa si la funcin de
salida toma el valor de 0 o 1, por lo que se puede establecer un valor arbitrario
para la funcin de salida de tal manera que permita simplificar an ms la
expresin.
Ejemplo: Disear un detector de dgitos BCD primos.
Como sabemos, los dgitos BCD son del 0 al 9 (0000 a 1001) y estn
conformados por 4 bits. Por consiguiente, los dgitos BCD primos son: 1, 2,
3, 5 y 7.
La tabla de verdad para esta funcin ser:
0
1
2
3
4
5
6
7
A
0
0
0
0
0
0
0
0
B
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
F
0
1
1
1
0
1
0
1
8
9
10
11
12
13
14
15
A
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
F
0
0
?
?
?
?
?
?
En la tabla, ABCD representan los 4 dgitos del cdigo BCD. Ntese que
desde la lnea 10 hasta la 15, la funcin de salida tiene el valor ? debido a
que esos valores no estn definidos para el cdigo BCD, en otras palabras, si
las entradas es un cdigo BCD, estas entradas (10-15) nunca ocurrirn.
22
CD
01
1
4
0
12
5
13
7
15
?
9
CD
10
CD
11
11
0
14
?
10
A
B
Circuito
Combinacional
F1
F2
M variables
de salida
FM
2.6.1. Semisumador.
Es el circuito combinacional ms simple y realiza la suma aritmtica de
dos dgitos binarios. Se denomina semisumador porque las entradas estn
conformadas por slo los dos dgitos binarios a sumar y como salidas,
tiene el resultado de la suma y el acarreo generado.
A
0
0
1
1
B
0
1
0
1
S
0
1
1
0
C
0
0
0
1
B
0
0
1
1
0
0
1
1
K
0
1
0
1
0
1
0
1
S
0
1
1
0
1
0
0
1
C
0
0
0
1
0
1
1
1
24
25
Bi
0
1
0
1
B
0
1
1
0
Por lo tanto, mediante una operacin XOR podemos, si fuera una resta,
complementar los 0s y los 1s del segundo operando; pero al hacer esto slo
estamos hallando el complemento a 1, falta sumarle 1 para que se convierta
en el complemento a 2. Esto se logra conectando la entrada M al acarreo de
entrada (sumar 1), tal como se aprecia en la figura 2.23.
26
2.7. Flip-flops
Es una celda binaria capaz de almacenar un bit de informacin. Tiene 2 salidas,
una para el valor normal y una para el valor complementado del bit almacenado en
l. La diferencia entre los diversos tipos de flip-flops est en el nmero de entradas
que posean y la manera en la cual las entradas afectan el estado binario.
Comnmente los flip-flops reciben el nombre de registros.
2.7.1. Flip Flop Bsico con compuertas NAND y NOR
El circuito Flip-Flop ms elemental que se puede construir es con 2
compuertas NAND como muestra la figura 2.24
R
0
0
1
1
S
0
1
0
1
Q
Q=Q=1
1
0
Sin Cambio
10
0
11
00
01
00
01
11
27
S
0
1
0
1
Q
Sin cambio
1
0
Q=Q=0
00
10
11
10
01
00
01
11
28
R
0
1
0
1
CLK
Q
Q anterior
0
1
1
Q0
0
0
1
1
Q1
0
1
0
1
S
0
1
0
0
1
0
Ecuacin caracterstica: Q = S + RQ
CLK
Q
0
1
Q0
0
0
1
1
Q1
0
1
0
1
D
0
1
0
1
Ecuacin caracterstica: Q = D
K
0
1
0
1
CLK
Q
Q anterior
0
1
Q
Q0
0
0
1
1
Q1
0
1
0
1
J
0
1
1
0
Ecuacin caracterstica: Q = JQ + KQ
T
0
1
CLK
Q
Q anterior
Q
Q0
0
0
1
1
Q1
0
1
0
1
T
0
1
1
0
Ecuacin caracterstica: Q = Q T
29
Estado actual
A
B
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
Entrada
x
0
1
0
1
0
1
0
1
Estado nuevo
A
B
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
Salida
y
0
0
1
0
1
0
1
0
30
1/0
0/1
00
0/1
10
0/1
1/0
01
1/0
11
1/0
Los nmeros que aparecen en el numerador son las entradas, mientras los
denominadores son las salidas.
Ahora analicemos un circuito secuencial con flip-flops tipo JK.
Estado actual
A
0
0
0
0
1
1
1
1
Entrada
=x
=x
x
0
1
0
1
0
1
0
1
JA
0
1
0
1
0
1
0
1
KA
0
1
0
1
0
1
0
1
B
0
0
1
1
0
0
1
1
Salida
(x+A)B
z
0
1
0
0
1
1
0
0
=z
=z
JB
0
1
0
0
1
1
0
0
KB
0
1
0
0
1
1
0
0
Estado nuevo
= JQ+KQ
A
B
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0/0
00
01
1/0
1/1
1/1
1/0
11
10
0/0
0/1
0/1
1/0
00
11
1/1
1/1
01
10
0/1
0/0
1/0
32
Entrada
x
0
1
0
1
0
1
0
1
Estado nuevo
Q1
A
B
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
FF-A
JA
0
0
0
1
FF-B
KA
0
0
0
1
JB
0
1
0
1
KB
0
1
0
1
Salida
z
0
1
1
0
0
1
1
0
JA
AB
AB
AB
AB
2
6
4
0
3
1
7
KA
AB
AB
AB
AB
2
6
4
1
5
JB
AB
AB
AB
AB
2
6
4
1
3
KB
X
0
AB
AB
AB
AB
2
6
4
X
1
1
7
1
5
33
34
35
36
estado final los cuales quedarn unidos mediante una flecha. Esta
operacin deber repetirse tantas veces como transiciones tenga el
autmata.
38
39
Activar
simulacin
La figura 2.50 muestra la ventana principal del WorkBench v5.12, junto con
algunas cajas de herramientas que se van a emplear en el diseo y simulacin de
circuitos digitales.
Para iniciar el diseo de un circuito, se hace clic en el botn respectivo de la barra
de herramientas, para que aparezca la caja de herramientas con la que deseamos
trabajar (Logic Gates - Compuertas Lgicas, por ejemplo). A continuacin
seleccionamos el elemento de la caja de herramientas que queremos agregar y lo
arrastramos hacia el rea de trabajo (ventana de fondo blanco), esta operacin la
repetimos tantas veces como elementos deseemos.
Todos los elementos tienen una o ms salidas, las cuales al sealarlas con el
puntero del mouse aparece un crculo negro sobre ellas, lo cual indica que
podemos iniciar la operacin de conexin con otros componentes. Al arrastrar y
llegar a la salida (entrada) de otro componente, tambin aparecer un crculo
negro, con lo cual podemos finalizar la conexin.
Al finalizar este proceso veremos una lnea que conecta ambos componentes y as
sucesivamente se puede repetir esta operacin con el resto de elementos.
La figura 2.51 muestra un circuito terminado. Como se aprecia es el diagrama de
un sumador completo de un bit (figura 2.18) al cual se le han agregado una batera
40
de 5v, 3 switch (A, B y C), 2 probadores (rojo y azul) para poder hacer la
simulacin.
La batera se usa para simular los 0s y 1s digitales (0V. y 5V.) y los switch para
conmutar las entradas a 0V. o 5V. (0 o 1). Para establecer las propiedades de los
componentes basta con hacer doble clic sobre ellos y elegir la ficha respectiva
donde se establecern los valores deseados. Por ejemplo, hacer doble clic sobre
batera, elegir la ficha Value y establecemos el valor de 5V, para los switch,
tambin, elegimos la ficha Value y establecemos la tecla (A, B y C
respectivamente) con la cual conmutar el switch.
Para iniciar la simulacin hacer clic en el botn 0/1 que se encuentra en la esquina
superior derecha de la ventana. Bastar con presionar A, B o C para conmutar las
entradas para las compuertas. Cada vez que la salida sea 1, los probadores se
encendern con el color respectivo.
El ejemplo anterior es slo para iniciarnos en el proceso de simulacin pero lo mas
apropiado es utilizar el Generador de Palabras (Word Generador) tal como se
muestra en la figura siguiente:
41
En la parte izquierda hay una lista donde se puede ingresar las palabras en
hexadecimal (4 dgitos) que deseamos generar. Esto tambin lo podemos hacer
ubicndonos primero en la posicin dentro de la lista donde deseamos insertar la
palabra y luego en la parte inferior derecha (Binary) escribir el valor en binario
(16 dgitos).
En el rea Address se puede ver:
Edit.- Muestra el valor de la palabra a generar, ingresada o editada.
Current.- Cuando se esta simulando, muestra el valor actual que se est
generando o que esta presente en las salidas del generador.
Initial.- Muestra o establece la direccin de la primera palabra a generar.
Final.- Muestra o establece la direccin de la ltima palabra a generar.
En Frecuency se establece la frecuencia con la que se generaran las palabras. Para
la simulacin es recomendable 1 Hz, pero se puede cambiar a kHz o MHz
Finalmente en la parte superior derecha se encuentran 4 botones que permiten
establecer el ciclo de generacin de las palabras
Cycle.- Permite generar las palabras en forma cclica, es decir que una vez
que se genero la ltima, contina con la primera y as sucesivamente.
Burst.- Una vez generada la ltima palabra se detiene.
Step.- En esta modalidad, cada vez que se desee generar una palabra se tiene
que hacer clic en este botn.
Breakpoint.- Sirve para crear puntos de parada, es decir que, cuando se vaya
a generar cierta palabra establecida como Breakpoint el simulador se detiene.
Para ello slo basta seleccionar la palabra y hacer clic en este botn
Pattern.- Muestra una ventana que permite establecer la forma como se
llenar la lista de palabras:
v Clear buffer: Limpia la lista de palabras (la llena de ceros).
v Open: Carga la lista de palabras desde un archivo texto.
v Save: Graba en un archivo texto la lista de palabras.
v Up counter: Carga la lista de palabras desde el 0000 hasta el 03FF.
v Down counter: Carga la lista de palabras desde el 03FF hasta el 0000.
v Shift right: Carga la lista de palabras con potencias de 2 (decrecientes).
v Shift left: Carga la lista de palabras con potencias de 2 (crecientes).
42
Igual que el caso anterior, hacer doble clic sobre el Convertidor Lgico para que
aparezca la ventana de la figura 2.55 que es donde se visualizan los resultados
Con el primer botn, se generar la tabla de verdad con los respectivos valores
de la funcin de salida
Con el segundo botn se obtiene la expresin booleana tomada directamente
de la tabla, sin simplificar (maxtrminos).
Con el tercer botn se obtiene la expresin booleana simplificada
Tambin se puede trabajar sin tener un circuito, generando una tabla de verdad o
ingresando una expresin booleana.
En el primer caso, se hace clic sobre las variables que se van a usar (A, B, C,H)
y en forma automtica se va generando la tabla de verdad. Luego hay que ubicarse
sobre los valores que aparecen a la derecha (funcin de salida) y establecer los
nuevos. Ahora ya podemos hacer uso del segundo, tercero, quinto y sexto botn.
43
44
Y
0
0
1
1
0
0
1
1
Z
0
1
0
1
0
1
0
1
F
0
1
0
0
0
1
0
1
ii.
iii.
45
Z
Z
XY
0
0
1
1
XY
2
1
3
1
XY
6
1
7
1
XY
4
0
5
0
Z
0
XY
0
2
XY
1
6
XY
F=Z+XY
0
4
XY
A
0
0
0
0
0
0
0
0
B
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
F
0
0
0
0
0
0
0
1
8
9
10
11
12
13
14
15
A
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
F
0
1
1
1
1
1
1
1
Entradas
x
y
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
Estado nuevo
A
B
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
Salida
z
0
0
0
0
1
1
0
0
47
Estado actual
A
B
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
Entradas
x
y
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
Estado nuevo
A
B
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
Salida
z
0
0
1
1
1
1
1
1
01
11/0
01/0
00/0
01/1
10
01/0
00/1
11
(10|11)/1
01/1
10/1
11/1
01
1
1
1
1
11
10
Entrada
X
0
1
0
1
0
1
0
1
Estado nuevo
Q1
A
B
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
FF-A
JA
0
1
1
0
?
?
?
?
FF-B
KA
?
?
?
?
0
1
1
0
JB
1
1
?
?
1
1
?
?
KB
?
?
1
1
?
?
1
1
AB
AB
AB
AB
2
6
4
1
3
0
7
?
5
JA=BX+BX
KA
AB
AB
AB
AB
2
6
4
?
3
?
7
0
5
KA=BX+BX
JB
AB
AB
AB
AB
2
6
4
JB=1
1
3
?
7
?
5
KB
AB
AB
AB
AB
KB=1
49
2.11.2. Propuestos
a) Simplificar XZ + YZ + YZ + XY
b) Simplificar (A+B)(A+C)(B+C)
c) Dada la funcin boaleana: AC + BD + ACD + ABCD
i.
Listar la tabla de verdad
ii.
Simplificar la expresin booleana
iii.
Dibujar el diagrama lgico original y simplificado
d) Indicar, explicando su respuesta, cual de las siguientes igualdades es
correcta.
i.
a b + a c + c b = (a + b) ( a + c ) ( c + b )
ii.
(a + b + c )( a + b + c ) + a b = ( a b c + a b c) ( a + b )
iii.
a (a c) = a b a c
e) Simplificar la siguiente funcin usando mapas de Karnaugh
F=ABC+ABC+ABC+ABC+ABC
f) Se desea controlar dos motores M1 y M2 por medio de los contactos de
tres interruptores A, B y C, de forma que se cumplan las siguientes
condiciones:
i.
Si A est cerrado y los otros dos no, se activa M1.
ii.
Si C est cerrado y los otros dos no, se activa M2.
iii.
Si los tres interruptores estn cerrados se activan M1 y M2.
Para el resto de condiciones los motores estarn parados.
g) Disee un circuito lgico que tenga 4 entradas y una salida. Las 4
entradas son para ingresar un nmero de 4 bits y la salida debe ser 1
cuando el nmero sea mayor que 2 y menor que 8.
h) Disee un contador mdulo 8 (diagrama lgico y diagrama de estados)
con flip-flop tipo D.
i) Dado el siguiente diagrama de estados disee el diagrama lgico
usando flip-flops tipo JK
0
0
1
0
0
50
RESET
0
1
0
SALIDA
1 (No se utiliza)
1
0
Se sincroniza con
la entrada
51
E
0
0
1
1
0
0
1
1
Q
0
1
0
1
0
1
0
1
D
0
1
0
1
0
0
1
1
52
53
3.2. Contadores.
Es un circuito secuencial sincronizado cuyo diagrama de estados contiene un solo
ciclo, es decir que en cada pulso de entrada, el circuito pasa por una secuencia de
estados predeterminados. Estos circuitos se usan para contar el nmero de
ocurrencias de un evento y son tiles para generar seales de tiempo.
3.2.1. Contadores asncronos o de propagacin.
Es un contador que est conformado por slo flip-flops y ningn otro
componente. En este tipo de contador no todos los flip-flops cambian de
estado simultneamente debido a que la seal de reloj se aplica solamente
al primer flip-flop el cual al tener sus entradas J y K en 1 (al igual que el
resto de flip-flops) complementar su salida Q en cada pulso. Esta salida Q
a su vez ser la seal de reloj del siguiente flip-flop y as sucesivamente.
La salida Q del primer flip-flop es el bit menos significativo del contador,
ver figura 3.5.
Este tipo de contador es el ms lento de todos.
54
Estado inicial
Q3 Q2 Q1 Q0
Cualquier valor
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
Estado siguiente
Q3 Q2 Q1 Q0
Sin cambios
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
3
JK
00
0X
0X
0X
0X
0X
0X
0X
1X
X0
X0
X0
X0
X0
X0
X0
X1
2
JK
00
0X
0X
0X
1X
X0
X0
X0
X1
0X
0X
0X
1X
X0
X0
X0
X1
1
JK
00
0X
1X
X0
X1
0X
1X
X0
X1
0X
1X
X0
X1
0X
1X
X0
X1
0
JK
00
1X
X1
1X
X1
1X
X1
1X
X1
1X
X1
1X
X1
1X
X1
1X
X1
55
E
0
1
1
1
1
I1
x
0
0
1
1
I0
x
0
1
0
1
S3
0
0
0
0
1
S2
0
0
0
1
0
S1
0
0
1
0
0
S0
0
1
0
0
0
56
S0
S1
S2
S3
I0
I1
S4
S5
S6
S7
I2
S8
S9
S10
S11
I3
E
S12
S13
S14
S15
3.3.2. Codificadores
Este circuito hace la funcin inversa al Decodificador, es decir, que acepta
una sola entrada (de las M posibles) y activa 0 o varias salidas de las N
posibles codificando un nmero binario. Aqu tambin se cumple que
M2N.
Por ejemplo un codificador de 4 a 2 tiene 4 entradas I, de las cuales slo
una puede estar activa a la vez, y 2 salidas S que forman un nmero binario
de 2 bits, por lo tanto si se activara la entrada I2 en las salidas S1 y S0
debera formarse el nmero binario 10 y si se activara la entrada I0 la salida
binaria ser 00. Si seguimos con este anlisis se podr construir la tabla de
la figura 3.10
I3
0
0
0
1
I2 I1
0 0
0 1
1 0
0 0
Resto
I0
1
0
0
0
S1
0
0
1
1
x
S0
0
1
0
1
x
57
S0=I2I0
S0=I3+I1
(suma de productos)
(producto de sumas)
Con las que se puede disear dos diagramas lgicos. Ver figura 3.11
I2 I1
x x
x 1
1 0
0 0
Resto
I0
1
0
0
0
S1
0
0
1
1
x
S0
0
1
0
1
x
58
E
0
1
1
1
1
1
1
1
1
I1
x
0
0
0
0
1
1
1
1
I0
x
0
0
1
1
0
0
1
1
S
x
0
1
0
1
0
1
0
1
Z
0
0
0
1
0
0
1
1
1
E
0
1
1
S
X
0
1
Z
0
I0
I1
59
E
0
1
1
1
1
S1
x
0
0
1
1
S0
x
0
1
0
1
Z
0
I0
I1
I2
I3
60
3.4.2. Demultiplexores.
Es un circuito que hace la operacin inversa de un multiplexor, es decir,
toma una sola entrada de datos y la distribuye en una de 2N salidas,
utilizando para ello N entradas de seleccin.
El ejemplo que se va a estudiar es un demultiplexor de 1 a 4 con entrada E
de activacin. Este demultiplexor tiene una entrada I, dos entradas S de
seleccin una entrada E y cuatro salidas Q con lo que se puede disear la
siguiente tabla de verdad y su tabla resumen, figura 3.18.
E
0
1
1
1
1
1
1
1
1
I
x
0
0
0
0
1
1
1
1
S1
x
0
0
1
1
0
0
1
1
S0
x
0
1
0
1
0
1
0
1
Q3
0
0
0
0
0
0
0
0
1
Q2
0
0
0
0
0
0
0
1
0
Q1
0
0
0
0
0
0
1
0
0
Q0
0
0
0
0
0
1
0
0
0
E
0
1
1
1
1
S1
x
0
0
1
1
S0
x
0
1
0
1
Q3
0
0
0
0
I
Q2
0
0
0
I
0
Q1
0
0
I
0
0
Q0
0
I
0
0
0
Q1=E I S1 S0
Q3=E I S1 S0
61
Estado nuevo
Q1
A
B
C
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
x
x
x
x
x
x
FF-A
JA
0
0
0
1
x
x
x
x
KA
x
x
x
x
0
1
x
x
FF-B
JB
0
1
x
x
0
0
x
x
KB
x
x
0
1
x
x
x
x
FF-C
JC
1
x
1
x
1
x
x
x
KC
x
1
x
1
x
1
x
x
KA = C = QC
KB = C = QC
KC = 1
62
FF-A
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
JA
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
KA
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
FF-B
JB
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
KB
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
FF-C
JC
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
KC
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
FF-D
JD
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
KD
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Estado nuevo
Q1
A B C D
1
0 0 0
1
0 0 1
1
0 1 0
1
0 1 1
1
1 0 0
1
1 0 1
1
1 1 0
1
1 1 1
0
0 0 0
0
1 0 0
0
0 1 0
0
1 1 0
0
1 1 0
0
0 1 0
0
1 0 1
0
0 0 0
64
N1
0
0
1
1
0
0
1
1
N0
0
1
0
1
0
1
0
1
A
1
0
1
1
1
x
x
x
B
1
1
1
0
0
x
x
x
C
1
1
0
1
0
x
x
x
65
I0
0
1
0
1
S3
0
0
0
1
S2 S1
0 0
0 1
1 0
0 0
Resto
S0
1
0
0
0
D3
0
0
0
1
x
D2
0
0
1
0
x
D1
0
0
0
0
x
D0
0
1
0
1
x
D0 = S2S0 = (S2+S0)
D1 = 0
D2 = S2
D3 = S3
g) Construir un multiplexor de 16 a 1 lnea con dos multiplexores de 8 a 1
lneas y uno de 2 a 1 lnea.
I0
I1
.
.
.
I7
I8
I9
.
.
.
I15
S3 S2 S1 S0
66
Por lo tanto, cuando C=0=S la salida Z=I0 y cuando C=1 la salida Z=I1,
tal como se muestra en las siguientes tablas.
A
0
0
1
1
B
0
1
0
1
C=0
0
0
0
0
Z=I0
0
0
0
1 (6)
A
0
0
1
1
B
0
1
0
1
C=1
1
1
1
1
Z=I1
1 (1)
1 (3)
1 (5)
0
B
0
0
C
0
0
Z=I0
0
0
A
0
1
B
0
0
C
1
1
Z=I1
1 (1)
1 (5)
A
0
1
B
1
1
C
0
0
Z=I2
0
1 (6)
A
0
1
B
1
1
C
1
1
Z=I3
1 (3)
0
1,1,0,1
68
3.5.2. Propuestos
a) Disee un contador mdulo 5.
b) Analice el siguiente contador de 3 bits, el cual ha sido diseado para no
seguir la secuencia completa de los 8 estados. Determine su secuencia.
Se debe tener en cuenta que las entradas inferiores de los flip-flops son
para resetear (poner a 0) cuando a stas llegue un 0. Otro detalle a tener
en cuenta es que, la entrada de reloj de los flip-flops es de pendiente
negativa, es decir que la salida de flip-flops se actualizaran slo cuando
la seal de reloj pase de 1 a 0.
c) Construir un decodificador de 3 a 8 lneas con entrada de activacin,
con dos decodificadores de 2 a 4 lneas, con habilitacin y un
decodificador de 1 a 2 lneas.
d) Disee el diagrama lgico de un decodificador de 2 a 4 lneas con
entrada de activacin E, usando slo compuertas NAND.
e) Disee un codificador de 8 a 3 con prioridad de bit ms significativo.
f) Disee un circuito que sume 7 a un nmero de 3 bits usando un
multiplexor.
g) Resuelva el ejercicio anterior usando decodificadores
h) Realizar la funcin F(A, B, C) = (0,1,2,7) utilizando un MUX2x1 y
una cantidad mnima de compuertas.
i) Realizar el ejercicio anterior usando un multiplexor de 4x1.
j) Resuelva el ejercicio e) de los ejercicios resueltos pero para el sistema
base 7.
69
L
0
0
0
1
C
0
0
1
X
I
0
1
X
X
Operacin
Sin cambios
Incrementar contenido en 1
Cargar entrada de datos E
Establecer salidas S a 0
L
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
E
0
1
0
1
0
1
0
1
S=Q
Sin cambios
Sin cambios
0
1
0
0
0
0
J
0
0
0
1
0
0
0
0
K
0
0
1
0
1
1
1
1
La tabla muestra los valores que deben tomar J y K para obtener la salida S
(Q) correspondiente. Pero slo es para un registro de 1 bit, hay replicar
tantas veces como bits se desea que tenga el registro. De la tabla se
obtienen las siguientes expresiones lgicas:
J = LCE
K = CE + L
K = YW + ZW
Por consiguiente:
J = LCE(LCI) + ZW
J = LCE(L+C+I) + ZW
J = LCE + ZW
J = X + ZW
K = (CE+L)(LCI) + ZW
K = (CE+L)(L+C+I) + ZW
K = (CE+L) + ZW
K = Y + ZW
Estas expresiones lgicas son para cualquier bit del registro, pero
recordemos que Z vara segn sea el bit, entonces:
J0 = LCE0 + LCI
J1 = LCE1 + LCIQ0
J2 = LCE2 + LCIQ0Q1
J3 = LCE3 + LCIQ0Q1Q2
K0 = (CE0+L) + LCI
K1 = (CE1+L) + LCI Q0
K2 = (CE2+L) + LCI Q0Q1
K3 = (CE3+L) + LCI Q0Q1Q2
74
S1
S0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
Registro que
pasa al BUS
AR
PC
DR
AC
IR
TR
MEMORIA
4.3. La memoria
75
La barra inclinada en las lneas es para indicar que no se trata de una sola lnea
sino de ms. El valor que aparece al costado, indica la cantidad de lneas que
representa. En el diagrama se aprecia 16 lneas de entrada (izquierda) y 16 de
salida (derecha), las 12 lneas de abajo es por donde ingresa, en binario, la
direccin o nmero de palabra a acceder, mientras que W y R indica si se va a leer
o escribir.
76
Supongamos que las entradas S=3 (S2S1S0=011) esto significa que las 16 salidas
del registro DR pasaran al BUS. Este valor del registro DR, llegar a cada una de
las entradas de los registros, pero no pasar a ninguno de ellos mientras no llegue
la seal C y se genere la siguiente seal de reloj CLK.
En el caso de la memoria, antes de leer o escribir en ella, el registro AR debe
contener la direccin efectiva a la cual se desea acceder. Cuando llegue a la
memoria la seal W, lo que hay en el BUS pasar a escribirse en la direccin de
memoria indicada por el registro AR. Pero si la seal fuera R, de la memoria
pasar a los multiplexores del BUS el valor respectivo. Recin al hacerse las
entradas de seleccin S=7 (111) la palabra de memoria pasar al BUS.
Las entradas del acumulador AC provienen de las salidas de la ALU, la cual, a su
vez, tiene como entradas las salidas del mismo acumulador y del registro DR. La
ALU tiene tambin como entradas, seales de control que le indican la operacin
que debe realizar con las entradas de los registros AC y DR. Ntese el registro de
un bit E anexo a la ALU, como ya se menciono ste se puede considerar como el
bit nmero 17 del registro AC.
77
14 13 12
Cdigo de
operacin
11
Direccin de memoria
79
Ntese que no hay una instruccin con codop 111, esto significa que
ninguna instruccin que hace referencia a memoria su cdigo empezar
con 7 o F.
4.5.2. Instrucciones que hacen referencia a registro
Utilizan los 12 bits menos significativos (0-11) para especificar la
operacin o prueba que se va a ejecutar sobre un registro, en este caso,
nicamente sobre el registro de trabajo, o sea AC. En teora esto significa
que se puede codificar hasta 4096 operaciones sobre el registro AC pero,
una vez ms, para simplificar el diseo del decodificador slo se codificar
potencias de 2 (12 operaciones). Los 4 bits restantes se les asigna el valor
de 0111 (7) que es lo que identifica una instruccin de referencia a
registro.
15
14 13 12
11
Operacin de registro
80
14 13 12
11
Operacin de I/O
14
13
12
11 - 0
Bi
Decodificador 3x8
7 6 5 4 3 2 1 0
D0
I
Compuertas
Lgicas de
control
D7
Salidas de
control
T15
T0
15 14 13
2 1 0
Decodificador
4x16
Contador de
4 bits (SC)
Incrementar
Borrar
CLK
82
PCPC+1
2 (010) para que el registro PC pase al BUS (ver figura 4.7) y activar, a la
vez, la entrada C del registro AR para que ste se cargue con lo que hay en
el BUS en ese instante.
Al generarse la seal T1 (con el siguiente pulso de reloj) las entradas S del
BUS deben ser igual a 7 (111) y se debe activar la entrada R (leer) de la
memoria para transferir la palabra de la direccin de memoria AR al BUS.
Tambin se debe activar, a la vez, la entrada C del registro IR para que se
cargue con lo hay en ese instante en el BUS y, por ultimo, activar la
entrada A (aumentar en 1) del registro PC.
4.7.2. Decodificacin
Una vez puesto el cdigo de la instruccin en IR, con el siguiente pulso de
reloj (el cual generar la seal de temporizacin T2) se proceder a
decodificar la instruccin y a transferir los 12 bits menos significativos de
IR al registro de direccin AR como se indica a continuacin:
T2: D0,,D7Decodificar IR[14-12], ARIR, IIR[15]
La decodificacin la hace automticamente el decodificador de 3x8,
generando una de las 8 salidas Di. Para transferir IR a AR, se debe hacer
igual a 5 (101) las entradas S del BUS y activar la entrada C del registro
AR. La seal I no es otra cosa que el bit ms significativo del registro IR.
La figura 4.11 muestra las compuertas necesarias para que, en funcin de
las seales Ti, se realicen las transferencias entre los registros y la memoria
en la fase de bsqueda y decodificacin.
84
La seal T5D0 es una de las tantas seales que llegarn a las entradas de
control que tiene la ALU para indicarle la operacin que debe realizar, en
este caso hacer un AND entre los bits de los registros AC y DR.
El contador de secuencia SC tiene 3 entradas de control y una de ellas es
Borrar. Cuando esta entrada es puesta en 1, reinicia el contador lo que
significa que vuelve a generar seales de temporizacin a partir de T0 y se
inicia la fase de bsqueda y decodificacin. Esto se representa mediante la
microinstruccin SC0
ADD.- Esta instruccin realiza una suma entre el registro AC y la palabra
de la direccin de memoria AR. Igual que en el caso anterior, esta
operacin la realiza la ALU y se requiere 2 seales de temporizacin.
T4D1 : DRM[AR]
T5D1 : ACAC+DR;
SC0
LDA.- Esta instruccin realiza una transferencia de la direccin de
memoria AR al registro AC. Pero si se mira la figura 4.9 se observar que
las entradas de AC no estn conectadas al BUS, por consiguiente para
ejecutar esta instruccin primero hay que transferir la palabra de memoria
al registro DR y luego, mediante una operacin de transferencia de la
ALU, al registro AC.
T4D2 : DRM[AR]
T5D2 : ACDR;
SC0
STA.- Esta instruccin realiza la operacin inversa a la anterior. Transfiere
el registro AC a la direccin de memoria AR, pero en una sola seal de
temporizacin.
T4D3 : M[AR]AC; SC0
BUN.- Esta instruccin transfiere el control del programa a la direccin
especificada por AR (AR contiene la direccin efectiva). Por ello slo
bastar con hacer una transferencia de AR a PC.
T4D4 : PCAR;
SC0
BSA.- Esta instruccin se usa para ejecutar una subrutina o procedimiento.
Un procedimiento no es otra cosa que un conjunto de instrucciones
ubicadas en alguna parte de la memoria. Se debe tener en cuenta que
cuando se termine de ejecutar la subrutina la computadora debe de saber
cul es la siguiente instruccin a ejecutar. Por ello una de las primeras
cosas a hacer es guardar la direccin de memoria de la instruccin que est
a continuacin de la instruccin BSA. Ahora la pregunta es en dnde se
guarda?. En las computadoras comerciales hay un rea de memoria
llamada pila en donde se guarda estas direcciones, en el caso de la
computadora bsica se har en la primera palabra del rea de memoria
donde se encuentra la subrutina, por lo tanto es en la siguiente o segunda
palabra donde se encuentra la primera instruccin de la subrutina.
Una instruccin BUN con direccionamiento indirecto ser la ltima
instruccin de la subrutina que le indique a la computadora que debe
retornar a la siguiente instruccin desde donde fue invocada la subrutina.
86
Direccin
de memoria
7B3
7B4
7B5
7B6
7C4
7C5
Cdigo
Instruccin
6A00
47B6
47BA
47B3
0 ISZ A00
0 BUN 7B6
0 BUN 7C5
0 BUN 7B3
CIL.- Esta instruccin la ejecuta la ALU para ello se debe activar las
seales de control que realizan el desplazamiento hacia la izquierda del
registro AC.
T3D7IB6 :
ACDesIzq(AC); AC[0]E;
EAC[15];
SC0
INC.- Para ejecutar esta instruccin se debe activar la entrada A (aumentar
en 1) del registro AC.
T3D7IB5 :
ACAC+1;
SC0
SPA.- Como AC contiene nmeros de 16 bits pueden representarse 65536
valores diferentes. Si slo se trabaja con nmeros positivos estos valores
pueden variar desde 0 (0000) hasta 65535 (FFFF). Pero, si tambin se van
a representar nmeros negativos con complemento a 2, el rango de valores
ser desde 0 (0000) a 32767 (7FFF) para los positivos y desde -32768
(8000) a -1 (FFFF) para los negativos. Como se puede observar todas las
representaciones binarias para los nmeros negativos con complemento a 2
tiene el bit ms significativo igual a 1.
Entonces, para comprobar si AC contiene un valor negativo o positivo slo
bastara evaluar el bit 15 del registro AC.
T3D7IB4 :
si AC[15]=0 entonces PCPC+1; SC0
SNA.- Igual que el caso anterior con la diferencia que AC debe ser
negativo.
T3D7IB3 :
si AC[15]=1 entonces PCPC+1; SC0
SZA.- Para ejecutar esta instruccin se debe evaluar el valor de AC y
determinar si es cero. Igual que para la instruccin ISZ, que comprueba el
valor de DR, se hace para el registro AC.
T3D7IB2 :
si AC=0;
PCPC+1; SC0
SZE.- En este caso se evala el valor del flip-flop E.
T3D7IB1 :
si E=0 entonces PCPC+1; SC0
HLT.- Si observamos la figura 4.10, el contador SC tiene una entrada
Incrementar. Mientras esta entrada est activa el contador incrementar
en 1 en cada pulso del reloj pero si se desactiva el contador se detendr.
Esta entrada est conectada a un flip-flop H que proporcionar a SC la
seal respectiva. Una vez desactivado SC, solo se podr activar de manera
manual a travs del flip-flop H.
T3D7IB0 :
H0;
SC0
Instrucciones de entrada-salida
La computadora bsica ha sido diseada para poderse comunicar con el
mundo exterior a travs de un teclado (entrada) y una impresora (salida).
Utiliza un flip-flop FGI para indicar el estado del registro de entrada INPR
y un flip-flop FGO para el registro de salida OUTR.
Inicialmente el flip-flop FGI es puesto a 0. Cuando se presiona una tecla se
transfiere un cdigo de 8 bits al registro INPR e inmediatamente el flip89
90
7C4
7C5
Cdigo
Instruccin
6A00
47B3
F400
47B3
SKO
0 BUN 7B3
OUT
0 BUN 7B3
Direccin
de memoria
000
001
7B3
7B4
7B5
F49
F4A
F57
F58
Cdigo
Instruccin
Programa en ejecucin
Instruccin en ejecucin
Rutina de la interrupcin
de entrada-salida
..
92
4.8. La ALU
En el item 4.7.4 se listan las secuencias de microinstrucciones requeridas para
ejecutar una instruccin. Se observar que varias de ellas mencionan que la
operacin en s, la realiza la ALU. Adems se podr apreciar las seales necesarias
para su ejecucin. Estas instrucciones son:
Instruccin
AND
ADD
LDA
CMA
Seales
T5D0
T5D1
T5D2
T3D7IB9
CIR
T3D7IB7
CIL
T3D7IB5
INP
T3D7IB11
Microinstruccin
ACACDR
ACAC+DR
ACDR
ACAC
ACDesDer(AC)
AC[15]E
ACDesIzq(AC)
AC[0]E
AC[7-0]INPR
Esto significa que el diseo de la ALU debe ser de tal manera que sta realice las
operaciones cuando se activen las seales de control respectivas. El diagrama de
bloque de la ALU es el siguiente:
Si llegara la seal T5D1 a la ALU (T5D1=1, sumar) slo la compuerta ADD dejar
pasar hacia la compuerta OR el valor de su otra entrada que, en este caso, es la
suma de los bits AC[5] y DR[5]. El resto de compuertas AND estn prcticamente
desactivadas porque las seales de control que llegan a la ALU son 0.
94
SC0; IEN0; R0
0 = Ciclo de instruccin
1 = Ciclo de interrupcin
R
RT0
RT0
ARPC
AR0; TRPC
RT1
RT1
M[AR] TR; PC0
IRM[AR]; PCPC+1
RT2
RT2
ARIR[11-0]; IIR[15]
D7D0Decodificar IR[14-12]
PCPC+1; IEN0
R0; SC0
0 = Referencia a memoria
1 = Registro oE/S
D7
0 = Directo
1 = Indirecto
0 = Registro
1 = E/S
I
D7IT3
D7IT3
ARM[AR]
D7IT4
D7IT3
Ejecutar
instruccin de
referencia a
registro
D7IT3
Ejecutar
instruccin de
entrada-salida
Ejecutar
instruccin de
referencia a
memoria
95
T0
T3
AND
T4D0
ADD
T4D1
DRM[AR]
T5D0
T4D4
M[AR] AC
SC0
ACDR
SC0
BSA
T4D5
PCAR
SC0
T4D3
DRM[AR]
T5D2
ACAC+AC
EC15
SC0
BUN
STA
T4D2
DRM[AR]
T5D1
ACACAC
SC0
LDA
M[AR] PC
ARAR+1
ISZ
T4D6
DRM[AR]
T5D6
T5D5
PC AR
SC0
DRDR+1
T6D6
M[AR] DR
Si DR=0 PC PC+1
SC0
96
T2
CLA
CLE
T3D7IB11
AC0
SC0
CMA
T3D7IB10
E0
SC0
INC
CME
T3D7IB9
SPA
T3D7IB5
ACAC+1
SC0
T3D7IB8
E E
SC0
ACAC
SC0
CIR
Si AC[15]=0
PCPC+1
SC0
T3D7IB7
ACDesDer AC
AC[15]E
E AC[0]
SC0
SNA
T3D7IB4
CIL
T3D7IB6
ACDesIzq AC
AC[0]E
E AC[15]
SC0
SZA
T3D7IB3
Si AC[15]=1
PCPC+1
SC0
SZE
T3D7IB2
Si AC=0
PCPC+1
SC0
HLT
T3D7IB1
H0
Si E=0
PCPC+1
SC0
T0
T2
INP
T3D7IB11
AC[7-0]INPR
FGI0
SC0
OUT
T3D7IB10
OUTRAC[7-0]
FGO0
SC0
SKI
T3D7IB9
Si FGI=1
PCPC+1
SC0
SKO
T3D7IB8
Si FGO=1
PCPC+1
SC0
ION
T3D7IB7
IEN1
SC0
IOF
T3D7IB6
IEN0
SC0
Todas las instrucciones contienen como microinstruccin final SC0 que resetea
el contador SC haciendo que la computadora bsica pase a un nuevo ciclo de
instruccin si R=0 o interrupcin en el caso de que R=1.
97
Seales
Microinstruccin
T0T1T2(IEN)(FGI+FGO)
R1
RT0
RT1
RT2
RT0
RT1
AR0; TRPC
M[AR] TR; PC0
PCPC+1; IEN0; R0; SC0
ARPC
IRM[AR]; PCPC+1
D7D0Decodificar IR[14-12]
ARIR[11-0]; IIR[15]
DRM[AR]
ACACDR; SC0
DRM[AR]
ACAC+DR; SC0
DRM[AR]
ACDR; SC0
M[AR]AC; SC0
PCAR; SC0
M[AR]PC; ARAR+1
PCAR; SC0
DRM[AR]
DRDR+1
M[AR]DR
Si DR=0 PCPC+1; SC0
AC0; SC0
E0; SC0
ACAC; SC0
EE; SC0
ACDesDer(AC); AC[15]E
EAC[0]; SC0
ACDesIzq(AC); AC[0]E
EAC[15]; SC0
ACAC+1; SC0
Si AC[15]=0 PCPC+1; SC0
Si AC[15]=1 PCPC+1; SC0
Si AC=0 PCPC+1; SC0
Si E=1 PCPC+1; SC0
H0; SC0
AC[7-0]INPR; FGI0; SC0
OUTRAC[7-0]; FGO0; SC0
Si FGI=1 PCPC+1; SC0
Si FGO=1 PCPC+1; SC0
IEN1; SC0
IEN0; SC0
RT2
T4D0
T5D0
T4D1
T5D1
T4D2
T5D2
T4D3
T4D4
T4D5
T5D5
ISZ
T4D6
T5D6
T5D6
CLA
CLE
CMA
CME
D7IT3B11
D7IT3B10
D7IT3B9
D7IT3B8
CIR
D7IT3B7
CIL
D7IT3B6
INC
SPA
SNA
SZA
SZE
HLT
INP
OUT
SKI
SKO
ION
IOF
D7IT3B5
D7IT3B4
D7IT3B3
D7IT3B2
D7IT3B1
D7IT3B0
D7IT3B11
D7IT3B10
D7IT3B9
D7IT3B8
D7IT3B7
D7IT3B6
Entrada L
T0R: AR0
Entrada C
T0R: ARPC
T2R: ARIR[11-0]
T3ID7 : ARM[AR]
x7
0
0
0
0
0
0
0
1
x6
0
0
0
0
0
0
1
0
Entradas
x5 x4 x3
0 0 0
0 0 0
0 0 0
0 0 1
0 1 0
1 0 0
0 0 0
0 0 0
x2
0
0
1
0
0
0
0
0
x1
0
1
0
0
0
0
0
0
S2
0
0
0
0
1
1
1
1
Salidas
S1 S0
0 0
0 1
1 0
1 1
0 0
0 1
1 0
1 1
Registro que
pasar al BUS
Ninguno
AR
PC
DR
AC
IR
TR
M
B
0
0
1
0
Resto
C
0
1
0
0
Q
Sin cambio
1
0
0
X
J
0
1
0
0
X
K
0
0
1
1
X
En el caso que A=B=C=0 (las tres seales desactivadas) el estado del flipflop debe permanecer sin cambios. El resto de casos nunca se van a dar
debido a que las seales son mutuamente excluyentes.
Simplificando las funciones lgicas J y K se tiene:
J = C = T3D7IB7
K = A + B = T3D7IB6 + T2R
Con las funciones lgicas J y K se procede a disear el diagrama siguiente:
101
B
0
0
0
0
0
0
0
1
0
C
0
0
0
0
0
1
1
0
0
D E
0 0
0 1
0 1
1 0
1 0
0 0
0 0
0 0
0 0
RESTO
F
X
X
X
X
X
0
1
X
X
G
X
X
X
0
1
X
X
X
X
H
X
0
1
X
X
X
X
X
X
Q
S-C
0
1
0
1
0
1
Q
0
X
J
0
0
1
0
1
0
1
1
0
X
K
0
1
0
1
0
1
0
1
1
X
102
4.10.2. El Acumulador.
Igual como se hizo con el registro AR se hace con el registro AC. Se
recopila todas las microinstrucciones de la tabla de la figura 4.22 donde
AC aparezca a la izquierda de la microinstruccin para luego formar 3
grupos:
Entrada A
T3D7IB5:
ACAC+1
Entrada L
T3D7IB11:
AC0
Entrada C
T5D0:
T5D1:
T5D2:
T3D7IB11 :
T3D7IB9:
T3D7IB7:
T3D7IB6:
ACACDR
AC AC+DR
ACDR
AC[7-0]INPR
ACAC
ACDesDer AC,
ACDesIzq AC,
AC[15]E
AC[0]E
103
104
30
24
CodOp
23
18
CodReg
17
Direccin
S2
1
1
1
0
S1
1
1
0
0
S0
1
0
0
0
C de registro
IR
PC
DR
AC
Memoria
Leer
-Escribir
--
ALU
---Sumar
105
S2
0
1
1
1
S1
1
1
1
0
S0
0
1
0
0
C de registro
AR
IR
DR-AC
Memoria
-Leer
Escribir
--
ALU
---Transf DR
ii.
iii.
ii.
iii.
AC
A937
A937
A937
A937
0000
PC
021
021
022
022
022
AR
?
021
021
800
800
IR
?
?
7800
7800
7800
COD
ASM
SEUDOCODIGO
100
2200
LDA 200
ACM[200]
101
102
103
104
105
7200
7020
3203
7800
1201
CMA
INC
STA 203
CLA
ADD 201
ACAC
ACAC+1
M[203] AC
AC0
ACAC+M[201]
106
6203
ISZ
M[203]M[203]+1
107
4105
BUN 105
IR a 105
108
3202
STA 202
M[202]AC
109
7001
HTL
203
DESCRIPCION
Carga el acumulador con el
primer factor
Complementa e incrementa en
1 (complemento a 2)
Salva AC en la direccin 203
Inicializa AC con 0
Suma a AC el segundo factor
Incrementa en 1 la palabra de
la direccin 203. Si esta
palabra es 0 salta a la
direccin 108 en caso
contrario continua con la
instruccin 107
Salta a la direccin 105
Salva en la direccin 202 el
resultado
Detiene la computadora
F1
F0
FF
FG
Activar F a 1
Borrar F a 0
Complementar F
Transferir el valor de G a F
107
B
0
0
0
0
1
0
C D
0 0
0 1
0 1
1 0
0 0
0 0
Resto
G
X
0
1
X
X
X
J
0
0
1
1
0
1
X
K
0
1
0
1
1
0
X
CDG
0
0
X
1
CDG
0
0
X
1
CDG
1
X
X
X
CDG
0
X
X
X
CDG
X
X
X
X
CDG
X
X
X
X
CDG
1
X
X
X
CDG
1
X
X
X
CDG
0
1
X
0
CDG
0
1
X
0
CDG
0
X
X
X
CDG
1
X
X
X
CDG
X
X
X
X
CDG
X
X
X
X
CDG
1
X
X
X
CDG
1
X
X
X
108
Lectura
T1R:
T3D7I:
T4D0:
T4D1:
T4D2:
T4D6:
IRM[AR]
ARM[AR]
DRM[AR]
DRM[AR]
DRM[AR]
DRM[AR]
109
4.11.2. Propuestos
a) Cuntos bits debe tener el registro AR si la memoria de la
computadora bsica fuera de 65536 palabras de 16 bits?
b) Especifique la transferencia de registro que se ejecutarn si las
siguientes entradas de control estn activas.
i)
ii)
iii)
S2
1
1
0
S1
1
1
1
S0
1
1
1
C de registro
AC
AC
TR
Memoria
Leer
Escribir
--
ALU
----
BIBLIOGRAFIA
MORRIS MANO M.
Mc CALLA, T.R
STALLING, William
TANENBAUM, A.
TOCCI, Ronald
WAKERLY, John F.
INTERNET
http://pdf.rincondelvago.com/arquitectura-de-computadoras_2.html
http://akimpech.izt.uam.mx/Web_jr/ami1.htm
http://medusa.unimet.edu.ve/sistemas/bpis03/lab0.htm
http://iteso.mx/~miguelbaz/cursos/arqcomp-2005-01/index.html
111