SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
Sistemas Digitales II(2012)
Informe del Trabajo Final
Fecha: 30 de julio de 2012
Manuel Martínez Anorozo
Pedro Daniel Ramírez López
0.1. Especificación de Diseño
0.1.1. Especificación del Sistema
1. Cada alumno seleccionará un “Conjunto de Instrucciones” de al menos 16
instrucciones distintas (independiente de los modos de direccionamientos y de los
operandos). Debe tener al menos dos instrucciones de cada grupo.
2. Cada instrucción debe tener dos modos de direccionamiento para el operando
fuente.
3. El diseño debe realizarse especificando detalladamente RD y ASM.
4. La Arquitectura de la Ruta de Datos de cada trabajo está especificada en la tabla
adjunta. (pueden adecuar lo que sea necesario a partir del modelo inicial)
5. El ASM puede debe adaptarse usando como ejemplo los modelos estudiados en
clase.
6. El sistema final debe estar funcionando en VHDL con un ejemplo de “Programa
Básico” especificado en la tabla adjunta.
7. Debe realizarse primero un VHDL funcional.
8. Posteriormente un VHDL estructural. Los diferentes componentes, incluyendo la
ALU podrán ser diseñados hasta el nivel funcional. La Maquina de Control Micro-
programada debe realizarse a nivel estructural.
9. Debe tener una fuente de interrupción HW.
PR-MM 1
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
0.2. Diseño de un Procesador de uso General
0.2.1. Especificaciones Generales
Bus de datos : 8 bits. Bus de direcciones : 8 bits.
Modos de direccionamientos :
Implementar dos modos por cada instrucción
Inmediato
Registro
Registro Indirecto
Directo
Indirecto
Tipo Nº de Registros Operandos en Instrucción
b) 4(R0,R1,R2,R3)+A 2(A<=R1+R2)
Cuadro 1: Especificaciones de Diseño.
PR-MM 2
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
0.3. Conjunto de Instrucciones
0.3.1. Instrucciones de Tranferencia de Datos
Load(cargar) - LD La instrucción load(carga) sirve para designar una transferencia
de memoria a un registro de procesador.
Store(almacenar) - ST La instrucción store(almacena) indica la transferencia de un
registro de procesador a una palabra de memoria.
Move(mover) - MOVE La instrucción de move(movimiento) sirve en las computa-
doras con varios registros de procesador para designar una tranferencia entre registros.
También sirve para transferir datos entre registros y memoria y entre dos palabras de
memoria.
Instrucciones de pila
Empujar(push)- PUSH y Desaparecer(pop) - POP Estas instrucciones de pila
transfieren datos entre una pila de memoria y un registro de procesador o memoria.
La operación de empujar coloca un elemento nuevo encima de la pila. La operación
desaparecer remueve un elemento de la pila, de modo que la pila se alza de repente;
sin embargo, nada se empuja ni desaparece físicamente en la pila. Más bien, la pila de
memoria es, en esencia, parte de un espacio de dirección de memoria accedida por una
dirección que siempre se incrementa o disminuye antes o después del acceso a memoria.
El registro que contiene la dirección de la pila se llama apuntador de la pila(SP, Stack
Pointer), pues su valor siempre apunta al elemento de la parte superior de aquélla. Las
operaciones de empujar y desaparecer se implementan disminuyendo o incrementando el
apuntador de la pila.
0.3.2. Instrucciones de Manipulación de Datos
Instrucciones Aritméticas
Increment(incremento) La intrucción increment(incremento) suma uno al valor al-
macenado en un registro o palabra de memoria. Una característica común de la operación
de incremento, al ejecutarse sobre una palabra, es que un número binario que consiste
en unos produce un resultado de ceros cuando se incrementa.
Add(suma) - ADD La intrucción add(suma) realiza la operación de suma sobre dos
registros del procesaor y el resultado deja en un registro no visible para el programador,
llamado ACC(acumulador), se puede traer éste resultado a uno de los registros del proce-
sador por medio de la instrucción MOVE
PR-MM 3
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
Instrucciones de Desplazamiento
Desplazamiento lógico a la izquierda - SHL La instrucción de desplazamiento a
la izquierda hace correr los bits para esa dirección, insertando un bit de cero(0) en el
menos signifiactivo.
0.3.3. Instrucciones de Control de Programa
Salto - JUMP Las instrucción de bifurcación JUMP, es de dirección. Cuando se eje-
cuta, la instrucción de bifurcación provoca una transferencia de la dirección efectiva al
PC. Puesto que el PC contiene la dirección de la siguiente insteucción a ejecutar, ésta se
obtendrá de la localidad especificada por la dirección efectiva.
Llamada(call) - CALL y Retorno(retorno) - RET Las instruciones de llama-
da(call) y retorno(return) se utilizan con procedimientos. Al encontrar la instrucción de
call, se guarga en la pila la dirección del PC de la siguiente instrucción, los valores del
PSR, en la dirección saltada se realiza las intrucciones y luego se vuelva al anterior por
medio de (return), con los valores de PC, PSR sacado de la pila.
Bifurcar si menor - BL(branch if less) y Bifurcar si igual - BEQ(branch if
equal) La instrucción de BEQ realiza una resta entr los operandos y si el resultado es
dero es porque son iguales, con un flags del PSR se detecta ello y se salta a la direccion
especificada, con BL el salto se da por medio de un diferencia entre los operandos, si
existe un prestado en la salida(CARRY), es porque el segundo es menor al primero, esto
se detecta por medio de un flags del PSR, si esto ocurre se salta a la dirección especificada.
0.3.4. Interrupción de Programa - HW
Lo que se realiza es después de ejecutar cada instrucción se revisa si hay interrupción
de hardware, si existe se guardan todos los registros, el PSR, el PC, en la pila para
antender la interrupción, luego se salta a la dirección de servicio de interrupción, una vez
atendida toda, se retorna con los valores guardados en la pila.
PR-MM 4
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
0.4. Ruta de Datos
La ruta de datos se presenta en la figura 1. Se detallará a continuación cada compo-
nente.
R4
R3
R2
R1 R_RD
R_SEL
R_WR
ACC
ACC_LD
ACC_RD
ALU
REG_A
B
PSR
PSR_RD
PSR_LD
PSR_LD1
Memoria de
Instrucciones
A_LD
TEMP TEMP_RD
TEMP_LD
MUX M
PC
PC_RD
PC_LD
PC_CNT
SP
SP_DEC
SP_INC
RESET
AR
AR_LD
MEMORIA
0 1
DIR
M_WR
M_RD
RESET
MUX_MEM
IR
MUX IR
R_SEL
MUX_IR
IR_LD
0 1
7 4| 3 2|1 0
UNIDAD DE
CONTROL
CNTRL[HI|Z|C]
RUTADEDATOS
NEXT_DIR
MUX_SEL
BUSPRINCIPAL
A
Z
C
FUNCT
Buy SmartDraw!- purchased copies print this
document without a watermark.
Visit www.smartdraw.com or call 1-800-768-3729.
Figura 1: Ruta de Datos del Procesador.
0.4.1. Memoria Principal.
La memoria consta de 256 elementos de 8 bits, su salida se encuentra en Alta Impedan-
cia mientras que la señal de load(carga) y read(lectura) se encuentre en valor lógico de 0,
cuando se habilitan una de ellas, se activa la carga o lectura respectivamente, este valor
toma el bus o lee de él.
PR-MM 5
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
0.4.2. PC (program counter)
Este es un registro contador que siempre apunta en la siguiente instrucción de memo-
ria a ejecutar, como todos los otros registros es tri-estado, tiene la característica de
autoincremento, es decir no necesita de la ALU para incrementarse, y puede cargarse
a través del bus principal, esto es para implementar las operaciones de bifurcación de
programa.
0.4.3. AR (address register )
Es uno de los registros (aparte de SP) en donde se cargan direcciones para posterior-
mente escribir o leer en la memoria.
0.4.4. SP (stack pointer)
Registro apuntador(pointer) utilizado para realizar operaciones de pila, su valor es
inicializado a 255, el último elemento de la memoria principal, tiene la capacidad de
incrementarse o decrementarse.
0.4.5. Mux
Es un multiplexor de 2 a 1 de 8 bits, es utilizado para seleccionar que registro, SP o
AR, indicará la dirección de memoria; y también se utiliza para seleccionar entre registro
donde se ejecutará una operación de la memoria de instrucciones.
0.4.6. IR(instruction register)
Registro utilizado para guardar las instrucciones extraídas de la memoria, esta conec-
tada a la unidad de control para tomar el opcode y así saber que instrucción se va a
ejecutar.
0.4.7. Archivo de registros
Son los registros que el programador tendría a disposición para realizar las opera-
ciones, en la palabra de instrucción se tendría que indicar que archivo de registro se
querría utilizar, el selector funciona con la siguiente lógica:
Selector Registro
00 R0
01 R1
10 R3
11 R4
Cuadro 2: Selector de Registros.
PR-MM 6
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
0.4.8. ALU
Esta unidad realiza las operaciones aritméticas y lógicas, una de sus entradas es el
selector de operación que funciona según:
Selector Operación
00 Suma
01 Resta
10 Incremento
11 Correr Izquierda
Cuadro 3: Operaciones con la ALU.
0.4.9. Registros A y TEMP.
Son registros temporales utilizados para poder realizar las operaciones correspondi-
entes, en un entorno donde todos están conectados con todos. Las banderas de estados
también son salidas de esta ALU, es decir si la operación fue cero, negativo, si hubo
overflow , o si existe un acarreo de salida.
0.4.10. PSR
Registro que contiene las banderas de estado de la ALU, éste puede ser cargado
tanto de la ALU, como del bus principal, esto se realizó de esta manera ya que algunas
operaciones requieren que se cargue este registro desde la memoria(stack).
0.4.11. ACC
Registro acumulador, como todas las operaciones son solamente de un operando ,
las operaciones con más de un operando, utilizan como segundo operando y destino este
acumulador, además es donde se deja el valor de cualquier operación y luego con una
instrucción ase lleva ya sea en memoria o en los registros.
PR-MM 7
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
0.5. Unidad de Control
El formato de la palabra de instrucción se muestra a continuación:
Se utilizan 4 bits para especificar 16 operaciones, un operando 2 bits para seleccionar
uno de los 4 registros, y un campo DIR en caso de que se tenga que realizar operaciones
de memoria.
OPCODE OP OP
DIR
Cuadro 4: Formato de Instrucción.
A continuación se muestra la codificación de las operaciones y el tipo de direc-
cionamiento que utiliza cada uno:
Operación OPCODE Modo de Direccionamiento
LD 0000 Directo
ST 0001 Directo
MOV 0010 Registro Directo
ADD 0011 Registro Directo
SUB 0100 Registro Directo
INC 0101 Registro Directo
SHL 0110 Registro Directo
JMP 0111 Directo
BL 1000 Relativo
BEQ 1001 Relativo
CALL 1010 Inmediato
RET 1011 Inmediato
PUSH 1100 Directo
POP 1101 Directo
RETI 1110 -
LDR 1111 Registro
Cuadro 5: Instrucciones del Procesador.
PR-MM 8
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
El diagrama en bloques de la UC con el detector de interrupción es:
CAR ROM7 7S1
S4
D
C2C1 HAB.
Multiplexor
MuxSel
MuxSel
NextDir
111
opcode
0000000
RESET
25
RUTA DE DATOSQ
Q
GRB
CLR
D
CLRI
IE
HI CZ
3
PSR
BOTON
Figura 2: UC con detector de interrupción.
0.6. Codigo C del Algoritmo
{}
//Pseudocodigo
N=0;
suma = 0;
while(N < 3){
num = M[Pd];
valor = division(num); //funcion de division => valor=(128/R)
printf("valor");
suma = suma + valor;
Pd++;
N++;
}
resultado = division(suma); // resultado = (128/suma)
M[Pr] = resultado;
printf("resultado");
PR-MM 9
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
0.7. Assembler del Algoritmo
LD,100 ;ACC <= 20
MOV R0 ;R0 <= 20
PUSH R0 ;guardo en la pila
LD,101 ;ACC <= 4
MOV R0 ;R0 <= 4
PUSH R0 ;guardo en la pila
LD,102 ;ACC <= 12
MOV R0 ;R0 <= 12
PUSH R0 ;guardo en la pila
LDR R1,0 ;Inicializo contador
LDR R2,3 ;Final del contador (N=3)
LDR R3,0 ;Inicializo resultado
star: SUB R1,R2 ;Activa bandera
BL,while ;Si R1<R2, hace el while
PUSH R1
LDR R1,0
ADD R3,R1
POP R1
ST,105 ;Resultado parcial
PUSH R3
POP R0 ;Transferencia de registro
CALL Func ;128/Re
PUSH R1
LDR R1,0
ADD R3,R1
POP R1
ST,105 ;Resultado final
fin: JMP fin ;Termina
while: POP R0 ;recuperamos resistencia salvada en la pila
CALL Func ;funcion de division, retorna el resultado
PUSH R1
LDR R1,0
ADD R0,R1
POP R1
ST,105 ;muestra resultado en pantalla
ADD R0,R3 ;ACC <= R0+R3
MOV R3 ;R3 <= ACC, cargo resultado en R3
INC R1 ;R1 <= R1 + 1
JMP star
PR-MM 10
CYT819 Universidad Católica “Nuestra Señora de Asunción”
Sistemas Digitales II Sede Regional Asunción
Ing. Electrónica Facultad de Ciencias y Tecnología
Semestre VII Departamento de Electrónica e Informática
;Division
Func: PUSH R1 ;salvamos en la pila
PUSH R2 ;salvamos en la pila
PUSH R3 ;salvamos en la pila
LDR R3,1 ;Inicializo contador R3 = "00000001"
LDR R2,1 ;Inicializo los registros R2 = "00000001"
LDR R1,0 ; R1 = "00000000" => Dividendo
DIV: SUB R2,R0 ;ACC <= R2-R0, para activar los flags
BL NEXT ;salta si R2<R0
MOV R2 ;R2 <= ACC (R2-R0)
INC R1 ;Se cumple condicion, se agrega 1 al bit menos significativo
NEXT: SHL R2
SHL R1
INC R3 ;incrementa contador
PUSH R2 ;salvo en la pila el resto
LDR R2,8 ;condicion de fin R2 <=8
SUB R3,R2 ;ACC <= R3-R2, para activar los flags
POP R2 ;Recupara valor de resto en R2
BEQ FIN
JMP DIV ;continua Division
FIN: PUSH R1
POP R0
POP R3 ;recuperamos el valor salvado
POP R2 ;recuperamos valor salvado
POP R1 ;recuperamos valor salvado
RET ;retorna el resultado en R0
PR-MM 11
AR IR
STATE
NEXT STATE
MUXUC
IR(7)
IR(6)
IR(5)
IR(4)
CARRY
ZERO
HI
PC_CNT
PC_LD
PC_RD
AR_LD
R_RD
R_WR
M_RD
M_WR
ACC_LD
ACC_RD
PSR_LD
PSR_RD
PSR_LD1
SP_INC
SP_DEC
IR_LD
TEMP_LD
TEMP_RD
A_LD
MUXMEM
MUXIR
IE
CLRI
T0 T1 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T1 T2 0 X X X X X X X 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
LD T2 T3 1 0 0 0 0 X X X 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
ST T6 1 0 0 0 1 X X X 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
MOV T9 1 0 0 1 0 X X X 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
ADD T10 1 0 0 1 1 X X X 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
SUB T13 1 0 1 0 0 X X X 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
INC T16 1 0 1 0 1 X X X 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
SHL T18 1 0 1 1 0 X X X 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
JMP T20 1 0 1 1 1 X X X 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
BL T22 1 1 0 0 0 X X X 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
BEQ T26 1 1 0 0 1 X X X 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
CALL T30 1 1 0 1 0 X X X 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
RET T33 1 1 0 1 1 X X X 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
PUSH T37 1 1 1 0 0 X X X 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
POP T38 1 1 1 0 1 X X X 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
RETI T40 1 1 1 1 0 X X X 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
LDR T44 1 1 1 1 1 X X X 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
LD0 T3 T4 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LD1 T4 T5 0 X X X X X X X 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
LD2 T5 T46 0 X X X X X X X 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
ST0 T6 T7 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ST1 T7 T8 0 X X X X X X X 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
ST2 T8 T46 0 X X X X X X X 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
MOV0 T9 T46 0 X X X X X X X 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ADD0 T10 T11 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
ADD1 T11 T12 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
ADD2 T12 T46 0 X X X X X X X 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
SUB0 T13 T14 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
SUB1 T14 T15 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0
SUB2 T15 T46 0 X X X X X X X 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
INC0 T16 T17 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0
INC1 T17 T46 0 X X X X X X X 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
SHL0 T18 T19 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0
SHL1 T19 T46 0 X X X X X X X 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
JMP0 T20 T21 0 X X X X X X X 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
JMP1 T21 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
BL T22 T23 0 X X X X 0 X X 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
T24 0 X X X X 1 X X 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
T23 T46 0 X X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T24 T25 0 X X X X X X X 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T25 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
BEQ T26 T27 0 X X X X X 0 X 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
T28 0 X X X X X 1 X 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
T27 T46 0 X X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T28 T29 0 X X X X X X X 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T29 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
CALL0 T30 T31 0 X X X X X X X 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
CALL1 T31 T32 0 X X X X X X X 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0
CALL2 T32 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
RET0 T33 T34 0 X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
RET1 T34 T35 0 X X X X X X X 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
RET2 T35 T36 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RET3 T36 T46 0 X X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PUSH T37 T46 0 X X X X X X X 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
POP0 T38 T39 0 X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
POP1 T39 T46 0 X X X X X X X 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RETI T40 T41 0 X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
T41 T42 0 X X X X X X X 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
T42 T43 0 X X X X X X X 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
T43 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LDR T44 T45 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T45 T46 0 X X X X X X X 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
T46 T0 0 X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
T47 0 X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
INTERRUP T47 T48 0 X X X X X X X 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
T48 T49 0 X X X X X X X 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0
T49 T50 0 X X X X X X X 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
T50 T0 0 X X X X X X X 0 1
OPCode TEMP
FS
SPPSRAcumuladorMemoriaPC
HI
HW
LDR
RETI
POP
PUSH
RET
CALL
BEQ
BL
JMP
SHL
INC
SUB
ADD
MOV
ST
LD
IR <= M[AR]
PC <= PC+1
AR <= PC
PC <= PC+1
AR <= PC
HW
ACC <= M[AR]
AR <= M[AR]
PC <= PC + 1
AR <= PC
HW
M[AR] <= ACC
AR <= M[AR]
R[DIR1] <= ACC
A <= R[ DIR1]
HW
ACC <= TEMP
TEMP <= R[DIR2]+A
A <= R[ DIR1]
ACC <= TEMP
TEMP <= A-R[DIR2]
TEMP <= R[DIR1]+1
R[DIR1] <= TEMP
TEMP <= SHL R[DIR1]
HW
R[DIR1] <= TEMP
AR <= PC
HW
PC <= M[AR]
si AR <= PCC
no
PC <= PC + 1
HW
PC <= M[AR]
siAR <= PC Z
no
PC <= PC+1
HW
PC <= M[AR]
PC <= M[AR]
M[SP] <= PSR
SP <= SP -1
M[SP] <= PC
SP <= SP - 1
AR <= PC
PC <= PC + 1PC <= M[SP]
PSR <= M[SP]
SP <= SP + 1
SP <= SP + 1
M[SP] <= R[ DIR1]
R[DIR1] <= M[SP] SP <= SP + 1
PC <= M[SP]
PSR <= M[SP]
SP <= SP + 1
ACC <= M[SP]
SP <= SP + 1
SP <= SP + 1
R[DIR1] <= M[AR] AR <= PC
PC <= PC + 1
noINI si PC <= INTER
M[SP] <= ACC
SP <= SP-1
M[SP] <= PSR
SP <= SP - 1
M[SP] <= PC
SP <= SP - 1
CLR <= 1
INI
Buy SmartDraw!- purchased copies print this
document without a watermark.
Visit www.smartdraw.com or call 1-800-768-3729.

