Escolar Documentos
Profissional Documentos
Cultura Documentos
Informe realizado para la ctedra de Electrnica Digital, ao 2013, con el objetivo de explicar los
componentes agregados al procesador como funcionan y el programa de prueba aadido.
ndice
ndice ....................................................................................................................................... 2
Introduccin ............................................................................................................................. 3
Instrucciones aadidas ............................................................................................................. 4
Instruccin CALL .............................................................................................................................. 4
Instruccin RET ................................................................................................................................ 4
Repercusin en la DU ............................................................................................................... 5
Componentes Agregadas .......................................................................................................... 6
Pila de Ejecuciones .......................................................................................................................... 6
Alpha DU y BetaDU ......................................................................................................................... 6
Programa con CALL y RET .......................................................................................................... 7
Cambios en el diseo ................................................................................................................ 8
Introduccin
El objetivo del trabajo era lograr hacer en Logisim un procesador con instrucciones monociclo. El
mismo deba contar con componentes realizados en clase que al final se los hace trabajar en
conjunto para poder realizar un programa dado por la ctedra.
Este informe est destinado a explicar los componentes aadidos a consideracin del grupo, es
decir, los componentes extras, y el programa realizado por el grupo para comprobar el
funcionamiento de los mismos.
Junto a este documento se adjunta en el mail los siguientes archivos:
Instrucciones aadidas
Se decidi aadir las instrucciones CALL y RET, el cdigo de operacin de cada una es 0x07 y 0x08
respectivamente. Al agregar estas instrucciones, se modifica la tabla de la Decoding Unit (DU),
agregando las salidas: PUSH, POP, STACK_DIR, IMM_DIR y JUMP.
Instruccin CALL
Esta instruccin lo que hace es saltar incondicionalmente a la direccin enviada en el Immediate,
la forma de esta instruccin es:
Cdigo de Instruccin Direccin a la que se desea saltar
8bits
8bits
Instruccin RET
La instruccin RET provoca que se vuelva a la ultima direccin apilada en la Pila de Ejecuciones, su
formato es:
Cdigo de Instruccin
8bits
Sin Importancia
8bits
Repercusin en la DU
Los cambios realizados tuvieron una repercusin directa en la DU, teniendo que modificarla al
agregar nuevas salidas a la misma, por lo que la tabla de la DU quedo de la siguiente forma:
Instruccin in_en reg_en alu_op regA_we out_we reg_we imm_en push pop imm_dir stack_dir
IN (0x01)
000
OUT (0x02)
000
MOV(0x03)
000
LDA (0x04)
000
LDI (0x05)
000
CALL(0x07)
000
RET(0x08)
000
SHL(0x20)
001
SHR(0x21)
111
ADD(0x10)
010
SUB (0x11)
011
AND(0x12)
100
OR (0x13)
101
XOR (0x14)
110
Las salidas agregadas son solo utilizadas en CALL y RET, se puede apreciar lo que hace cada una al
leer el funcionamiento de dichas instrucciones.
Componentes Agregadas
Pila de Ejecuciones
La pila de ejecuciones funciona como una Stack normal, tiene una capacidad mxima de 3, es
decir, se pueden apilar hasta tres elementos, posee las funciones push y pop, y siempre tiene el
tope visible al exterior.
Se utiliza para ir guardando las direcciones en las que se utiliza un CALL, por las caractersticas de
la estructura se pueden hacer tantos CALL como la capacidad de la pila, y cada vez que se haga un
RET vuelva al ltimo CALL, es decir, si hago dos CALL seguidos y luego doy un RET, volver a la
instruccin siguiente al ltimo CALL.
Alpha DU y BetaDU
Ests componentes existen por el hecho que la DU es generada utilizando la funcin de cargar una
tabla en Logisim y que te genere el circuito automticamente. Por tener demasiadas salidas se
tuvo que dividir en 2 partes la DU.
0x20
0x21
0x22
0x23
0x24
0x30
0x31
IN r0
IN r1
CALL 0x20
OUT r3
LDA r1
ADD r3, r0
CALL 0x30
OUT r5
RET
IN r5
RET
El mismo, lo que hace es cargar por Input a r0 y r1, luego carga a Reg_A con el valor en r1, le da a
r3 el valor de la suma entre Reg_A y r0, le carga a r5 lo que hay en Input, muestra en Reg_OUT el
calor de r5 y por ltimo muestra en Reg_Out el valor en r3. Entre medio de estas acciones invoca
sucesivos CALL en cadena, llamando primero a una subrutina que suma a los r0 y r1 colocando el
resultado en r3, y luego a otra subrutina que simplemente carga r5.
Este es un programa simple pero demuestra el funcionamiento del CALL y el RET, incluyendo un
anidamiento del mismo, ya que se realiza la suma y se carga r5 en subrutinas distintas que en las
que se los muestra en el Reg_OUT.
Cambios en el diseo
Se opt por hacer una caja que se llame Procesador y ponerla en el main, con la ROM fuera de la
misma, ya que el procesador propiamente dicho no tendra a la ROM en su interior.
Tambin se le hizo una Output que muestra lo contenido en Reg_OUT, esto se realiz para poder
visualizar de forma ms simple los resultados, por esta misma razn, tambin se dejo fuera al
Clock y al Clear.