Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ELECTRONICA DIGITAL Problemas de Circuitos y Sistemas Digitales
ELECTRONICA DIGITAL Problemas de Circuitos y Sistemas Digitales
T D
ri
Sk q
Ip
j
Por tiltimo, las salidas de la unidad de control son sefiales que se activan bien en uno 0
mis estados (salidas tipo Moore; por ejemplo, una salida Wac que se activase en los estados
Spy Ss), bien cuando ocurre cierta condicién de entrada en un estado (salida tipo Mealy; por
ejemplo, que Wc se activase para X; = 0 en S3). Como estas sefiales suelen estar accesibles
en el registro de desplazamiento modificado (en el ejemplo serfan qp, qs y la salida del canal 0
del demultiplexor de qy: 439), para obtener Ia salida deseada Wc bastaria sumar (OR) esas
sefiales: Wac = qo + 45 + a30-
Aunque esta técnica de diseiio no optimiza el coste en puertas y proporciona controla-
dores especificos al problema, la técnica en sf es muy genérica, valida para todas las unidades
de control, y consiste en una mera traslacién formal desde las cartas ASM o programas HDL.
Por ello el tiempo disefio es muy corto.
Indice del Capitulo
Este Capitulo desarrolla problemas de las siguientes materias:
— Disefio de unidades de control para casos especificos.
— Realizacién completa de sistemas digitales.
PROBLEMAS RESUELTOS
Problema 1.- Para la unidad de datos de la figura, diserie un controlador que permita escribir
en B el nmero de "1" que hay en A. El contador C; es de tres bits (mod. 8) y el Co de 8 bits
(mod. 256). ¢Qué cambio hay que introducir para escribir en B el nimero de "0" de A?
Nota: —_Z; = Puesta a 0 sincrona, |,= Incrementar, CY; = CARRY.328 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
ip
cy,
Rp
Wp
SHR’
Cc C2
REG. DESP.
Og Ri Wy, Z, Ry Wo by Zy
Solucién P1.- La macrooperaci6n a realizar es: B <— n° de 1 en A.
En primer lugar describiremos a nivel RT los registros de la unidad de datos.
~ Registros A y B:
Wx
X{[8]
R, —
HI
8 01 [x] x
10 | entrada | BUS;
BUS; 11 | prohibida | prohibida
—Registros Cy y Cy:
WR Z
| | | | cy; 1000
G 0100 q
0010 G+
a ooo! 0
BUS,-19 0000 q
— Registro de desplazamiento D:
Wo.
R,
BUS7.9
D
SHR(D,ip)
entrada
ID]
HI
010
oor(0 DE UNIDADES DECONTROL 329
El mimero de “1” en A puede variar entre 0 y 8. Para contarlos necesitamos 4 0 mas bits.
C98] (médulo 256) realizar esta cuenta, La idea que sustenta la solucion es:
a) Transferimos A a D, preguntando por Og sabremos si el bit mas a la derecha es to no.
b) Si Op es 1 incrementamos Cp
c) Desplazamos el registro D para acceder al siguiente bit del dato A original. Esto hay
que hacerlo 8 veces.
4) Para conocer el ntimero de desplazamientos, utilizamos el contador C; que es
médulo 8.
La carta ASM (incluyendo simultneamente RT y control) es:
NOP
1
S}: Inicializacién. Tras el primer ci-
De AC), <9 |g clo, Cy y Cz estén a0 y D tiene escrito
Wp. Ra: Zi Za el dato A
Sp: Es el micleo de la solucién.
— Siempre se ordena el desplazamien-
D<— SHRDO. CLE Ci +1) g, tode Dy el incremento deci. yaque
SHR, I, siempre vamos a evaluar un nuevo bit.
— La primera vez que se alcanza Sp,
0 1 se cumple: Og = Ag, [Cj] =0
<> Seguin el resultado de la evaluacién de
GE Gat Ok, se incrementa 0 no C>,
b — La segunda vez que se alcanza So,
se cumple: Og = Ay, [C\] = 1.
Asi sucesivamente; la octava vez:
° : Op = Az, [C\] = 7 por lo que CY,=1
os saliendo hacia S3.
Se
BC; ] g, | $3: Se escribe el mimero de 1's en B.
Wa, Ro (Al alcanzar $3, [D]=0 y [C]=0 pues
el contador C; ha pasado de 7 a 0).
we]330 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
El controlador se obtiene directamente de la carta ASM:
Wp. Ra: Zi Zo v Wp, Ro FIN
SHR.) Og
El tinico cambio que es necesario realizar si se quiere escribir en B el ntimero de “0”
de A es modificar la caja de decisién de Op y el demmultiplexor correspondientes a S>.
0 i cy
C= C+
SHR, },
Problema 2. La figura muestra la memoria (MEM) de un sistema: el registro de direcciones
(MAR) puede ser cargado con el contador del programa (PC) o con el puntero de pila (SP), el
registro de datos (MDR) esta conectado a un bus de datos internos (IDB), al que también se
conecta el registro A, y otro externo (EDB) conectado con la memoria.
Se quiere incorporar las dos operaciones de pila: EMPUJAR (PUSH) y EXTRAER
(PULL) que consisten respectivamente, en llevar A a la pila y en llevar de la pila a A (recuerde
que PUSH A implica MEM <— A y SP <— SP + 1, mientras que PULL A implica SP <—- SP—1
y A MEM(SP) ). Cuando no hay operacién de la pila, el puntero SP apunta a la primera
direccién libre.
Disefie el controlador que permita ejecutar las operaciones de PUSH (Iy/p = 00) y PULL
1).
: 108 cédigos Iylp = 1X estén reservados para otras operaciones no definidas en el
enunciado.DISENO DE UNIDADES DE CONTROL 331
}— ISP
I~ DSP
16 16 IDB[8)
eo[_ ater [ER
: ‘a
—R
irC—{PC{16) SP(16]
WPC—T" MAR[I6]
cs RW MDRI8]
1" fal
AB[16]
L___»! MEM
EDB(8)
Solucién P2.- Segtin el enunciado, la pila se va llenando desde las direcciones mas bajas a las
mis altas. Las dos operaciones de pila implican direccionar la memoria MEM con la direccién
que indica el puntero de pila, SP. De aqui que, tras apuntar SP a la direccién adecuada, habré
que transferir SP hacia MAR. En ambas operaciones la transferencia entre MEM y A debe pa-
sar por MDR.
Operacién PUSH (I Ip = 00): Como SP apunta a la direccién vacfa, es ahi donde hay que
transferir A y, después, se incrementa SP para que contintie apuntando a la primera direccién
vacfa.
microoperacién sefiales a activar
1. MAR & SP/MDR A WSP/R,/W;
2.MEM