Más contenido relacionado

La actualidad más candente

Organización y administración de la memoria virtual
Organización y administración de la memoria virtualOrganización y administración de la memoria virtual
Organización y administración de la memoria virtualOscar LS
 
Register transfer &amp; microoperations moris mano ch 04
Register transfer &amp; microoperations    moris mano ch 04Register transfer &amp; microoperations    moris mano ch 04
Register transfer &amp; microoperations moris mano ch 04thearticlenow
 
Introducción a Geometría Computacional
Introducción a  Geometría ComputacionalIntroducción a  Geometría Computacional
Introducción a Geometría ComputacionalMiguel Sancho
 
green computing ppt
green computing pptgreen computing ppt
green computing pptRyan Lie
 
CS304PC:Computer Organization and Architecture Session 8 Address Sequencing.pptx
CS304PC:Computer Organization and Architecture Session 8 Address Sequencing.pptxCS304PC:Computer Organization and Architecture Session 8 Address Sequencing.pptx
CS304PC:Computer Organization and Architecture Session 8 Address Sequencing.pptxAsst.prof M.Gokilavani
 
Programming ARM Cortex-M4 STM32 Nucleo
Programming ARM Cortex-M4  STM32 NucleoProgramming ARM Cortex-M4  STM32 Nucleo
Programming ARM Cortex-M4 STM32 NucleoSanjay Adhikari
 
