You are on page 1of 52

PRCTICAS

DE
ARQUITECTURA
DE
COMPUTADORES
Ignacio Monferrer Altava
2 I.T.I. Gestin
ARQUITECTURA DE COMPUTADORES
2 I. T. Informtica de Gestin
Pgina 1 de 6
Prctica 1
Control basado en regist ros de desplazamiento


Obj etivo:
Disear una unidad de control mediante registros de desplazamiento para la
Calculadora Sencilla que se pone a disposicin de los alumnos en Moodle.
Ej ercicio:
Disear el controlador que realice la operacin 2 con la estructura de
calculadora sencilla que se pasar a describir a continuacin. El controlador se disear
mediante la tecnica de 'trenes de biestables.

Estructura de la Calculadora Sencilla:

La Calculadora Sencilla opera con valores de 4 bits en formato complemento a 2. Esta
Calculadora Sencilla, que se propone como base para que se construya el controlador,
tiene 5 mdulos en el esquemtico principal:

REG_ALPHA: es el registro .
REG_BETA: es el registro .
CI: Registro de trabajo sensible a mltiples rdenes (Registro de
Complemento/Incremento).
ACC: Registro de trabajo acumulador.
CONTROL: Unidad controladora. Esta unidad es la que tenis que
implementar.

La Calculadora Sencilla presenta las siguientes entradas y salidas:

(Entrada) CL K: Seal de reloj.
(Entrada) Inicializacin asncrona del registro. Activa a nivel bajo.
(Entradas) ALI M/ TI ERRA: Seales de alimentacin y tierra, que se han de
estimular a 1 y 0, respectivamente.
(Entrada) I NI CI O: Seal que indica que se debe comenzar el cmputo de la
operacin aritmtica. La carga de los registros se debe realizar de manera
previa a la activacin de esta seal. Esta seal se debe activar slo durante un
flanco de subida de la seal de reloj CLK.
(Entrada) L OAD_ALPHA: Seal de precarga del registro REG_ALPHA. Se
ha de activar durante un flanco de subida de CLK. La activacin de esta seal
cargar el valor puesto en el bus bidireccional DATOS en el REG_ALPHA.
(Entrada) L OAD_BE T A: Seal de precarga del registro REG_BETA. Se ha
de activar durante un flanco de subida de CLK. La activacin de esta seal
cargar el valor puesto en el bus bidireccional DATOS en el REG_BETA.
(Entrada/Salida) DAT OS[3:0]: Bus bidireccional de datos.
(Salida) OVF: Seal de desbordamiento del registro ACC.


ARQUITECTURA DE COMPUTADORES
2 I. T. Informtica de Gestin
Pgina 2 de 6
Prctica 1
Control basado en regist ros de desplazamiento




Funcionamiento de los registros RE G_ALPHA/RE G_BE T A
Los registros REG_ALPHA y REG_BETA son dos registros idnticos que
permiten almacenar un valor de 4 bits. No se deben activar ms de 1 seal de este
registro a la vez. A continuacin se muestran las seales de entrada/salida:

Entradas:
! CL K: Seal de reloj.
! L OAD: Seal sncrona de precarga del valor presente en el bus
DATA en el registro. La seal es activa en flanco de subida.
Mediante esta seal cargamos un valor en el registro previamente a
realizar la operacin implementada. Por tanto, esta seal solo se
debe utilizar antes de activar la seal INICIO. Tras la activacin de
INICIO, se deber utilizar la seal WE.
! WE: Seal sncrona de escritura del valor del bus DATA en el
registro. La seal es activa en flanco de subida. Esta seal se debe
utilizar solo tras activar la seal de INICIO.
! RE: Seal sncrona de lectura del contenido del registro en el bus
DATA. La seal es activa en flanco de subida. Esta seal se debe
utilizar solo tras activar la seal de INICIO.
! RESE T: Seal asncrona de puesta a cero.

Bidi reccional :
! DAT A[3:0] Bus bidireccional de datos (4 bits). Mientras que no
est activa la seal RE, el registro pone esta salida en alta
impedancia para evitar afectar al contenido del bus.
Funcionamiento del regist ro CI
Este registro sensible a mltiples rdenes permite realizar distintas operaciones
sobre un valor de 4 bits. No se deben activar ms de 1 seal de este registro a la vez. Las
entradas/salidas se muestran a continuacin:

Entradas:
! CL K: Seal de reloj.
! WE: Seal sncrona de escritura del valor del bus D_IN en el
registro. La seal es activa en flanco de subida. Esta seal se debe
utilizar solo tras activar la seal de INICIO.
! RE: Seal sncrona de lectura del contenido del registro en el bus
D_OUT. La seal es activa en flanco de subida. Esta seal se debe
utilizar solo tras activar la seal de INICIO.
! C: Seal sncrona de complementacin del contenido del registro.
La seal es activa en flanco de subida. Esta seal se debe utilizar
solo tras activar la seal de INICIO.
ARQUITECTURA DE COMPUTADORES
2 I. T. Informtica de Gestin
Pgina 3 de 6
Prctica 1
Control basado en regist ros de desplazamiento


! Z: Seal sncrona de puesta a cero del contenido del registro. La
seal es activa en flanco de subida. Esta seal se debe utilizar solo
tras activar la seal de INICIO.
! I : Seal sncrona de incremento en uno del contenido del registro.
La seal es activa en flanco de subida. Esta seal se debe utilizar
solo tras activar la seal de INICIO.
! RESE T: Seal asncrona de puesta a cero.
! D_I N[3:0] Bus de datos de entrada de 4 bits.

Salidas:
! D_OUT[3:0] Bus de datos de salida de 4 bits. Mientras que no est
activa la seal RE, el registro pone esta salida en alta impedancia
para evitar afectar al contenido del bus.
! BS: Bit de signo

Funcionamiento del regist ro ACC
Este registro acumulador de tamao 4 bits. No se deben activar ms de 1 seal
de este registro a la vez. Las entradas/salidas se muestran a continuacin:

Entradas:
! CL K: Seal de reloj.
! WE: Seal sncrona de escritura/acumulacin en el registro ACC.
Este proceso est implementada como una lectura del valor del bus
D_IN y la acumulacin de dicho valor con el almacenado en el
registro. La seal es activa en flanco de subida. Esta seal se debe
utilizar solo tras activar la seal de INICIO.
! RE: Seal sncrona de lectura del contenido del registro en el bus
SUM. La seal es activa en flanco de subida. Esta seal se debe
utilizar solo tras activar la seal de INICIO.
! Z: Seal sncrona de puesta a cero del contenido del registro. La
seal es activa en flanco de subida. Esta seal se debe utilizar solo
tras activar la seal de INICIO.
! RESE T: Seal asncrona de puesta a cero.
! DAT A[3:0] Bus de datos de entrada de 4 bits.

Salidas:
! SUM[3:0] Bus de datos de salida de 4 bits. Mientras que no est
activa la seal RE, el registro pone esta salida en alta impedancia
para evitar afectar al contenido del bus.
! OV: Seal de desbordamiento/acarreo de salida.



ARQUITECTURA DE COMPUTADORES
2 I. T. Informtica de Gestin
Pgina 4 de 6
Prctica 1
Control basado en regist ros de desplazamiento



