Curso:
Microprocesadores
Docente:
Mg. Carrasco Poblete, Edwin
Alumnos: Cdigos:
Delgado Moscoso Angela 143831
Alanya Pantoja Jos Antonio 144997
Cusco-Per
2017
CONTENIDO
Introduccin ........................................................................................................................................4
Captulo I ASPECTOS GENERALES .....................................................................................................5
1.1 Presentacin..............................................................................................................................5
1.2 Objetivo General .......................................................................................................................5
1.3 Objeticos Especficos .................................................................................................................5
1.4 Delimitaciones...........................................................................................................................5
1.5 Limitaciones ..............................................................................................................................5
Captulo II MARCO TEORICO ............................................................................................................6
2.1 Unidad Central de Procesamiento ............................................................................................6
2.1.1 Unidad de Control Microprogramada ................................................................................7
2.2 Simulador ..................................................................................................................................8
Captulo III DESARROLLO DEL PROYECTO.........................................................................................9
3.1 Descripcin del Algoritmo .........................................................................................................9
3.2 Buses de Datos y Direccin .....................................................................................................10
3.2.1 Bus de Datos.....................................................................................................................10
3.2.2 Bus de Direcciones ...........................................................................................................11
3.3 Unidad de Control ...................................................................................................................12
3.3.1 Micromemoria .................................................................................................................12
3.3.2 Multiplexor de condiciones ..............................................................................................13
3.3.3 Multiplexor de direcciones ..............................................................................................15
3.3.4 Contador de programa .....................................................................................................16
3.3.5 Registro sincronizador......................................................................................................17
3.3.6 Habilitador de paso de seal ............................................................................................19
3.3.7Registro desplazamiento - Inicio Fin del programa...........................................................19
3.4 Unidad de Proceso ..................................................................................................................21
3.4.1 Registros A y B ..................................................................................................................21
3.4.2 Registro C .........................................................................................................................23
3.4.3 Multiplexor 1 ....................................................................................................................23
3.4.4 Multiplexor 2 ....................................................................................................................24
3.4.5 Multiplexor del contador .................................................................................................25
3.4.6 Registro de desplazamiento .............................................................................................26
3.4.7 Contador ..........................................................................................................................28
3.4.8 Multiplexor de seleccin ..................................................................................................29
3.4.9 Registro desplazamiento Registro D ................................................................................29
2
3.4.10 Unidad aritmtico lgica ................................................................................................30
3.4.11 Control de Operacin ALU .............................................................................................31
3.5 CPU implementado .................................................................................................................33
3.6 Microprograma .......................................................................................................................34
3.7 Instrucciones adicionales ........................................................................................................35
CONCLUSIONES .................................................................................................................................36
RECOMENDACIONES .........................................................................................................................36
BIBLIOGRAFIA ....................................................................................................................................37
3
Introduccin
La utilizacin de las matemticas forma parte de nuestra vida cotidiana, desde el manejo de
operaciones bsicas hasta operaciones ms complejas. Entonces, para que estas tengan una
utilizacin prctica se dio paso a la implementacin en mquinas que pasaron desde tubos de
vaco hasta lo que ahora conocemos como circuitos a nivel microscpico que permiten la solucin
a una gran variedad de problemas de lgica secuencial y combinacional.
Actualmente los procesadores se valen de las operaciones matemticas sencillas para poder
ejecutar instrucciones mandadas por el usuario. Operaciones matemticas como la suma o la
resta son usadas para realizar operaciones ms complejas como la multiplicacin o la divisin.
En este trabajo se implementa la operacin de la divisin usando el algoritmo de divisin sin
restauracin sobre una base que en un principio contena operaciones de suma y multiplicacin.
4
Captulo I ASPECTOS GENERALES
1.1 Presentacin
El presente informe detalla la implementacin de la operacin de divisin sobre un diseo previo
que contena operaciones de suma y multiplicacin de 4 bits. La operacin de divisin se realiza
usando el algoritmo de divisin sin restauracin con un dividendo de 8 bits y un divisor de 4 bits.
Toda la implementacin del presente trabajo se realiz utilizando el software: Proteus
Professional 8 y para dar lectura y escritura de las lneas del microprograma se utiliz: Hex
Editor Neo.
La ejecucin de esta operacin hace uso de los registros A y B (dividendo, divisor) que se
encuentran construidos en el diseo inicial. El resultado(Cociente) se muestra en el registro D.
Todo el proceso de diseo e implementacin fue realizado completamente por nosotros haciendo
uso de conocimientos adquiridos en los cursos de microelectrnica, arquitectura del computador
y microprocesadores.
1.4 Delimitaciones
La divisin puede realizarse de distintas maneras como: restas sucesivas, divisin con restauracin
y sin restauracin, etc. El presente proyecto se enfoca en la implementacin de la divisin
reutilizando los componentes de la suma y multiplicacin e incluyndose en nuestros
requerimientos la operacin de sustraccin.
1.5 Limitaciones
-EL proyecto se ve limitado al uso de los circuitos integrados y componentes ofrecidos por la
plataforma de simulacin.
-Contamos con tiempo reducido para el diseo, desarrollo, implementacin y pruebas.
5
Captulo II MARCO TEORICO
Unidad aritmtico lgica: Realiza las operaciones aritmticas como la suma, operacin booleana
AND que son necesarias para llevar a cabo las instrucciones.
Figura 2.1. Organizacin simple de un computador con una CPU y dos perifricos. [1]
6
2.1.1 Unidad de Control Microprogramada
La unidad de control microprogramada se encarga de interpretar y ejecutar las instrucciones
almacenadas en la memoria principal y genera las seales de control necesarias para ejecutarlas.
Sus aspectos son:
Tareas:
o Secuenciamiento de las micro-instrucciones
o Unidad de proceso: Contiene el ALU (unidad aritmtico lgica) que se encarga de realizar las
operaciones aritmticas, adems de contener los registros de los operandos, buffers temporales y
dems registros necesarios para el control y feedback de la unidad de control.
Secuenciamiento: El secuenciamiento de la unidad de control se da por incremento de la
direccin actual o por salto condicional dependiendo del feedback que proporcione el
microprograma en ejecucin.
7
Organizacin: El siguiente diagrama muestra una organizacin simple de una unidad de
control.
Figura 2.2. Diagrama de organizacin de una unidad de control. Fuente: Anterior Informe
2.2 Simulador
Para el desarrollo del proyecto utilizamos el programa Proteus Professional 8, que permite un
completo entorno de diseo para realizar todas las tareas de diseo de circuitos electrnicos,
tales como: dibujo de esquemas de circuitos, simulacin interactiva de circuitos analgicos,
digitales y con microcontroladores, con animacin en tiempo real adems de diseo de circuitos
impresos. Cuenta con una extensa librera de componentes genricos y
especficos.(http://intron.blogspot.es/1448652854/uso-de-proteus-profesional-8/)
8
Captulo III DESARROLLO DEL PROYECTO
3.1 Descripcin del Algoritmo
9
3.2 Buses de Datos y Direccin
10
3.2.2 Bus de Direcciones
El bus de direcciones se utiliza para el direccionamiento de los algoritmos
implementados en la micromemoria. A continuacin, veremos un esquema del bus.
11
3.3 Unidad de Control
La unidad de control indica al camino de datos lo que tiene que hacer, cada ciclo de reloj,
durante la ejecucin de las instrucciones. [3]
3.3.1 Micromemoria
Utiliza cuatro memorias EPPROM 2732 de ocho bits, haciendo un total de 32 bits siendo
el tamao necesario para almacenar el microprograma de las operacin de suma,
multiplicacin y divisin.
Figura 3.3. Micromemoria de la unidad de control conformada por 4 memorias EPROM. Fuente:
Propia
12
2732 (UV - EPROM-8bits)
Pin Detalle
E Entrada de habilitacin
DQ0 -
VSS Tierra
13
4512 (Multiplexor de 8 canales)
Pin Detalle
D0 - D7 Canales de entrada
INH Inhibidor
-OE Deshabilitador
Y Seleccionador de salida
14
3.3.3 Multiplexor de direcciones
El multiplexor de direcciones 74157. Encargado de controlar si se realiza un salto o se
utiliza el program counter. [2]
Pin Detalle
-E Habilitador de salida
nY Salida de datos
-A/B Na nB -E Y
X X X 1 0
0 1 X 0 1
0 0 X 0 0
1 X 1 0 1
1 X 0 0 0
15
3.3.4 Contador de programa
Registro contador 74161 de cuatro bits, se puede cargar informacin en l y empezar la
cuenta desde el mismo o restaurarlo (valor 0) y empezar a contar. [2]
Pin Detalle
CLK Reloj
MR Reset principal
16
74161 (Contador sncrono de 4 bits de alta velocidad)
0 X X X Resetear contador
1 0 X X Cargar D0 D3
1 1 1 1 Incrementar contador
1 1 0 X Detener contador
1 1 X 0 Detener contador
17
74173 (Registro de 4 bits)
Pin Detalle
D0 - D3 Entrada de datos
CLK Reloj
MR Reset de memoria
X X 1 Resetea la salida
1 X X Inhabilita la salida
18
3.3.6 Habilitador de paso de seal
Habilitador de paso de seal. Se utilizan tribuffers para evitar un corto circuito por el cruce
de la seal del bus de direcciones con el direccionamiento de la micro memoria. [2]
19
Figura 3.9. Diagrama de la unidad de control implementada. Fuente: Propia
20
3.4 Unidad de Proceso
La unidad de proceso o procesamiento se encarga de ejecutar las tareas que le encomienda
la unidad de control. [5]
3.4.1 Registros A y B
Se utiliz dos registros 74173 de cuatro bits para A y uno para B. El motivo es que cuando
se realice la multiplicacin, se desea que el resultado se guarde en el registro A.
Registro A Registro B
Pin Detalle
D0 - D3 Entrada de datos
CLK Reloj
MR Reset de memoria
21
74173 (Registro de 4 bits)
X X 1 Resetea la salida
1 X X Inhabilita la salida
22
3.4.2 Registro C
Tambin se requiri dos registros 74173. Este fue utilizados a manera de registro
temporal a conveniencia.
3.4.3 Multiplexor 1
Multiplexor ctuple dos a uno. Se utiliz dos multiplexores cudruples dos a uno
74157.
Pin Detalle
-E Habilitador de salida
nY Salida de datos
23
74157 (Multiplexor cudruple 2 a
1)
-A/B Na nB -E Y
X X X 1 0
0 1 X 0 1
0 0 X 0 0
1 X 1 0 1
1 X 0 0 0
3.4.4 Multiplexor 2
Multiplexor ctuple dos a uno. Este se utiliz para operar con el registro de
desplazamiento (algoritmo de multiplicacin) o con el registro B (algoritmo de la
suma).
24
3.4.5 Multiplexor del contador
Multiplexor doble cuatro a uno. Un multiplexor 74153 para decidir la operacin
segn los bits de B correspondientes al contador.
Pin Detalle
A, B Selectores de Entrada
25
74153 (Multiplexor dual 4 a 1)
B A D0 D1 D2 D3 -E Y
X X X X X X 1 0
0 0 0 X X X 0 0
0 0 1 X X X 0 1
0 1 X 0 X X 0 0
0 1 X 1 X X 0 1
1 0 X X 0 X 0 0
1 0 X X 1 X 0 1
1 1 X X X 0 0 0
1 1 X X X 1 0 1
26
74199 (REGISTRO DE DESPLAZAMIENTO-8bits)
Pin Detalle
D0 - D7 Entrada de datos
Q0 - Q7 Salida de datos
CLK Reloj
-
CIN
S/L H
MR Instruccin
27
3.4.7 Contador
Contador 74LS590 encargado de contar para decidir el bit de B que ser evaluado
para la condicin.
28
3.4.8 Multiplexor de seleccin
Multiplexor de seleccin 74157 de 8 bits. Selecciona entre el registro A o el registro B
para la entrada del ALU.
29
3.4.10 Unidad aritmtico lgica
Unidad Aritmtico-Lgica de ocho bits. Se utiliz dos ALU 74LS181 de cuatro bits
cuyo cdigo de suma es 1001. Encargado de sumar los datos para efectuar el
algoritmo.
Pin Detalle
A0 - A3 Entrada de operandos
B0 - B3 Entrada de operandos
F0 - F3 Salida de funciones
CN Entrada de acarreo
30
3.4.11 Control de Operacin ALU
Si se desea realizar la operacin de resta se procede a invertir los valores de la
seleccin de operacin del ALU.
31
Figura 3.18. Diagrama de la unidad de proceso implementada. Fuente: Propia
32
3.5 CPU implementado
33
3.6 Microprograma
Multiplicacin Suma
34
3.7 Instrucciones adicionales
Los cdigos que se muestran son los utilizados para las operaciones respectivas. Se elimin el
bit C3 ya que era necesario ocupar su lugar con otras condiciones de salto ms importantes.
35
CONCLUSIONES
Implementar una CPU con varias operaciones matemticas requiere no solo de
conocimientos de programacin sino de conocimientos de manipulacin de bits y
electrnica bsica.
Una unidad de control microprogramada es ms difcil de disear e implementar, pero
resulta mucho ms verstil y fcil de alterar que una unidad de control cableada.
El algoritmo de divisin requiere de ms saltos que el de multiplicacin haciendo que la
escritura del microprograma sea una tarea ms laboriosa, ya que depende el octavo bit
del shift de A para realizar la operacin de adicin o sustraccin.
El algoritmo de multiplicacin por desplazamiento y sumas sucesivas prueba ser eficiente
y fcil de implementar, ya que no necesitamos acarrear resultados como en un modelo
de multiplicacin clsico.
A pesar de ser un modelo muy bsico, y el nivel de dificultad muy bajo, tom mucho
tiempo implementar las partes y combinarlas.
RECOMENDACIONES
La transicin entre estados suele dar avisos de error en la simulacin y en ocasiones
puede borrar datos inesperadamente de los registros. La solucin a esto es usar
resistencias pull-up y pull-down para evitar este tipo de errores.
El uso de las hojas de datos de cada componente es muy necesario para la manipulacin
del mismo ya que un error en alguna de estas podra causar datos errneos.
Se requiere bastante detalle y cuidado al realizar la configuracin de las memorias de
control (EPROM) para obtener los resultados deseados, ya que, al tratarse de comandos
binarios en ocasiones muy extensos, es muy fcil el cometer errores de escritura.
En la implementacin, el uso de los componentes debe ser muy claro y en lo posible estar
documentado. Esto ayuda a una buena composicin entre ellos.
36
BIBLIOGRAFIA
[4] A. Barkalov, Logic synthesis for FSM based control units, Berlin: springer, 2009.
37