Ejemplo de Aplicaciones en Weka
Ejemplo de Aplicaciones en WekaEjemplo de Aplicaciones en Weka
Ejemplo de Aplicaciones en WekaRaquel Solano
 
Programacion de sistemas
Programacion de sistemasProgramacion de sistemas
Programacion de sistemasYoly Garcia
 
⭐⭐⭐⭐⭐ SISTEMAS EMBEBIDOS, CAPÍTULO 1
⭐⭐⭐⭐⭐ SISTEMAS EMBEBIDOS, CAPÍTULO 1⭐⭐⭐⭐⭐ SISTEMAS EMBEBIDOS, CAPÍTULO 1
⭐⭐⭐⭐⭐ SISTEMAS EMBEBIDOS, CAPÍTULO 1Victor Asanza
 
Pipelining and ILP (Instruction Level Parallelism)
Pipelining and ILP (Instruction Level Parallelism) Pipelining and ILP (Instruction Level Parallelism)
Pipelining and ILP (Instruction Level Parallelism) A B Shinde
 

La actualidad más candente (20)

De palabras y lenguajes
De palabras y lenguajesDe palabras y lenguajes
De palabras y lenguajes
 
Organización y administración de la memoria virtual
Organización y administración de la memoria virtualOrganización y administración de la memoria virtual
Organización y administración de la memoria virtual
 