Diseo del Controlador
La unidad de control de la Calculadora Sencilla implementar la operacin
2 tras la seal de activacin de inicio. Las seales que tiene de entrada y
salida son las siguientes:

Entradas:
! ALI M: Seal de alimentacin, debe estar estimulada a 1.
! RESE T: Seal asncrona de puesta a cero. (Activacin a baja).
! CL K: Seal de reloj.
! I NI CI O: Seal de activacin de inicio de la operacin.
! BI T_SI GNO: Valor del bit de signo (bit ms significativo) del
contenido del registro CI. El valor de dicho bit de signo se actualiza
inmediatamente conforme vara el contenido del registro CI. No hay que
esperar al siguiente ciclo de reloj.
! TI ERRA: Seal de tierra, debe estar estimulada a 0.

Salidas:
Todas las seales son sncronas con activacin en el flanco de subida del CLK.
Estas salidas son seales de activacin de operaciones de los distintos registros.
Todas estas seales activan a alta.
! del registro CI:
W: Seal sncrona de escritura del valor del bus DATOS en el
registro CI.
R: Seal sncrona de lectura del contenido del registro CI.
I : Seal sncrona de incremento del contenido del registro CI en
1.
C: Seal sncrona de complementacin del contenido del registro
CI. Complemento a 1.
Z: Seal sncrona de puesta a cero del registro CI.
! del registro ACC:
Wa: Seal sncrona de escritura en el registro ACC. Acumula el
valor de entrada al registro ACC con el valor almacenado
internamente en dicho registro.
Ra: Seal sncrona de lectura del contenido del registro ACC.
Za: Seal sncrona de puesta a cero del registro ACC.
! del registro REG_ALPHA:
Walpha: Seal sncrona de escritura en el registro
REG_ALPHA.
Ralpha: Seal sncrona de lectura del contenido del registro
REG_ALPHA.
! del registro REG_BETA:
Wbeta: Seal sncrona de escritura en el registro REG_BETA.
ARQUITECTURA DE COMPUTADORES
2 I. T. Informtica de Gestin
Pgina 5 de 6
Prctica 1
Control basado en regist ros de desplazamiento


Rbeta: Seal sncrona de lectura del contenido del registro
REG_BETA.

Se recomienda emplear flip-flops tipo D 74LS74 para realizar el 'tren de
biestables en el modulo Controlador. Para minimizar los tiempos de retraso, se pueden
sintetizar las funciones de excitacin de los biestables empleando puertas NAND de
cualquier nmero de entradas.

La seal RESET tiene como misin inicializar todos los registros de forma
asncrona, poniendo todos ellos a valor 0. Tambin deber actuar sobre los flip-flops
que utilicis en la implementacin del controlador, inicializndolos a 0.

Simulacin

Se simular la operacin con los siguientes datos:

2
1

En la ventana de trazas deben aparecer las siguientes seales:
1. RESET
2. CLK
3. LOAD_alpha
4. LOAD_beta
5. INICIO
6. DATOS
7. Bsigno
8. C
9. I
10. R
11. Ra
12. Ralpha
13. Rbeta
14. W
15. Wa
16. Walpha
17. Wbeta
18. Z
19. Za
20. calc.reg_alpha.r (contenido del registro Alpha)
21. calc.reg_beta.r (contenido del registro Beta)
22. calc.ci.r (contenido del registro CI)
23. calc.acc.r (contenido del registro ACC)


ARQUITECTURA DE COMPUTADORES
2 I. T. Informtica de Gestin
Pgina 6 de 6
Prctica 1
Control basado en regist ros de desplazamiento


Estmulos:
CL OC K:

CLK: At 0: 0, for 100 ns; 1 for 100 ns.

ABSOLUT E:

RESET:
Set to 0 at time 0 ns
Set to 1 at time 50 ns

LOAD_ALPHA:
Set to 0 at time 0 ns
Set to 1 at time 50 ns
Set to 0 at time 150 ns




LOAD_BETA:
Set to 0 at time 0 ns
Set to 1 at time 250 ns
Set to 0 at time 350 ns

INICIO:
Set to 0 at time 0 ns
Set to 1 at time 450 ns
Set to 0 at time 550 ns

RE L ATI V E:
DATOS[0]:
Set to 0
Wait for 200
Set to 1
Wait for 200
Set to Z
DATOS[1]:
Set to 1
Wait for 400
Set to Z


DATOS[2]:
Set to 1
Wait for 400
Set to Z
DATOS[3]:
Set to 1
Wait for 400
Set to Z

Componentes:
Inversor 74LS04
Puerta AND (2 entradas) 74LS08
Puerta AND (3 entradas) 74LS11
Puerta NAND (2 entradas) 74LS00
Puerta NAND (3 entradas) 74LS10
Puerta NAND (4 entradas) 74LS20
Puerta NAND (8 entradas) 74LS30
Puerta OR (2 entradas) 74LS32
Flip-Flop D 74LS74
Ignacio Monferrer Altava
Arquitectura de Computadores
-1-

Practica N 1
Control Basado en Registros de Desplazamientos


1- Tabla RT L
Operacin:

t0. Za, Ru, W
t1 R, Wa
t2. R, Wa
t3. R, W
t4. C
t5. I
t6. R, Wa
t7. Ra, W
t8.Za, Si Bs==0 Nada
Si Bs==1
t9. C
t10. I
t11. R, Wa
t12. Ra, Wu


2- Funciones Lgica de Control

Za = t0+t8
Ru = t0
W = t0 + t3+ t7
R = t1 + t2 + t6 + t11
Wa = t1 + t2 +t6 +t11
R = t3
C = t4 + t9
I = t5 + t10
Ra = t7+ t12
Wu = t12












Ignacio Monferrer Altava
Arquitectura de Computadores
-2-
3-Esquemticos

Calculadora


Controlador

I
g
n
a
c
i
o

M
o
n
f
e
r
r
e
r

A
l
t
a
v
a

A
r
q
u
i
t
e
c
t
u
r
a

d
e

C
o
m
p
u
t
a
d
o
r
e
s

-
3
-

S
c
h
e
m
a
t
i
c
1

Ignacio Monferrer Altava
Arquitectura de Computadores
-4-

Simulacin




































calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc.reg_alpha
calc.reg_beta
calc.ci
calc.acc
Context
reset
clk
load_alpha
load_beta
inicio
datos
bsigno
c
i
r
ra
ralpha
rbeta
w
wa
walpha
wbeta
z
za
r
r
r
r
Signal
1
1
0
0
0
X
0
0
0
0
0
0
0
0
0
0
0
0
0
3
F
3
03
State
X E F X E X F X D X
U
U
X0 E
X 0 F
X 0 E F 0 1 D 2 3
X 00 0E 1C 1D 00
0ns 500ns 1000ns 1500ns 2000ns 2500ns
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc.reg_alpha
calc.reg_beta
calc.ci
calc.acc
Context
reset
clk
load_alpha
load_beta
inicio
datos
bsigno
c
i
r
ra
ralpha
rbeta
w
wa
walpha
wbeta
z
za
r
r
r
r
Signal
1
1
0
0
0
X
0
0
0
0
0
0
0
0
0
0
0
0
0
3
F
3
03
State
X 3 X
E 3
F
3
00 03
3000ns 3500ns 4000ns 4500ns 5000ns 5500ns
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc.reg_alpha
calc.reg_beta
calc.ci
calc.acc
Context
reset
clk
load_alpha
load_beta
inicio
datos
bsigno
c
i
r
ra
ralpha
rbeta
w
wa
walpha
wbeta
z
za
r
r
r
r
Signal
1
1
0
0
0
X
0
0
0
0
0
0
0
0
0
0
0
0
0
3
F
3
03
State
X
3
F
3
03
6000ns 6500ns 7000ns 7500ns 8000ns 8500ns
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc
calc.reg_alpha
calc.reg_beta
calc.ci
calc.acc
Context
reset
clk
load_alpha
load_beta
inicio
datos
bsigno
c
i
r
ra
ralpha
rbeta
w
wa
walpha
wbeta
z
za
r
r
r
r
Signal
1
1
0
0
0
X
0
0
0
0
0
0
0
0
0
0
0
0
0
3
F
3
03
State
X
3
F
3
03
9000ns 9500ns 10000ns 10500ns 11000ns
ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin
Pgina 1 de 1
Prctica 3
Control microprogramado en SiCoMe


Crear un repertorio de instrucciones para la Computadora Mejora (SiCoMe 2.0)
mediante control microprogramado. Este repertorio deber estar optimizado en ciclos
(menor nmero de ciclos). La optimizacin se podr realizar utilizando una tabla de
bifurcacin de saltos adaptada al repertorio, unificando microoperaciones en un mismo
ciclo y pasando al ciclo de bsqueda microoperaciones que sean comunes. Realizar uno o
varios programas que comprueben la valides de las instrucciones implementadas.
El repertorio deber contener necesariamente las instrucciones que se indican a
continuacin, adems del ciclo de bsqueda y la instruccin HALT:

PUSH_Q: Almacena el registro QR en la pila.
POP_Q: Recupera el registro QR de la pila.
PUSH_N: Almacena el contenido del bit de estado N en la pila.
POP_N: Recupera el contenido del bit de estado N de la pila.
ADDIMM: Suma al acumulador el valor inmediato codificado en los 11 bits menos
significativos de la propia instruccin.
COMPAR_ACC m: Compara el contenido de la direccin de memoria m con el
contenido del registro ACC. Si el contenido de m es mayor que el de ACC, guarda
un 1 en la direccin de memoria m; si los contenidos son iguales, guarda un 0; y si
el contenido de m es menor, guarda un -1. Todos los nmeros se encuentran en
representacin de complemento a 2.
ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin
Pgina 1 de 1
Bits de estado del Sicome 2.0


Zb = Es 1, si todos los bits de BR/GPR son 0 (Los 16 bits a 0, bit de signo + bits de
magnitud todos a 0).
Za = Es 1, si todos los bits de la magnitud del ACC son 0 (es decir, todos los bits del
ACC a 0 menos el bit de signo de Acc).
Zac = Es 1, si todos los bits de ACC son 0 (magnitud y signo).
Zsc = Es 1, si el contador del controlador ha llegado a 0.
Ovf = Indica el Overflow, es un bit que debemos activar/desactivar nosotros para
indicar el desbordamiento de una operacin. No se puede utilizar en la tabla de
control de bifurcacin.
N = Es un flag extra que debemos activar/desactivar nosotros segn la funcionalidad
que deseemos darle. Se puede utilizar dentro de la tabla de control de bifurcacin.
Qn = Bit menos significativo de QR (Bit 0 de QR).
Qn+1 = Bit a la izquierda del menos significativo de QR (Bit 1 de QR).
As = Bit de Signo de Acc (bit 15 de Acc).
Qs = Bit de Signo de QR (bit 15 de QR).
Bs = Bit de Signo de BR/GPR (bit 15 de BR/GPR).
X = Es el clculo automtico de As XOR Bs. Se modifica en cada ciclo segn el
contenido de Acc y de BR/GPR.
Ignacio Monferrer Altava
Arquitectura de Computadores
-1-

Practica N 3
Control Microprogramado en Si CoMe

1- Secuencia de Microoperaciones

a) FETCH:

0. PC MAR I

1. M GPR; PC+1 PC I

2. GPR(OP) OPR R


b) HLT:

3. ---- B0


c) PUSH_Q

3. SP -1 -> SP I

4. SP -> MAR I

5. QR -> M B0


d) POP_Q

3. SP -> MAR I

4. M ->QR; SP + 1 -> SP B0


e) POP_N

3. SP -> MAR I

4. M -> QR; SP+1 -> SP I

5. 0 ->N
SI Qn == 1 I
SI Qn == 0 B0

6. 1 -> N B0

Ignacio Monferrer Altava
Arquitectura de Computadores
-2-
f) PUSH_N

3. SP 1 -> SP I

4. SP -> MAR; 0->ACC I
SI N==1 I
SI N==0 B6

5. ACC+1->ACC I

6. ACC -> GPR I

7. GPR -> M B0


g) ADDIMM

3. PC ->GPR; GPR ->PC I

4. PC ->GPR; GPR -> PC I

5. GPR + ACC -> ACC B0


h) COMPARACC M

3. GPR (AD) ->MAR I

4. ACC+1 -> ACC
M -> GPR I

5. GPR+ACC -> ACC I

6. 0->QR I

7. QR -> GPR
Si Zac==1 B11
Si Zac==0 I

8. Si As==0 I
Si As==1 B10

9. GPR+1 -> GPR B11

10. GPR -> GPR I

11. GPR -> M B0



I
g
n
a
c
i
o

M
o
n
f
e
r
r
e
r

A
l
t
a
v
a

A
r
q
u
i
t
e
c
t
u
r
a

d
e

C
o
m
p
u
t
a
d
o
r
e
s

-
3
-

C
i
c
l
o

o

d
i
r
e
c
c
i

n

R
O
M

M
A
R

O
P
R

Y

M
E
M

S
P
,

P
C

Y

S
C

A
L
U

G
P
R

B
I
F
U
R
C
A
C
I

N

Y

C
O
N
T
R
O
L

D
I
R
E
C
C
I
O
N
E
S

Y

D
A
T
O
S

D
E

C
A
R
G
A

D
E
L

C
O
N
T
A
D
O
R

S
C

C
o
d
i
f
i
c
a
c
i

n

H
e
x
a
d
e
c
i
m
a
l

S
1
5

S
1
4

S
1
3

S
1
2

S
1
1

S
1
0

S
9

S
8

S
7

S
6

S
5

S
4

S
3

S
2

S
1

S
0

B
3

B
2

B
1

B
0

M
7

M
6

M
5

M
4

M
3

M
2

M
1

M
0

0

F
E
T
C
H

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

4
0
0
0
1
0
0






P
C
-
>
M
A
R


1

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

0
2
0
1
1
0
0

M
-
>
G
P
R
;

P
C
-
1
-
>
P
C

2

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

0

0

0

3
0
0
0
3
0
0

G
P
R
(
O
P
R
)
-
>
O
P
R































3


H
A
L
T

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0
0
0
0
0
0
0