U2S2: Memoria Principal (RAM)
U2S2: Memoria Principal (RAM)U2S2: Memoria Principal (RAM)
U2S2: Memoria Principal (RAM)
 
Register transfer &amp; microoperations moris mano ch 04
Register transfer &amp; microoperations    moris mano ch 04Register transfer &amp; microoperations    moris mano ch 04
Register transfer &amp; microoperations moris mano ch 04
 
Pertemuan 5 (memory)
Pertemuan 5 (memory)Pertemuan 5 (memory)
Pertemuan 5 (memory)
 
Risc y Cisc
Risc y CiscRisc y Cisc
Risc y Cisc
 
Introducción a Geometría Computacional
Introducción a  Geometría ComputacionalIntroducción a  Geometría Computacional
Introducción a Geometría Computacional
 
green computing ppt
green computing pptgreen computing ppt
green computing ppt
 
Modos direccionamiento
Modos direccionamientoModos direccionamiento
Modos direccionamiento
 
Assembly ok3
Assembly ok3Assembly ok3
Assembly ok3
 
CS304PC:Computer Organization and Architecture Session 8 Address Sequencing.pptx
CS304PC:Computer Organization and Architecture Session 8 Address Sequencing.pptxCS304PC:Computer Organization and Architecture Session 8 Address Sequencing.pptx
CS304PC:Computer Organization and Architecture Session 8 Address Sequencing.pptx
 
Embedded c
Embedded cEmbedded c
Embedded c
 
Programming ARM Cortex-M4 STM32 Nucleo
Programming ARM Cortex-M4  STM32 NucleoProgramming ARM Cortex-M4  STM32 Nucleo
Programming ARM Cortex-M4 STM32 Nucleo
 
Ejemplo de Aplicaciones en Weka
Ejemplo de Aplicaciones en WekaEjemplo de Aplicaciones en Weka
Ejemplo de Aplicaciones en Weka
 
Programacion de sistemas
Programacion de sistemasProgramacion de sistemas
Programacion de sistemas
 
Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887
 
Embedded C programming session10
Embedded C programming  session10Embedded C programming  session10
Embedded C programming session10
 
⭐⭐⭐⭐⭐ SISTEMAS EMBEBIDOS, CAPÍTULO 1
⭐⭐⭐⭐⭐ SISTEMAS EMBEBIDOS, CAPÍTULO 1⭐⭐⭐⭐⭐ SISTEMAS EMBEBIDOS, CAPÍTULO 1
⭐⭐⭐⭐⭐ SISTEMAS EMBEBIDOS, CAPÍTULO 1
 
Pipelining and ILP (Instruction Level Parallelism)
Pipelining and ILP (Instruction Level Parallelism) Pipelining and ILP (Instruction Level Parallelism)
Pipelining and ILP (Instruction Level Parallelism)
 
1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos
 

Similar a Diseño de un Procesador 8 bits

UNIDADES FUNCIONALES DEL ORDENADOR
UNIDADES FUNCIONALES DEL ORDENADORUNIDADES FUNCIONALES DEL ORDENADOR
UNIDADES FUNCIONALES DEL ORDENADORGovindaRomero
 
Práctica #2 parcial #2 registros del banco
Práctica #2 parcial #2  registros del bancoPráctica #2 parcial #2  registros del banco
Práctica #2 parcial #2 registros del bancoAnibal Ulibarri
 
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
Capacidad de la unidad  de procesamiento (grecia gonzález   30203532)Capacidad de la unidad  de procesamiento (grecia gonzález   30203532)
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)GreciaGonzlez9
 
Unidades funcionales detalle
Unidades funcionales detalleUnidades funcionales detalle
Unidades funcionales detalleConfesorAD
 
Unidad de control y unidad logico-aritmetica
Unidad de control y unidad logico-aritmetica Unidad de control y unidad logico-aritmetica
Unidad de control y unidad logico-aritmetica Andres Hernandez
 
Estructura de computos
Estructura de computosEstructura de computos
Estructura de computosHijole
 
Evolucion De Los Microprocesadores
Evolucion De Los MicroprocesadoresEvolucion De Los Microprocesadores
Evolucion De Los Microprocesadoresguesta60221
 
Programas en lenguaje ensamblador
Programas en lenguaje ensambladorProgramas en lenguaje ensamblador
Programas en lenguaje ensambladorJose Bondia
 
Sistemas Embebidos
Sistemas EmbebidosSistemas Embebidos
Sistemas EmbebidosJorge Garzon
 
Microoperaciones y transferencia de registros.pptx
Microoperaciones y transferencia de registros.pptxMicrooperaciones y transferencia de registros.pptx
Microoperaciones y transferencia de registros.pptxyayopyahir
 
Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Videoconferencias UTPL
 
Arquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransigArquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransigEfrain Zrng
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamientoAlejandro Molina
 
Arquitectura de la cpu
Arquitectura de la cpuArquitectura de la cpu
Arquitectura de la cpuvixtor
 
microprogramación Mplus.pptx
microprogramación Mplus.pptxmicroprogramación Mplus.pptx
microprogramación Mplus.pptxmaria37579
 
Arquitectura de una computadora
Arquitectura de una computadoraArquitectura de una computadora
Arquitectura de una computadorajessiicasaldana
 

Similar a Diseño de un Procesador 8 bits (20)

UNIDADES FUNCIONALES DEL ORDENADOR
UNIDADES FUNCIONALES DEL ORDENADORUNIDADES FUNCIONALES DEL ORDENADOR
UNIDADES FUNCIONALES DEL ORDENADOR
 
Práctica #2 parcial #2 registros del banco
Práctica #2 parcial #2  registros del bancoPráctica #2 parcial #2  registros del banco
Práctica #2 parcial #2 registros del banco
 
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
Capacidad de la unidad  de procesamiento (grecia gonzález   30203532)Capacidad de la unidad  de procesamiento (grecia gonzález   30203532)
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
 
Unidades funcionales detalle
Unidades funcionales detalleUnidades funcionales detalle
Unidades funcionales detalle
 
Unidad de control y unidad logico-aritmetica
Unidad de control y unidad logico-aritmetica Unidad de control y unidad logico-aritmetica
Unidad de control y unidad logico-aritmetica
 
Hernan espinoza 5_b_t#2
Hernan espinoza 5_b_t#2Hernan espinoza 5_b_t#2
Hernan espinoza 5_b_t#2
 
Estructura de computos
Estructura de computosEstructura de computos
Estructura de computos
 
Evolucion De Los Microprocesadores
Evolucion De Los MicroprocesadoresEvolucion De Los Microprocesadores
Evolucion De Los Microprocesadores
 
Programas en lenguaje ensamblador
Programas en lenguaje ensambladorProgramas en lenguaje ensamblador
Programas en lenguaje ensamblador
 
Multiciclo
MulticicloMulticiclo
Multiciclo
 
Sistemas Embebidos
Sistemas EmbebidosSistemas Embebidos
Sistemas Embebidos
 
PROCESADOR
PROCESADORPROCESADOR
PROCESADOR
 
Microoperaciones y transferencia de registros.pptx
Microoperaciones y transferencia de registros.pptxMicrooperaciones y transferencia de registros.pptx
Microoperaciones y transferencia de registros.pptx
 
Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)
 
Arquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransigArquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransig
 
Yeimir rincon 20%
Yeimir rincon 20%Yeimir rincon 20%
Yeimir rincon 20%
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamiento
 
Arquitectura de la cpu
Arquitectura de la cpuArquitectura de la cpu
Arquitectura de la cpu
 
microprogramación Mplus.pptx
microprogramación Mplus.pptxmicroprogramación Mplus.pptx
microprogramación Mplus.pptx
 
Arquitectura de una computadora
Arquitectura de una computadoraArquitectura de una computadora
Arquitectura de una computadora
 

Más de SNPP

RR00X_RESUMEN.pdf
RR00X_RESUMEN.pdfRR00X_RESUMEN.pdf
RR00X_RESUMEN.pdfSNPP
 
RR_TAYI.pdf
RR_TAYI.pdfRR_TAYI.pdf
RR_TAYI.pdfSNPP
 
1. panel de le ds
1. panel de le ds1. panel de le ds
1. panel de le dsSNPP
 
7. incubadora de huevos
7. incubadora de huevos7. incubadora de huevos
7. incubadora de huevosSNPP
 
6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo realSNPP
 
5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feederSNPP
 
3. radar medidor de velocidad
3. radar medidor de velocidad3. radar medidor de velocidad
3. radar medidor de velocidadSNPP
 
2. soft starter monofasico
2. soft starter monofasico2. soft starter monofasico
2. soft starter monofasicoSNPP
 
Operadores y expresiones
Operadores y expresionesOperadores y expresiones
Operadores y expresionesSNPP
 
6.2 cadenas de caracteres
6.2 cadenas de caracteres6.2 cadenas de caracteres
6.2 cadenas de caracteresSNPP
 
6.1 vectores
6.1 vectores6.1 vectores
6.1 vectoresSNPP
 
5.5 instruccion for
5.5 instruccion for5.5 instruccion for
5.5 instruccion forSNPP
 
5.4 instruccion do-while
5.4 instruccion do-while5.4 instruccion do-while
5.4 instruccion do-whileSNPP
 
5.3 instruccion while
5.3 instruccion while5.3 instruccion while
5.3 instruccion whileSNPP
 
5.2 instruccion switch
5.2  instruccion switch5.2  instruccion switch
5.2 instruccion switchSNPP
 
5.1 instruccion if-else
5.1 instruccion if-else5.1 instruccion if-else
5.1 instruccion if-elseSNPP
 
4. entrada y salida de datos
4. entrada y salida de datos4. entrada y salida de datos
4. entrada y salida de datosSNPP
 
3.6 funciones de biblioteca
3.6 funciones de biblioteca3.6 funciones de biblioteca
3.6 funciones de bibliotecaSNPP
 
3.5 operador condicional
3.5 operador condicional3.5 operador condicional
3.5 operador condicionalSNPP
 
2.10 entrada y salida
2.10 entrada y salida2.10 entrada y salida
2.10 entrada y salidaSNPP
 

Más de SNPP (20)

RR00X_RESUMEN.pdf
RR00X_RESUMEN.pdfRR00X_RESUMEN.pdf
RR00X_RESUMEN.pdf
 
RR_TAYI.pdf
RR_TAYI.pdfRR_TAYI.pdf
RR_TAYI.pdf
 
1. panel de le ds
1. panel de le ds1. panel de le ds
1. panel de le ds
 
7. incubadora de huevos
7. incubadora de huevos7. incubadora de huevos
7. incubadora de huevos
 
6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real
 
5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder
 
3. radar medidor de velocidad
3. radar medidor de velocidad3. radar medidor de velocidad
3. radar medidor de velocidad
 
2. soft starter monofasico
2. soft starter monofasico2. soft starter monofasico
2. soft starter monofasico
 
Operadores y expresiones
Operadores y expresionesOperadores y expresiones
Operadores y expresiones
 
6.2 cadenas de caracteres
6.2 cadenas de caracteres6.2 cadenas de caracteres
6.2 cadenas de caracteres
 
6.1 vectores
6.1 vectores6.1 vectores
6.1 vectores
 
5.5 instruccion for
5.5 instruccion for5.5 instruccion for
5.5 instruccion for
 