H
A
L
T































4

P
U
S
H
_
Q

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0
8
0
0
1
0
0




S
P
-
1
-
>
S
P


5

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

C
0
0
0
1
0
0

S
P
-
>
M
A
R

6

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

2
0
0
0
2
0
0

Q
R
-
>
M































7

P
O
P
_
Q

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

C
0
0
0
1
0
0





S
P
-
>
M
A
R


8

0

0

0

0

0

1

1

0

0

1

1

1

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0
6
7
0
2
0
0

M
-
>
Q
R
;
S
P
+
1
-
>
S
P































9

P
U
S
H
_
N

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0


0
8
0
0
1
0
0


S
P
-
1
-
>
S
P

A

1

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

1

1

0

0

C
0
0
8
4
0
C

S
P
-
>
M
A
R
;

0
-
>
A
C
C

S
I

N
=
1

I

S
I

N
=
0

B

C

B

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0
0
0
1
8
1
0
0

A
C
C
+
1
-
>
A
C
C

C

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

0

0

0
0
0
2
1
0
0

A
C
C
-
>
G
P
R

D

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

1
0
0
0
2
0
0

G
P
R
-
>
M































I
g
n
a
c
i
o

M
o
n
f
e
r
r
e
r

A
l
t
a
v
a

A
r
q
u
i
t
e
c
t
u
r
a

d
e

C
o
m
p
u
t
a
d
o
r
e
s

-
4
-

C
i
c
l
o

o

d
i
r
e
c
c
i

n

R
O
M

M
A
R

O
P
R

Y

M
E
M

S
P
,

P
C

Y

S
C

A
L
U

G
P
R

B
I
F
U
R
C
A
C
I

N

Y

C
O
N
T
R
O
L

D
I
R
E
C
C
I
O
N
E
S

Y

D
A
T
O
S

D
E

C
A
R
G
A

D
E
L

C
O
N
T
A
D
O
R

S
C

C
o
d
i
f
i
c
a
c
i

n

H
e
x
a
d
e
c
i
m
a
l

S
1
5

S
1
4

S
1
3

S
1
2

S
1
1

S
1
0

S
9

S
8

S
7

S
6

S
5

S
4

S
3

S
2

S
1

S
0

B
3

B
2

B
1

B
0

M
7

M
6

M
5

M
4

M
3

M
2

M
1

M
0

E

P
O
P
_
N

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

C
0
0
0
1
0
0

S
P
-
>
M
A
R


0

0

0

0

0

1

1

0

0

1

1

1

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0
6
7
0
1
0
0

M
-
>
Q
R
;

S
P
+
1
-
>
S
P


0

0

0

0

0

0

0

0

1

1

0

1

0

0

0

0

0

1

0

1

0

0

0

0

0

0

0

0

0
0
D
0
5
0
0

0
-
>
N

S
I

Q
n
=
1

I
;

S
I

Q
n
=
0

B

0


0

0

0

0

0

0

0

0

1

1

0

1

1

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0
0
D
8
2
0
0

1
-
>
N

F

A
D
D
I
M
M

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

1

0

0

0

1

0

0

0

0

0

0

0

0

0
4
0
3
1
0
0

G
P
R
-
>
P
C
;

G
P
R
-
>

P
C

1
0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

1

0

0

0

1

0

0

0

0

0

0

0

0

0
4
0
3
1
0
0

G
P
R
-
>
P
C
;

G
P
R
-
>

P
C

1
1

0

0

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0
0
2
8
2
0
0

G
P
R
+
A
C
C
-
>

A
C
C































1
2

C
O
M
P
R
A
R

A
C
C

m

1

0


0

0


0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

8
0
0
0
1
0
0

G
P
R
(
A
D
)
-
>
M
A
R

1
3

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

0
0
2
1
1
0
0

A
C
C

+
1
-
>

A
C
C
;

M
-
>
G
P
R

1
4

0

0

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0
0
2
8
1
0
0

G
P
R
+
A
C
C
-
>

A
C
C
;

1
5

0

0

0

0

0

0

0

0

0

1

0

0





0

0

0

1

0

0

0

0

0

0

0

0

0
0
4
0
1
0
0

0
-
>
Q
R

1
6

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

1

1

1

0

0

0

1

0

1

0

0

0
0
0
5
7
1
4

Q
R
-
>
G
P
R

S
i

Z
a
c
=
1

B

1
A

S
i

Z
a
c
=

0

I

1
7

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

1

0

0

1

1

0
0
0
0
8
1
3

S
i

A
s
=
0

I

S
i

A
s
=

1

B

1
9

1
8

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

1

0

1

0

0

0
0
0
4
2
1
4

G
P
R
+
1
-
>

G
P
R

B
1
A

1
9

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

1

0

0

0

0

0

0

0

0

0
0
0
6
1
0
0

G
P
R

-
>
G
P
R


1
A

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

1
0
0
0
2
0
0

G
P
R
-
>
M


Ignacio Monferrer Altava
Arquitectura de Computadores
-5-
3- Lgica de Control de Bifurcacin




4- Repertorio de I nstrucciones

$
CB 4000100
CB 0201100
CB 3000300
$
HALT false 0000000
PUSH_Q false 0800100 C000100 2000200
POP_Q false C000100 0670200
PUSH_N false 0800100 C00840C 00018100 0002100 1000200
POP_N false C000100 0670100 00D0500 00D8200
ADMINN false 0403100 0403100 0028200
COMPAR_ACC true 8000100 0021100 0028100 0040100 0000813 0004214 0006100 1000200
ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin

Prctica 4
Control microprogramado en OrCAD



OBJETIVO

El objetivo de la prctica consiste en disear una unidad de control
microprogramada para la versin de la Computadora Mejorada que se pone a
disposicin de los alumnos a travs de la plataforma Moodle.


Descripcin de la Computadora Mejorada

La estructura suministrada consiste en una versin reducida de la Computadora
Mejorada. La ALU ha sido modificada para permitir la ejecucin de las instrucciones
que se proponen. Esta versin incorpora:

REG_PC: Registro contador de programa de 3 bits
REG_MAR: Registro de direccionamiento de memoria de 3 bits
MEMORY: Memoria RAM de 8 palabras de 6 bits cada una
REG_GPR: Registro de propsito general de 6 bits
REG_OPR: Registro de cdigo de operacin de instruccin de 3 bits
CONTROL: Unidad de control de la computadora
ALU: Unidad de clculo. Incorpora todos los registros y conexiones necesarias
para implementar las instrucciones que se proponen en la prctica.

Las instrucciones tienen una longitud de 6 bits, ocupando cada una de ellas una
palabra completa de memoria. El formato de instruccin consta de 3 bits de cdigo de
operacin de la instruccin y 3 bits de operando. Los 3 bits de operando permiten
direccionar las 8 palabras de la memoria ROM, mientras que los 3 bits de cdigo de
operacin de la instruccin permiten definir un juego de hasta 8 instrucciones.

En el diseo se han incorporado las siguientes entradas:

CLK: Seal de reloj. Todo el sistema debe responder al flanco de bajada del
reloj.
CLEAR': Seal de RESET asncrona. Activa a nivel bajo.
ALIM/TIERRA: Seales de alimentacin y tierra que se deben estimular a 1 y 0
respectivamente.


Diseo de la unidad de control

Se trata de disear una unidad de control microprogramada que permita la
ejecucin de las siguientes
instrucciones:



ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin

Prctica 4
Control microprogramado en OrCAD



HLT (Op. Code = 000): Detiene el proceso.
LDQ m (Op. Code = 001): Realiza una lectura de la posicin de memoria m
hacia el registro Q de la ALU.
STA m (Op. Code = 010): Realiza una escritura de la posicin de memoria m
desde el registro A de la ALU.
STQ m (Op. Code = 011): Realiza una escritura de la posicin de memoria m
desde el registro Q de la ALU.
MUL m (Op. Code = 100): Realiza el producto, en representacin
complemento a dos, del contenido de la posicin de memoria m y el registro Q
(este ltimo en la ALU) empleando el algoritmo de Booth. El resultado del
producto queda situado en los registros de la ALU A (parte alta) y Q (parte
baja).

Las instrucciones se encontrarn codificadas en la memoria RAM segn el
formato especificado anteriormente (3 bits para cdigo de operacin + 3 bits para
operando). El controlador debe contemplar tanto el ciclo de bsqueda como los ciclos
de ejecucin de todas las instrucciones.

La unidad de control que se debe disear tiene las siguientes entradas y salidas:

Entradas
1. CLK/CLEAR'/ALIM/TIERRA: Tienen la misma funcionalidad que se
describi anteriormente.
2. IN_OPR2/IN_OPR1/IN_OPR0: Corresponden a las salidas del registro
OPR e indican al controlador el cdigo de operacin de la instruccin que
se est ejecutando en cada momento.
3. QN/QN1: Bits provenientes de la ALU que indican al controlador el valor de
estos registros. Son tiles como bits de status al implementar el algoritmo
de Booth.

Salidas
1. PC2MAR: Transfiere el contenido del registro PC al registro MAR
(PCMAR).
2. INC_PC: Incrementa el contenido del registro PC ( PC +1 PC ).
3. M2GPR: Lee de la posicin de memoria direccionada por el registro MAR
una palabra de 6 bits y la almacena en el registro GPR (M GPR ).
4. GPR2M: Escribe en la posicin de memoria direccionada por el registro
MAR la palabra de 6 bits que se encuentra en el registro GPR (GPR M).
5. GPR2OPR: Transfiere la parte de cdigo de operacin del registro GPR al
registro OPR ( GPR(OP) OPR ).
6. GPR2MAR: Transfiere la parte de operando del registro GPR al registro
MAR (GPR ( AD) MAR ).
7. GPR2Q: Transfiere el contenido del registro GPR al registro Q de la ALU
(GPR Q).
8. Q2GPR: Transfiere el contenido del registro Q de la ALU al registro GPR
(Q GPR ).
ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin

Prctica 4
Control microprogramado en OrCAD



9. A2GPR: Transfiere el contenido del registro A de la ALU al registro GPR
(AGPR).
10. ZA: Pone a 0 el registro A y el registro QN1 de la ALU ( 0 A, 0 Q
n+1
).
11. ASHR: Realiza el desplazamiento aritmtico de los registros A y Q de la
ALU (ASHR ( A&Q) ).
12. SUM: Realiza la suma del registro A de la ALU con el registro GPR,
almacenando el resultado en el registro A ( A+ B A).
13. RES: Realiza la resta del registro A de la ALU y el registro GPR,
almacenando el resultado en el registro A ( A+B +1 A ).


La unidad de control microprogramada estar compuesta de los siguientes
elementos: CMAR (contador de microprograma), CROM (memoria de microprograma),
LCB (lgica de control de bifurcacin), registro contador de iteraciones (registro SC) y
lgica de correspondencia.


Contador de microprograma (CMAR)

El contador de microprograma se encuentra implementado en el esquemtico
CMAR por lo que tan
slo hay que colocarlo como mdulo jerrquico dentro del controlador. Permite
direccionar hasta 32
micropalabras. Sus entradas y salidas son las siguientes:

Entradas
1. CLK/CLEAR'/ALIM/TIERRA: Tienen la misma funcionalidad que se
describi anteriormente.
2. LOAD: Realiza la carga del valor presente en los terminales de datos D4,
D3, D2, D1 y D0 en el CMAR.
3. D4/D3/D2/D1/D0: Terminales que indican el valor de la direccin de salto
que deber ser cargada por el CMAR cuando se active su entrada LOAD.

Salidas
1. CMAR4/CMAR3/CMAR2/CMAR1/CMAR0: Indican el contenido del
CMAR.

El contador de microprograma es en s un contador. Esto quiere decir que,
mientras no se active su entrada LOAD, el incremento de su contenido se realiza
automticamente en cada ciclo de reloj. La activacin de LOAD significa una
bifurcacin, procedindose a la carga de los valores presentes en los terminales D4,
D3, D2, D1 y D0.

Las salidas del registro CMAR debern etiquetarse como CMAR4, CMAR3,
CMAR2, CMAR1 y CMAR0 en el esquemtico del controlador. Es importante que
estas lneas reciban nombre ya que sern incorporadas a la simulacin.

ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin

Prctica 4
Control microprogramado en OrCAD



Memoria de microprograma (CROM)

Se debe disear una memoria ROM que tome como entradas de direccin la
salida del CMAR. A su salida deben ofrecerse tres tipos de seales: microoperaciones,
seales de la lgica de control de bifurcacin (LCB) y microdireccin de salto.

Las microoperaciones corresponden a las salidas del controlador (PC2MAR,
NC_PC, ., SUM, RES). Las seales de la lgica de control de bifurcacin (S2, S1 y
S0) indican a la LCB si se va a realizar un incremento o un salto incondicional o
condicionado a algn bit de status. Finalmente, la microdireccin de salto codifica en 5
bits el valor que hay que cargar en el CMAR en caso de que se produzca un salto en
el ciclo actual. Tanto las seales de la LCB como la microdireccin de salto debern
etiquetarse. Las primeras con los nombres S2, S1 y S0. Las segundas con los
nombres D4, D3, D2, D1 y D0. Es importante que estas lneas reciban nombre ya
que sern incorporadas a la simulacin.


Lgica de control de bifurcacin (LCB)

Se trata de un elemento combinacional que, en funcin de las seales que le
suministra la CROM (S2, S1 y S0) y de los bits de status (QN, QN1 y salida Z del
registro SC), decide si el controlador efectuar un incremento del CMAR (I),
bifurcacin (B) o carga de rutina (R).

Puesto que no es necesario definir las tres seales I, B y R, aquellas que se
definan deben etiquetarse. Es importante que estas lneas reciban nombre ya que
sern incorporadas a la simulacin.


Registro contador de iteraciones (registro SC)

Una de las instrucciones que se han de disear es la instruccin MUL. Esta
instruccin aplica un algoritmo iterativo para resolver la multiplicacin en
representacin complemento a dos. El hecho de ser un algoritmo iterativo implica la
existencia de un contador de iteraciones que debe tener capacidad de inicializacin y
decremento. Asimismo, debe poder informar a travs de una salida de si su contenido
ha alcanzado el valor 0 o no. Dicho contador de iteraciones se encuentra
implementado en el esquemtico SC y tan slo hay que colocarlo como mdulo
jerrquico dentro del controlador. Sus entradas y salidas son las siguientes:

Entradas
1. CLK/ALIM/TIERRA: Tienen la misma funcionalidad que se describi
anteriormente.
2. LOAD: Inicializa el contador a valor 6, que es el nmero de iteraciones que
debe realizar el algoritmo de multiplicacin.
3. DEC: Decrementa en una unidad el valor del contador.

ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin

Prctica 4
Control microprogramado en OrCAD



Salidas
1. Z: Indica si el valor del contador es cero (Z=1) o no (Z=0).

La activacin de las seales LOAD y DEC del contador de iteraciones sern
controladas por la CROM. Concretamente, la activacin de LOAD se corresponde con
la seal ZA del controlador, ya que la inicializacin del contador de iteraciones se
realiza en el mismo instante que la puesta a 0 de los registros A y QN1 de la ALU.
Respecto a la activacin de DEC, la CROM deber definir una seal especfica para
este cometido. La seal DEC deber etiquetarse con dicho nombre en el esquemtico
del controlador.

La salida Z del registro SC deber etiquetarse como ZSC. Es importante que
tanto DEC como ZSC reciban nombre ya que sern incorporadas a la simulacin.


Lgica de correspondencia

Se trata de una lgica combinacional que tomando como entrada las seales
IN_OPR2, IN_OPR1 e IN_OPR0, las cuales representan el cdigo de operacin de la
instruccin que est actualmente en ejecucin, ofrece a su salida la direccin de la
memoria CROM (en 5 bits) donde comienza la codificacin de cada una de las
instrucciones (HLT, LDQ, STA, STQ y MUL) que se encuentran definidas para la
computadora. Dicha direccin deber cargarse en el contador de microprograma
(CMAR) cuando la seal R (carga de rutina) de la lgica de control de bifurcacin est
activa.


Simulacin

En la memoria RAM de la computadora debe escribirse el siguiente programa:

Dir Instruccin
0 LDQ 5
1 MUL 6
2 STA 5
3 STQ 6
4 HLT
5 + 25
6 - 18


El programa realiza la multiplicacin de los nmeros (+25)(-18) en representacin
de complemento a dos y almacena el resultado en las posiciones de memoria 5 y 6,
que es donde originalmente se encontraban los operandos. Cada instruccin y
operando deber codificarse en binario segn el formato que le corresponda (las
instrucciones segn lo descrito en el apartado Diseo de la unidad de control; los
ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin

Prctica 4
Control microprogramado en OrCAD



operandos en complemento a dos) y colocarse en la posicin de memoria indicada en
el programa.

Posteriormente debe realizarse una simulacin que se extienda en el tiempo hasta
que el sistema se haya detenido como consecuencia de la ejecucin de HLT. En la
ventana de trazas deben aparecer las siguientes seales:

1. CLK
2. CLEAR'
3. REG_A (Grupo constituido por las seales REG_A5, REG_A4, REG_A3,
REG_A2, REG_A1 y REG_A0 de la ALU)
4. REG_Q (Grupo constituido por las seales REG_Q5, REG_Q4, REG_Q3,
REG_Q2, REG_Q1 y REG_Q0 de la ALU)
5. PC (Grupo constituido por las seales PC2, PC1 y PC0)
6. MAR (Grupo constituido por las seales MAR2, MAR1 y MAR0)
7. MEM (Grupo constituido por las seales MEM5, MEM4, MEM3, MEM2, MEM1
y MEM0)
8. GPR (Grupo constituido por las seales GPR5, GPR4, GPR3, GPR2, GPR1 y
GPR0)
9. OPR (Grupo constituido por las seales OPR2, OPR1 y OPR0)
10. ALU (Grupo constituido por las seales ALU5, ALU4, ALU3, ALU2, ALU1 y
ALU0)
11. PC2MAR
12. M2GPR
13. GPR2M
14. INC_PC
15. GPR2OPR
16. GPR2MAR
17. CMAR (Grupo constituido por las seales CMAR4, CMAR3, CMAR2, CMAR1
y CMAR0 de la unidad de control)
18. DIR (Grupo constituido por las seales D4, D3, D2, D1 y D0 de la unidad de
control)
19. S (Grupo constituido por las seales S2, S1 y S0 de la unidad de control)
20. Seales I, B y R (Salidas de la LCB. Incorporar slo las que se hayan
definido)
21. R (Salida R de la LCB)
22. GPR2Q
23. A2GPR
24. Q2GPR
25. ZA
26. SUM
27. RES
28. ASHR
29. DEC (Salida de la CROM utilizada para decrementar el registro SC)
30. ZSC (Bit de status procedente del registro SC)
31. QN (Bit de status proveniente de la ALU)
32. QN1 (Bit de status proveniente de la ALU)
ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin

Prctica 4
Control microprogramado en OrCAD



Los valores de las seales REG_A, REG_Q, PC, MAR, MEM, GPR, OPR, ALU y
S deben mostrarse en binario, mientras que CMAR y DIR deben mostrarse en decimal
sin signo.

Para la generacin de algunas de las seales de la simulacin ser necesario
emplear las caractersticas de gestin de grupos de seales que est presente en el
dilogo de creacin de la ventana de trazas. De esta forma se puede dar un nombre
comn a un grupo de lneas y representarlas conjuntamente como si se tratara de un
bus. Para ello, marcar todas las seales que se desea agrupar y pulsar el botn "New
Group..

Emplese un reloj de 400 ns de periodo definido por el siguiente estmulo:
At 0, 0 for 200, 1 for 200, repeat forever


Componentes

Inversor 74LS04
Puerta AND (2 entradas) 74LS08
Puerta AND (3 entradas) 74LS11
Puerta AND (4 entradas) 74LS21
Puerta NAND (2 entradas) 74LS00
Puerta NAND (3 entradas) 74LS10
Puerta NAND (4 entradas) 74LS20
Puerta NAND (8 entradas) 74LS30
Puerta OR (2 entradas) 74LS32
Puerta NOR (2 entradas) 74LS02
Puerta XOR (2 entradas) 74LS86
Decodificador de 3 a 8 74LS138
1. Para el correcto funcionamiento del decodificador la entrada G1 debe situarse a
nivel alto, mientras que las entradas G2A y G2B deben situarse a nivel bajo.
2. Las seales C, B y A son las entradas del decodificador (de mayor a menor peso).
Las salidas Y0.Y7 son activas a nivel bajo.
Decodificador de 4 a 16 74LS154
1. Para el correcto funcionamiento del decodificador las entradas G1 y G2 deben
situarse a nivel bajo.
2. Las seales D, C, B y A son las entradas del decodificador (de mayor a menor
peso). Las seales 0.15 son las salidas del decodificador y son activas a nivel
bajo.
Contador binario sncrono 4 bits con reset asncrono 74LS161
1. Para el correcto funcionamiento del contador las entradas ENP y ENT deben
situarse a nivel alto.
2. La entrada CLK es la entrada de reloj. El circuito responde a la transicin de
subida del reloj.
3. La entrada CLR es la entrada de reset asncrono. Es activa a nivel bajo.
4. La entrada LOAD permite la carga del valor presente en las entradas D, C, B y A
(de mayor a menor peso). Es activa a nivel bajo.
ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin

Prctica 4
Control microprogramado en OrCAD



5. Las salidas QD, QC, QB y QA son las salidas del contador (de mayor a menor
peso).
Multiplexor 8:1 74LS151
1. Para el correcto funcionamiento del multiplexor, la entrada G ha de situarse a nivel
bajo.

Entradas Salida
C B A Y
0 0 0 D0
0 0 1 D1
0 1 0 D2
0 1 1 D3
1 0 0 D4
1 0 1 D5
1 1 0 D6
1 1 1 D7


Doble Multiplexor 4:1 74LS153
1. Para el correcto funcionamiento del multiplexor, la entrada G ha de situarse a nivel
bajo.


Entradas Salida
B A Y
0 0 C0
0 1 C1
1 0 C2
1 1 C3


Cudruple Multiplexor 2:1 74LS157
1. Para el correcto funcionamiento del multiplexor, la entrada G ha de situarse a nivel
bajo.


Entradas Salida
A' / B Y
0 A
1 B


ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin

Prctica 4
Control microprogramado en OrCAD




Ignacio Monferrer Altava
Arquitectura de Computadores
-1-

Practica N 4
Control microprogramado en Or CAD

1- Tabla RT L

N Ciclo Microoperaciones Siguiente
0 FETCH 0 PC -> MAR I
1 1 M -> GPR; PC+1 -> PC I
2 2 GPR ->OPR; GPR -> MAR CR

3 LDQ m 3 M -> GPR I
4 4 GPR -> Q B0

5 STA m 3 A -> GPR I
6 4 GPR -> M B0

7 STQ m 3 Q -> GPR I
8 4 GPR -> M B0

9 MUL m 3 M -> GPR; ZA I
A 4 Si Qn=Qn+1
Si Qn!=Qn+1
BE
I
B 5 Si Qn=0
Si Qn=1
I
BD
C 6 SUM BE
D 7 RES I
E 8 ASHR; DEC I
F 9 Si Zsc=0
Si Zsc=1
BA
I
10 10 B0
11 11 HALT B11















I
g
n
a
c
i
o

M
o
n
f
e
r
r
e
r

A
l
t
a
v
a

A
r
q
u
i
t
e
c
t
u
r
a

d
e

C
o
m
p
u
t
a
d
o
r
e
s

-
2
-

2
-
T
a
b
l
a

C
R
O
M


P
C
2
M
A
R

I
N
C
_
P
C

M
2
G
P
R

G
P
R
2
M

G
P
R
2
O
P
R

G
P
R
2
M
A
R

G
P
R
2
Q

Q
2
G
P
R

A
2
G
P
R

Z
A

A
S
H
R

S
U
M

R
E
S

D
E
C

S
2

S
1

S
0

D
4

D
3

D
2

D
1

D
0

0

1














0

0

0






1


1

1












0

0

0






2





1

1









1

1

1






3



1












0

0

0






4







1








0

0

1

0

0

0

0

0

5









1






0

0

0






6




1











0

0

1

0

0

0

0

0

7








1







0

0

0






8




1











0

0

1

0

0

0

0

0

9



1







1





0

0

0






A















0

1

0

0

1

1

1

0

B















1

0

0

0

1

1

0

1

C












1



0

0

1

0

1

1

1

0

D













1


0

0

0






E











1



1

0

0

0






F















0

1

1

0

1

0

1

0

1
1















0

0

1

0

0

0

0

0

1
2















0

0

1

1

0

0

0

1

Ignacio Monferrer Altava
Arquitectura de Computadores
-3-
3-Tabla Lgica de Control de Bifurcacin















4-Tabla Lgica de Cor respondencia

OPR2 OPR1 OPR0 D4 D3 D2 D1 D0
HL T 0 0 0 1 0 0 0 1 (17)
LDQ 0 0 1 0 0 0 1 1 (3)
ST A 0 1 0 0 0 1 0 1 (5)
ST Q 0 1 1 0 0 1 1 1 (7)
MUL 1 0 0 0 1 0 0 1 (9)




















S2 S1 S0 Qn Qn1 Zsc I B R
0 0 0 X X X 1 0 0
0 0 1 X X X 0 1 0
0 1 0 0 1 X 1 0 0
0 1 0 0 0 X 0 1 0
0 1 0 1 1 X 0 1 0
0 1 0 1 0 X 1 0 0
0 1 1 X X 0 0 1 0
0 1 1 X X 1 1 0 0
1 0 0 0 X X 1 0 0
1 0 0 1 X X 0 1 0
1 1 1 X X X 0 0 1
I
g
n
a
c
i
o

M
o
n
f
e
r
r
e
r

A
l
t
a
v
a

A
r
q
u
i
t
e
c
t
u
r
a

d
e

C
o
m
p
u
t
a
d
o
r
e
s

-
4
-

5
-
E
s
q
u
e
m

t
i
c
o
s

C
o
n
t
r
o
l
a
d
o
r



I
g
n
a
c
i
o

M
o
n
f
e
r
r
e
r

A
l
t
a
v
a

A
r
q
u
i
t
e
c
t
u
r
a

d
e

C
o
m
p
u
t
a
d
o
r
e
s

-
5
-

C
R
O
M




Ignacio Monferrer Altava
Arquitectura de Computadores
-6-
Correspondencia





LCB















Ignacio Monferrer Altava
Arquitectura de Computadores
-7-
6- Memoria

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity RAM is
port (
init : in std_logic;
W,R : in std_logic;
a2,a1,a0 : in std_logic;
in5,in4,in3,in2,in1,in0 : in std_logic;
d5,d4,d3,d2,d1,d0 : out std_logic
);
end RAM;

architecture syn of RAM is

type ram_type is array (0 to 7) of std_logic_vector (5 downto 0);

signal MEM0,MEM1,MEM2,MEM3,MEM4,MEM5,MEM6,MEM7 : std_logic_vector (5
downto 0);
signal read_a : std_logic_vector(2 downto 0);
signal di,do : std_logic_vector(5 downto 0);

constant MEM_INI: ram_type :=
("001101","100110","010101","011110","000000","011001","101110","000000");

begin

read_a <= a2&a1&a0;

process (W,R,a2,a1,a0,in5,in4,in3,in2,in1,in0,init)
begin
if (init = '0') then
MEM0 <= MEM_INI(0);
MEM1 <= MEM_INI(1);
MEM2 <= MEM_INI(2);
MEM3 <= MEM_INI(3);
MEM4 <= MEM_INI(4);
MEM5 <= MEM_INI(5);
MEM6 <= MEM_INI(6);
MEM7 <= MEM_INI(7);
elsif (W = '1') then
case read_a is
when "000" =>
MEM0 <= di;
when "001" =>
MEM1 <= di;
when "010" =>
Ignacio Monferrer Altava
Arquitectura de Computadores
-8-
MEM2 <= di;
when "011" =>
MEM3 <= di;
when "100" =>
MEM4 <= di;
when "101" =>
MEM5 <= di;
when "110" =>
MEM6 <= di;
when "111" =>
MEM7 <= di;
end case;
do <= "ZZZZZZ";
else
if (R = '1') then
case read_a is
when "000" =>
do <= MEM0;
when "001" =>
do <= MEM1;
when "010" =>
do <= MEM2;
when "011" =>
do <= MEM3;
when "100" =>
do <= MEM4;
when "101" =>
do <= MEM5;
when "110" =>
do <= MEM6;
when "111" =>
do <= MEM7;
end case;