5.4 instruccion do-while
5.4 instruccion do-while5.4 instruccion do-while
5.4 instruccion do-while
 
5.3 instruccion while
5.3 instruccion while5.3 instruccion while
5.3 instruccion while
 
5.2 instruccion switch
5.2  instruccion switch5.2  instruccion switch
5.2 instruccion switch
 
5.1 instruccion if-else
5.1 instruccion if-else5.1 instruccion if-else
5.1 instruccion if-else
 
4. entrada y salida de datos
4. entrada y salida de datos4. entrada y salida de datos
4. entrada y salida de datos
 
3.6 funciones de biblioteca
3.6 funciones de biblioteca3.6 funciones de biblioteca
3.6 funciones de biblioteca
 
3.5 operador condicional
3.5 operador condicional3.5 operador condicional
3.5 operador condicional
 
2.10 entrada y salida
2.10 entrada y salida2.10 entrada y salida
2.10 entrada y salida
 

Último

IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 

Último (20)

IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 

Diseño de un Procesador 8 bits

  • 1. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática Sistemas Digitales II(2012) Informe del Trabajo Final Fecha: 30 de julio de 2012 Manuel Martínez Anorozo Pedro Daniel Ramírez López 0.1. Especificación de Diseño 0.1.1. Especificación del Sistema 1. Cada alumno seleccionará un “Conjunto de Instrucciones” de al menos 16 instrucciones distintas (independiente de los modos de direccionamientos y de los operandos). Debe tener al menos dos instrucciones de cada grupo. 2. Cada instrucción debe tener dos modos de direccionamiento para el operando fuente. 3. El diseño debe realizarse especificando detalladamente RD y ASM. 4. La Arquitectura de la Ruta de Datos de cada trabajo está especificada en la tabla adjunta. (pueden adecuar lo que sea necesario a partir del modelo inicial) 5. El ASM puede debe adaptarse usando como ejemplo los modelos estudiados en clase. 6. El sistema final debe estar funcionando en VHDL con un ejemplo de “Programa Básico” especificado en la tabla adjunta. 7. Debe realizarse primero un VHDL funcional. 8. Posteriormente un VHDL estructural. Los diferentes componentes, incluyendo la ALU podrán ser diseñados hasta el nivel funcional. La Maquina de Control Micro- programada debe realizarse a nivel estructural. 9. Debe tener una fuente de interrupción HW. PR-MM 1
  • 2. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática 0.2. Diseño de un Procesador de uso General 0.2.1. Especificaciones Generales Bus de datos : 8 bits. Bus de direcciones : 8 bits. Modos de direccionamientos : Implementar dos modos por cada instrucción Inmediato Registro Registro Indirecto Directo Indirecto Tipo Nº de Registros Operandos en Instrucción b) 4(R0,R1,R2,R3)+A 2(A<=R1+R2) Cuadro 1: Especificaciones de Diseño. PR-MM 2
  • 3. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática 0.3. Conjunto de Instrucciones 0.3.1. Instrucciones de Tranferencia de Datos Load(cargar) - LD La instrucción load(carga) sirve para designar una transferencia de memoria a un registro de procesador. Store(almacenar) - ST La instrucción store(almacena) indica la transferencia de un registro de procesador a una palabra de memoria. Move(mover) - MOVE La instrucción de move(movimiento) sirve en las computa- doras con varios registros de procesador para designar una tranferencia entre registros. También sirve para transferir datos entre registros y memoria y entre dos palabras de memoria. Instrucciones de pila Empujar(push)- PUSH y Desaparecer(pop) - POP Estas instrucciones de pila transfieren datos entre una pila de memoria y un registro de procesador o memoria. La operación de empujar coloca un elemento nuevo encima de la pila. La operación desaparecer remueve un elemento de la pila, de modo que la pila se alza de repente; sin embargo, nada se empuja ni desaparece físicamente en la pila. Más bien, la pila de memoria es, en esencia, parte de un espacio de dirección de memoria accedida por una dirección que siempre se incrementa o disminuye antes o después del acceso a memoria. El registro que contiene la dirección de la pila se llama apuntador de la pila(SP, Stack Pointer), pues su valor siempre apunta al elemento de la parte superior de aquélla. Las operaciones de empujar y desaparecer se implementan disminuyendo o incrementando el apuntador de la pila. 0.3.2. Instrucciones de Manipulación de Datos Instrucciones Aritméticas Increment(incremento) La intrucción increment(incremento) suma uno al valor al- macenado en un registro o palabra de memoria. Una característica común de la operación de incremento, al ejecutarse sobre una palabra, es que un número binario que consiste en unos produce un resultado de ceros cuando se incrementa. Add(suma) - ADD La intrucción add(suma) realiza la operación de suma sobre dos registros del procesaor y el resultado deja en un registro no visible para el programador, llamado ACC(acumulador), se puede traer éste resultado a uno de los registros del proce- sador por medio de la instrucción MOVE PR-MM 3
  • 4. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática Instrucciones de Desplazamiento Desplazamiento lógico a la izquierda - SHL La instrucción de desplazamiento a la izquierda hace correr los bits para esa dirección, insertando un bit de cero(0) en el menos signifiactivo. 0.3.3. Instrucciones de Control de Programa Salto - JUMP Las instrucción de bifurcación JUMP, es de dirección. Cuando se eje- cuta, la instrucción de bifurcación provoca una transferencia de la dirección efectiva al PC. Puesto que el PC contiene la dirección de la siguiente insteucción a ejecutar, ésta se obtendrá de la localidad especificada por la dirección efectiva. Llamada(call) - CALL y Retorno(retorno) - RET Las instruciones de llama- da(call) y retorno(return) se utilizan con procedimientos. Al encontrar la instrucción de call, se guarga en la pila la dirección del PC de la siguiente instrucción, los valores del PSR, en la dirección saltada se realiza las intrucciones y luego se vuelva al anterior por medio de (return), con los valores de PC, PSR sacado de la pila. Bifurcar si menor - BL(branch if less) y Bifurcar si igual - BEQ(branch if equal) La instrucción de BEQ realiza una resta entr los operandos y si el resultado es dero es porque son iguales, con un flags del PSR se detecta ello y se salta a la direccion especificada, con BL el salto se da por medio de un diferencia entre los operandos, si existe un prestado en la salida(CARRY), es porque el segundo es menor al primero, esto se detecta por medio de un flags del PSR, si esto ocurre se salta a la dirección especificada. 0.3.4. Interrupción de Programa - HW Lo que se realiza es después de ejecutar cada instrucción se revisa si hay interrupción de hardware, si existe se guardan todos los registros, el PSR, el PC, en la pila para antender la interrupción, luego se salta a la dirección de servicio de interrupción, una vez atendida toda, se retorna con los valores guardados en la pila. PR-MM 4
  • 5. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática 0.4. Ruta de Datos La ruta de datos se presenta en la figura 1. Se detallará a continuación cada compo- nente. R4 R3 R2 R1 R_RD R_SEL R_WR ACC ACC_LD ACC_RD ALU REG_A B PSR PSR_RD PSR_LD PSR_LD1 Memoria de Instrucciones A_LD TEMP TEMP_RD TEMP_LD MUX M PC PC_RD PC_LD PC_CNT SP SP_DEC SP_INC RESET AR AR_LD MEMORIA 0 1 DIR M_WR M_RD RESET MUX_MEM IR MUX IR R_SEL MUX_IR IR_LD 0 1 7 4| 3 2|1 0 UNIDAD DE CONTROL CNTRL[HI|Z|C] RUTADEDATOS NEXT_DIR MUX_SEL BUSPRINCIPAL A Z C FUNCT Buy SmartDraw!- purchased copies print this document without a watermark. Visit www.smartdraw.com or call 1-800-768-3729. Figura 1: Ruta de Datos del Procesador. 0.4.1. Memoria Principal. La memoria consta de 256 elementos de 8 bits, su salida se encuentra en Alta Impedan- cia mientras que la señal de load(carga) y read(lectura) se encuentre en valor lógico de 0, cuando se habilitan una de ellas, se activa la carga o lectura respectivamente, este valor toma el bus o lee de él. PR-MM 5
  • 6. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática 0.4.2. PC (program counter) Este es un registro contador que siempre apunta en la siguiente instrucción de memo- ria a ejecutar, como todos los otros registros es tri-estado, tiene la característica de autoincremento, es decir no necesita de la ALU para incrementarse, y puede cargarse a través del bus principal, esto es para implementar las operaciones de bifurcación de programa. 0.4.3. AR (address register ) Es uno de los registros (aparte de SP) en donde se cargan direcciones para posterior- mente escribir o leer en la memoria. 0.4.4. SP (stack pointer) Registro apuntador(pointer) utilizado para realizar operaciones de pila, su valor es inicializado a 255, el último elemento de la memoria principal, tiene la capacidad de incrementarse o decrementarse. 0.4.5. Mux Es un multiplexor de 2 a 1 de 8 bits, es utilizado para seleccionar que registro, SP o AR, indicará la dirección de memoria; y también se utiliza para seleccionar entre registro donde se ejecutará una operación de la memoria de instrucciones. 0.4.6. IR(instruction register) Registro utilizado para guardar las instrucciones extraídas de la memoria, esta conec- tada a la unidad de control para tomar el opcode y así saber que instrucción se va a ejecutar. 0.4.7. Archivo de registros Son los registros que el programador tendría a disposición para realizar las opera- ciones, en la palabra de instrucción se tendría que indicar que archivo de registro se querría utilizar, el selector funciona con la siguiente lógica: Selector Registro 00 R0 01 R1 10 R3 11 R4 Cuadro 2: Selector de Registros. PR-MM 6
  • 7. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática 0.4.8. ALU Esta unidad realiza las operaciones aritméticas y lógicas, una de sus entradas es el selector de operación que funciona según: Selector Operación 00 Suma 01 Resta 10 Incremento 11 Correr Izquierda Cuadro 3: Operaciones con la ALU. 0.4.9. Registros A y TEMP. Son registros temporales utilizados para poder realizar las operaciones correspondi- entes, en un entorno donde todos están conectados con todos. Las banderas de estados también son salidas de esta ALU, es decir si la operación fue cero, negativo, si hubo overflow , o si existe un acarreo de salida. 0.4.10. PSR Registro que contiene las banderas de estado de la ALU, éste puede ser cargado tanto de la ALU, como del bus principal, esto se realizó de esta manera ya que algunas operaciones requieren que se cargue este registro desde la memoria(stack). 0.4.11. ACC Registro acumulador, como todas las operaciones son solamente de un operando , las operaciones con más de un operando, utilizan como segundo operando y destino este acumulador, además es donde se deja el valor de cualquier operación y luego con una instrucción ase lleva ya sea en memoria o en los registros. PR-MM 7
  • 8. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática 0.5. Unidad de Control El formato de la palabra de instrucción se muestra a continuación: Se utilizan 4 bits para especificar 16 operaciones, un operando 2 bits para seleccionar uno de los 4 registros, y un campo DIR en caso de que se tenga que realizar operaciones de memoria. OPCODE OP OP DIR Cuadro 4: Formato de Instrucción. A continuación se muestra la codificación de las operaciones y el tipo de direc- cionamiento que utiliza cada uno: Operación OPCODE Modo de Direccionamiento LD 0000 Directo ST 0001 Directo MOV 0010 Registro Directo ADD 0011 Registro Directo SUB 0100 Registro Directo INC 0101 Registro Directo SHL 0110 Registro Directo JMP 0111 Directo BL 1000 Relativo BEQ 1001 Relativo CALL 1010 Inmediato RET 1011 Inmediato PUSH 1100 Directo POP 1101 Directo RETI 1110 - LDR 1111 Registro Cuadro 5: Instrucciones del Procesador. PR-MM 8
  • 9. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática El diagrama en bloques de la UC con el detector de interrupción es: CAR ROM7 7S1 S4 D C2C1 HAB. Multiplexor MuxSel MuxSel NextDir 111 opcode 0000000 RESET 25 RUTA DE DATOSQ Q GRB CLR D CLRI IE HI CZ 3 PSR BOTON Figura 2: UC con detector de interrupción. 0.6. Codigo C del Algoritmo {} //Pseudocodigo N=0; suma = 0; while(N < 3){ num = M[Pd]; valor = division(num); //funcion de division => valor=(128/R) printf("valor"); suma = suma + valor; Pd++; N++; } resultado = division(suma); // resultado = (128/suma) M[Pr] = resultado; printf("resultado"); PR-MM 9
  • 10. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática 0.7. Assembler del Algoritmo LD,100 ;ACC <= 20 MOV R0 ;R0 <= 20 PUSH R0 ;guardo en la pila LD,101 ;ACC <= 4 MOV R0 ;R0 <= 4 PUSH R0 ;guardo en la pila LD,102 ;ACC <= 12 MOV R0 ;R0 <= 12 PUSH R0 ;guardo en la pila LDR R1,0 ;Inicializo contador LDR R2,3 ;Final del contador (N=3) LDR R3,0 ;Inicializo resultado star: SUB R1,R2 ;Activa bandera BL,while ;Si R1<R2, hace el while PUSH R1 LDR R1,0 ADD R3,R1 POP R1 ST,105 ;Resultado parcial PUSH R3 POP R0 ;Transferencia de registro CALL Func ;128/Re PUSH R1 LDR R1,0 ADD R3,R1 POP R1 ST,105 ;Resultado final fin: JMP fin ;Termina while: POP R0 ;recuperamos resistencia salvada en la pila CALL Func ;funcion de division, retorna el resultado PUSH R1 LDR R1,0 ADD R0,R1 POP R1 ST,105 ;muestra resultado en pantalla ADD R0,R3 ;ACC <= R0+R3 MOV R3 ;R3 <= ACC, cargo resultado en R3 INC R1 ;R1 <= R1 + 1 JMP star PR-MM 10
  • 11. CYT819 Universidad Católica “Nuestra Señora de Asunción” Sistemas Digitales II Sede Regional Asunción Ing. Electrónica Facultad de Ciencias y Tecnología Semestre VII Departamento de Electrónica e Informática ;Division Func: PUSH R1 ;salvamos en la pila PUSH R2 ;salvamos en la pila PUSH R3 ;salvamos en la pila LDR R3,1 ;Inicializo contador R3 = "00000001" LDR R2,1 ;Inicializo los registros R2 = "00000001" LDR R1,0 ; R1 = "00000000" => Dividendo DIV: SUB R2,R0 ;ACC <= R2-R0, para activar los flags BL NEXT ;salta si R2<R0 MOV R2 ;R2 <= ACC (R2-R0) INC R1 ;Se cumple condicion, se agrega 1 al bit menos significativo NEXT: SHL R2 SHL R1 INC R3 ;incrementa contador PUSH R2 ;salvo en la pila el resto LDR R2,8 ;condicion de fin R2 <=8 SUB R3,R2 ;ACC <= R3-R2, para activar los flags POP R2 ;Recupara valor de resto en R2 BEQ FIN JMP DIV ;continua Division FIN: PUSH R1 POP R0 POP R3 ;recuperamos el valor salvado POP R2 ;recuperamos valor salvado POP R1 ;recuperamos valor salvado RET ;retorna el resultado en R0 PR-MM 11
  • 12. AR IR STATE NEXT STATE MUXUC IR(7) IR(6) IR(5) IR(4) CARRY ZERO HI PC_CNT PC_LD PC_RD AR_LD R_RD R_WR M_RD M_WR ACC_LD ACC_RD PSR_LD PSR_RD PSR_LD1 SP_INC SP_DEC IR_LD TEMP_LD TEMP_RD A_LD MUXMEM MUXIR IE CLRI T0 T1 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T1 T2 0 X X X X X X X 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 LD T2 T3 1 0 0 0 0 X X X 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 ST T6 1 0 0 0 1 X X X 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 MOV T9 1 0 0 1 0 X X X 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 ADD T10 1 0 0 1 1 X X X 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 SUB T13 1 0 1 0 0 X X X 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 INC T16 1 0 1 0 1 X X X 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 SHL T18 1 0 1 1 0 X X X 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 JMP T20 1 0 1 1 1 X X X 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 BL T22 1 1 0 0 0 X X X 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 BEQ T26 1 1 0 0 1 X X X 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 CALL T30 1 1 0 1 0 X X X 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 RET T33 1 1 0 1 1 X X X 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 PUSH T37 1 1 1 0 0 X X X 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 POP T38 1 1 1 0 1 X X X 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 RETI T40 1 1 1 1 0 X X X 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 LDR T44 1 1 1 1 1 X X X 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 LD0 T3 T4 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 LD1 T4 T5 0 X X X X X X X 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 LD2 T5 T46 0 X X X X X X X 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 ST0 T6 T7 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ST1 T7 T8 0 X X X X X X X 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 ST2 T8 T46 0 X X X X X X X 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 MOV0 T9 T46 0 X X X X X X X 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ADD0 T10 T11 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 ADD1 T11 T12 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 ADD2 T12 T46 0 X X X X X X X 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 SUB0 T13 T14 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 SUB1 T14 T15 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 SUB2 T15 T46 0 X X X X X X X 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 INC0 T16 T17 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 INC1 T17 T46 0 X X X X X X X 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 SHL0 T18 T19 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 SHL1 T19 T46 0 X X X X X X X 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 JMP0 T20 T21 0 X X X X X X X 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 JMP1 T21 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 BL T22 T23 0 X X X X 0 X X 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 T24 0 X X X X 1 X X 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 T23 T46 0 X X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T24 T25 0 X X X X X X X 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T25 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 BEQ T26 T27 0 X X X X X 0 X 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 T28 0 X X X X X 1 X 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 T27 T46 0 X X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T28 T29 0 X X X X X X X 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T29 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 CALL0 T30 T31 0 X X X X X X X 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 CALL1 T31 T32 0 X X X X X X X 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 CALL2 T32 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 RET0 T33 T34 0 X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 RET1 T34 T35 0 X X X X X X X 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 RET2 T35 T36 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RET3 T36 T46 0 X X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PUSH T37 T46 0 X X X X X X X 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 POP0 T38 T39 0 X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 POP1 T39 T46 0 X X X X X X X 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RETI T40 T41 0 X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 T41 T42 0 X X X X X X X 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 T42 T43 0 X X X X X X X 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 T43 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 LDR T44 T45 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T45 T46 0 X X X X X X X 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 T46 T0 0 X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 T47 0 X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 INTERRUP T47 T48 0 X X X X X X X 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 T48 T49 0 X X X X X X X 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 T49 T50 0 X X X X X X X 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 T50 T0 0 X X X X X X X 0 1 OPCode TEMP FS SPPSRAcumuladorMemoriaPC
  • 13. HI HW LDR RETI POP PUSH RET CALL BEQ BL JMP SHL INC SUB ADD MOV ST LD IR <= M[AR] PC <= PC+1 AR <= PC PC <= PC+1 AR <= PC HW ACC <= M[AR] AR <= M[AR] PC <= PC + 1 AR <= PC HW M[AR] <= ACC AR <= M[AR] R[DIR1] <= ACC A <= R[ DIR1] HW ACC <= TEMP TEMP <= R[DIR2]+A A <= R[ DIR1] ACC <= TEMP TEMP <= A-R[DIR2] TEMP <= R[DIR1]+1 R[DIR1] <= TEMP TEMP <= SHL R[DIR1] HW R[DIR1] <= TEMP AR <= PC HW PC <= M[AR] si AR <= PCC no PC <= PC + 1 HW PC <= M[AR] siAR <= PC Z no PC <= PC+1 HW PC <= M[AR] PC <= M[AR] M[SP] <= PSR SP <= SP -1 M[SP] <= PC SP <= SP - 1 AR <= PC PC <= PC + 1PC <= M[SP] PSR <= M[SP] SP <= SP + 1 SP <= SP + 1 M[SP] <= R[ DIR1] R[DIR1] <= M[SP] SP <= SP + 1 PC <= M[SP] PSR <= M[SP] SP <= SP + 1 ACC <= M[SP] SP <= SP + 1 SP <= SP + 1 R[DIR1] <= M[AR] AR <= PC PC <= PC + 1 noINI si PC <= INTER M[SP] <= ACC SP <= SP-1 M[SP] <= PSR SP <= SP - 1 M[SP] <= PC SP <= SP - 1 CLR <= 1 INI Buy SmartDraw!- purchased copies print this document without a watermark. Visit www.smartdraw.com or call 1-800-768-3729.