else
do <= "ZZZZZZ";
end if;
end if;

end process;
di <= in5&in4&in3&in2&in1&in0;

d5 <= do(5);
d4 <= do(4);
d3 <= do(3);
d2 <= do(2);
d1 <= do(1);
d0 <= do(0);
end syn;
ARQUITECTURA DE COMPUTADORES
2 I.T. Informtica de Gestin
Pgina 1 de 1
Prctica 5
Control cableado en SiCoMe



Crear un repertorio de instrucciones para el Simulador de la Computadora Mejora
(SiCoMe 2.0) mediante control cableado. Este repertorio deber estar optimizado en ciclos
(menor nmero de ciclos). Realizar uno o varios programas que comprueben la validez de
las instrucciones implementadas.

El repertorio deber contener necesariamente las instrucciones que se indican a
continuacin, adems del ciclo de bsqueda y la instruccin HALT:

CAL m: Llamada a subrutina a la posicin de memoria m. Utilizar la pila para
almacenar la
direccin de retorno.
RET: Retorno de subrutina, tomando la direccin de retorno de la pila.
DSZ m: Decrementa el contenido de la posicin de memoria m y saltar la
siguiente instruccin si el resultado es cero. Realizar la instruccin sin
modificar los registros ACC y QR.
INTER_ACC_QR: Intercambiar el contenido de los registros ACC y QR.
PARACC m: Almacena en la posicin de memoria m la paridad impar (valor 1
0) del registro ACC. El registro ACC debe quedar inalterado.
IMPARQR m: Almacena en la posicin de memoria m el valor 1 si el
contenido del registro QR es impar, y el valor 0 en caso contrario. Los
registros ACC y QR deben quedar inalterados.

Ignacio Monferrer Altava
Arquitectura de Computadores
-1-

Practica N 5
Control cableado en Si CoMe

1- Tabla RT L

a) FETCH

t0 PC MAR SR + 1 -> SR
t1 M GPR ; PC +1 PC SR + 1 -> SR
t2 GPR(AD) MAR ; GPR(OP) OPR SR + 1 -> SR


b) HALT:

t3*q0 -----


c) CAL m

t3*q1 SP-1->SP SR+1->SR
PC->GPR;
GPR->PC;
t4*q1 SP->MAR SR+1->SR
t5*q1 GPR->M 0->SR


d) RET

t3*q2 SP->MAR SR+1->SR
t4*q2 M->GPR; SP+1->SP SR+1->SR
t5*q2 GPR->PC 0->SR


e) DSZ m

t3*q3 M->GPR SR+1->SR
t4*q3 Co2 GPR SR+1->SR
t5*q3 ->GPR SR+1->SR
t6*q3*Zb --- SR+1->SR
t6*q3*Zb --- 0->SR
t7*q3 PC + 1 -> PC 0->SR







Ignacio Monferrer Altava
Arquitectura de Computadores
-2-
f) INTER_ACC_QR

t3*q4 SP-1->SP SR+1->SR
t4*q4 SP->MAR SR+1->SR
t5*q4 QR->M
ACC->GPR SR+1->SR
t6*q4 GPR->QR
0->ACC SR+1->SR
t7*q4 M->GPR
SP+1->SP SR+1->SR
t8*q4 GPR->ACC 0->SR


g) PARACC m

t3*q5 0->QR;
16->SC SR+1->SR
t4*q5 QR->GPR
0->F SR+1->SR
t5*q5 ROL F_ACC_QR
SC-1->SC SR+1->SR
t6*q5*F GPR+1->GPR ---
t6*q5*Zsc --- SR+1->SR
t6*q5*Zsc --- 5->SR
t7*q5 ROL_F_ACC_QR SR+1->SR
t8*q5 GPR+ACC->ACC SR+1->SR
t9*q5 ROR_ACC SR+1->SR
t10*q5 0->ACC ---
t10*q5*F --- SR+1->SR
t10*q5*F --- 12->SR
t11*q5 ACC+1->ACC SR+1->SR
t12*q5 ACC->GPR SR+1->SR
t13*q5 GPR->M SR+1->SR
t14*q5 QR->GPR SR+1->SR
t15*q5 GPR->ACC 0->SR


h) IMPARQR m

t3*q6 QR->M SR+1->SR
t4*q6 0->QR SR+1->SR
t5*q6 QR->GPR SR+1->SR
t6*q6 M->QR SR+1->SR
t7*q6*Qn --- SR+1->SR
t7*q6*Qn --- 9->SR
t8*q6 GPR+1->GPR SR+1->SR
t9*q6 GPR->M 0->SR



Ignacio Monferrer Altava
Arquitectura de Computadores
-3-
2- Expresiones de Control

$
PC+1->PC:t1 + t7q3
GPR->PC:t3q1 + t5q2
PC->MAR:t0
GPR(AD)->MAR:t2
SP->MAR:t3q2 + t4q4
SP+1->SP:t4q2 + t7q4
SP-1->SP:t3q1 + t3q4
GPR->M:t5q1 + t13q5 + t9q6
QR->M:t5q4 + t3q6
GPR(OP)->OPR:t2
M->GPR:t1 + t3q3 + t7q4 + t4q2
ACC->GPR:t5q4 + t12q5
PC->GPR:t3q1
GPR+1->GPR:t6q5F + t8q6
QR->GPR:t4q5 + t14q5 + t5q6
GPR'->GPR:t5q3
Co2 GPR:t4q3
0->F:t4q5
0->QR:t3q5 + t4q6
0->ACC:t6q4 + t10q5
M->QR:t6q6
GPR+ACC->ACC:t8q4 + t8q5 + t15q5
GPR->QR:t6q4
ROL FAQ:t5q5 + t7q5
ROR FA:t9q5
ACC+1->ACC:t11q5
$
SR+1->SR:t0 + t1 + t2 + t3 + t4 + t5q3 + t6q3Zb + t5q4 + t6q4 + t7q4 + t5q5 +
t6q5Zsc + t7q5 + t8q5 + t9q5 + t10q5F + t11q5 + t12q5 + t13q5 + t14q5 + t15q5 +
t5q6 + t6q6 + t7q6Qn + t8q6
LOAD SR:t5q1-0 + t5q2-0 + t6q3Zb'-0 + t7q3-0 + t8q4-0 + t15q5-0 + t9q6-0 +
t6q5Zsc'-5 + t10q5F'-12 + t7q6Qn'-9
SC-1->SC:t5q5
LOAD SC:t3q5-16
$


3- Repertorio de I nstrucciones

HALT false 0 q0
CAL true 3 q1
RET false 3 q2
DSZ true 5 q3
INTER_ACC_QR false 6 q4
PARACC true 13 q5
IMPARQR true 7 q6