You are on page 1of 6

ISSN: 1692-7257

Revista Colombiana de
Tecnologas de Avanzada

MICROPROCESSOR DESIGN FOR EDUCATIONAL PURPOSES


DISEO DE UN MICROPROCESADOR DE PROPSITO EDUCATIVO

Abstract: This paper presents the design and implementation process of an educational
purposes microprocessor from basic digital components, with the aim to make easy the
understanding of microprocessors architecture and working. The process has been
realized into three main sections, registers transfer instructions, flow control
(unconditional jumps), and logic and arithmetic operations. To perform the system
verification were added peripherals as analog to digital ADC and digital to analog DAC
converters, with the purpose of implement a temperature measurement application from a
LM35 sensor, to obtain its magnitude in 4mA to 20mA industrial communication
protocol. The implementation of the mentioned microprocessor was realized with ISE
Design Suite 14.2 de XILINX software, and was implemented on FPGA Spartan-3
development board.
Keywords: Microprocessor, digital design, registers transfer logic, microinstruction.
Resumen: Este artculo presenta el proceso de diseo e implementacin de un
microprocesador para propsitos educacionales a partir de elementos digitales bsicos,
con el fin de facilitar la comprensin de la arquitectura de los microprocesadores y su
funcionamiento. El proceso se realiza en tres secciones principales, instrucciones de
transferencia entre registro, control de flujo (saltos incondicionales), y operaciones
lgicas y aritmticas. Para realizar la comprobacin del sistema se adicionan perifricos
de conversin analgico a digital ADC y digital a analgico DAC, con el propsito de
implementar una aplicacin de medicin de temperatura a partir de un sensor LM35, para
obtener su magnitud en un protocolo industrial de comunicacin de 4mA a 20mA. La
implementacin del microprocesador mencionado se realiza en el software ISE Design
Suite 14.2 de XILINX, y se implementa en la tarjeta de desarrollo FPGA Spartan-3.
Palabras clave: Microprocesador, Diseo digital, Lgica de transferencia entre registros,
Microinstrucciones.

1. INTRODUCION
En la actualidad los avances tecnolgicos han
alcanzado gran parte de los campos, tanto en
ambientes cotidianos, industriales, mdicos, etc.
Hace aos, dichos avances han venido
acompaados de la evolucin de los sistemas
digitales, los cuales hoy en da se encuentran en
la mayora de dispositivos electrnicos. Uno de
los desarrollos que ms ha marcado dicha
evolucin es el microprocesador, el cual ha
logrado realizar desde pequeas tareas en
aplicaciones muy bsicas, hasta grandes clculos
matemticos y estadsticos en grandes
computadores industriales. Por stas razones, la

enseanza de la arquitectura bsica de los


microprocesadores y su funcionamiento es
esencial en el proceso de aprendizaje de la
ingeniera electrnica y afines, y en este artculo
hace una propuesta para facilitar la comprensin
de sta temtica.
Un microprocesador es un sistema digital de tipo
secuencial sincrnico, dominado por una nica
seal de reloj (Brey B., 2006). Su funcin bsica
es ejecutar secuencialmente un grupo de
instrucciones almacenadas en una memoria,
dichas instrucciones internamente ejecutan una
serie de transferencias entre registros, a las que
se les llama microinstrucciones; stas definen la

ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada

funcin de cada instruccin, La ejecucin de


dichas microinstrucciones estn regidas por el
reloj principal del sistema y la seccin encargada
de generar las seales necesarias para la correcta
ejecucin de las microinstrucciones se le llama
Lgica de Control.

preposicin condicional de control, la cual


especifica bajo qu condiciones se realiza la
transferencia especificada (Morris M., 1982).

x0 ' t 0 : B A
2.3 Elementos bsicos de un microprocesador

Los microprocesadores se conectan al mundo


exterior a travs de perifricos, los cuales pueden
ser de entrada o de salida. En casos de
aplicaciones bsicas, stos pueden ser puertos
unidireccionales o bidireccionales, pero en
aplicaciones avanzadas se pueden incorporar
perifricos como convertidores anlogo a digital
ADC y digital a analgico DAC, temporizadores,
mdulos generadores de seales PWM,
interfaces de comunicacin, etc., logrando crear
as sistemas microcontrolados.

En la figura 1 se muestran los elementos bsicos


que debe contener un microprocesador.

En los siguientes captulos se describe el


procedimiento de diseo, implementacin y
experimentacin de cada una de las tres fases de
desarrollo para el microprocesador propuesto.

Fig. 1. Elementos bsicos que conforman un


microprocesador (Morris M., 1982).

2. PRINCIPIOS DE DISEO DE
MICROPROCESADORES

2.1 Lgica de transferencia entre registros


La lgica de transferencia entre registros es una
notacin utilizada para facilitar la comprensin y
documentacin del flujo de datos en un sistema
digital secuencial, cuando tal sistema es muy
complejo para expresarlo en trminos de una
tabla de estados (Morris M., 1982).
Las ecuaciones 1, 2 y 3 muestran ejemplos de la
notacin utilizada: la ecuacin 1 representa una
transferencia del registro A al registro B, la
ecuacin 2 la transferencia al registro B del valor
de la memoria M en la direccin A, y la ecuacin
3 la transferencia al registro A de la suma
algebraica del contenido de los registros B y C.

B A

(1
)

B M[A]

(2
)

A B+C

(3
)

2.2 Microinstruccin
Una microinstruccin se define como una
operacin elemental que el sistema digital puede
realizar en un nico pulso de reloj La notacin
utilizada es la mostrada en la ecuacin 4, donde
una expresin de transferencia entre registros es
precedida por una expresin booleana llamada

(4)

A continuacin se explica brevemente cada uno


de stos elementos:
ROM (Read Only Memory): Es la memoria
donde se almacenan las instrucciones a ejecutar
por el microprocesador.
MAR (Memory Address Register): Es el
registro encargado de almacenar la direccin de
memoria a la cual se va a tener acceso.
MBR (Memory Buffer Register): En el registro
que almacena temporalmente el dato ledo
desde la memoria.
PC (Program Counter): Es un contador
incremental de carga paralela que genera la
direccin de la instruccin actual de la
memoria de programa.
IR (Instruction Register): Es el registro que
almacena la instruccin actual a ejecutar leda
desde la memoria de programa.
Decodificador de instrucciones: Es un circuito
combinacional que entrega a su salida un
estado nico que identifica la instruccin a
ejecutar.
TC (Time Counter): Es un contador
incremental que genera la base de tiempo de
ejecucin de las instrucciones.
Decodificador de tiempos: Es un circuito
combinacional que entrega a su salida un
estado nico de los instantes de tiempo que
utilizarn las instrucciones para ejecutarse.
3. PROCEDIMIENTO DE DISEO
3.1 Arquitectura de
propsito educativo

microprocesador

de

ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada

La figura 2 muestra la arquitectura propuesta


para el microprocesador a implementar, teniendo
en cuenta los elementos bsicos descritos en la
figura 1, junto con algunos elementos adicionales
que permiten la implementacin de las
instrucciones propuestas: la Unidad Lgico
Aritmtica (ALU) tomada de (Morris Mano,
1982), la PILA, y la Lgica de Control.

memoria 0x5B. La tabla 2 ilustra el caso descrito


y de igual manera aplica para las dems
instrucciones
.
Tabla 2: Ejemplo de ubicacin de parmetros de
instruccin en la memoria de programa
Direcci
n

1516

5A16
5B16

7416

AC16

Cdigo

Mnemni
co

0000000
12

MOV

0000001
02
1010101
02

LDI AA16

0000001
12
0101010
12

LDA 5516

0000000
02

RST

Fig. 2. Arquitectura del microprocesador de


propsito educativo
Se adiciona el registro R para entrada de datos, el
registro A como entrada al ALU, el registro B
como resultado de la ALU, y el registro OUT
para salida de datos del microprocesador.
3.2 Instrucciones de transferencia entre registros
La tabla 1 describe muestra la codificacin
realizada a cada una de las instrucciones, la
mnemnico1 respectivo para su uso en cdigo, y
la microoperacin2 correspondiente.
Tabla 1: Instrucciones de transferencia entre
registros
Codificacin
de operacin
000000002

RST

000000012
000000102
000000112

MOV
LDI OPRD
LDA ADRS

Mnemnico

Descripcin
Resetea el contador de
programa PC.
Mueve R a B
Carga OPRD a B
Carga en valor de la
memoria
en
la
posicin ADRS en B

Microoperacin
PC0
BR
BOPRD
BM[ADRS]

Los argumentos que requiere cada instruccin


para su ejecucin son almacenados en la
siguiente posicin de memoria. Por ejemplo: si
instruccin LDI est ubicada en la direccin de
memoria 0x5A, el argumento que requiere para
su ejecucin est ubicado en la direccin de
1 Mnemnico: Conjunto de caracteres que representan una instruccin para su

Para el diseo de la lgica de control es


necesario representar cada instruccin en
trminos de los estados del decodificador de
tiempos y el decodificador de instrucciones para
generar respectivas microinstrucciones.
El ciclo de envo (fetch cycle) necesario para leer
la instruccin desde la memoria de programa y
cargarla en IR para su decodificacin, est
descrito por las microinstrucciones representadas
en ecuaciones 5, 6 y 7, las cuales son comunes a
todo el set de instrucciones; consideracin a
tener en cuenta para el diseo de la lgica de
control.

t 0 : MAR PC

(5)

t 1 : MBR M [ MAR ] , PC PC + 1(6)


t 2 : IR MBR

(7)

Por tanto, las microinstrucciones para cada una


de las instrucciones se establecen a partir del
tiempo t3. A modo ilustrativo las ecuaciones 8, 9,
10, 11 y 12 describen las microinstrucciones
correspondiente a la instruccin LDA, cuya
codificacin corresponde a la instruccin q 3
segn lo establecido en la tabla 1.

q3 t 3 : MAR PC

(8)

q3 t 4 : MBR M [ MAR ] , PC PC(9)


+1

q3 t 5 : MAR MBR

(10)

q3 t 6 : MBR M [ MAR ]

(11)

q3 t 7 : A MBR ,TC 0

(12)

fcil memorizacin y representacin en cdigo.

2 Microoperacin: Conjunto de microinstrucciones que ejecutan una funcin


especfica.

ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada

La ecuacin 12 establece que una vez realizado


el ciclo de ejecucin de la instruccin, el
contador de programa es reestablecido para que
la siguiente instruccin en programa se ejecuta
de la misma manera que la instruccin descrita:
ciclo de envo y ejecucin de conjunto de
microinstrucciones correspondientes.

000010112

SUBC OPRD

000011002

SUBR

000011012

IORC OPRD

000011102

IORR

000011112

ANDC OPRD

000100002

ANDR

000100012

XORC OPRD

000100102

XORR

3.3 Instrucciones de control de flujo


La tabla 3 muestra las instrucciones de control de
flujo de programa que se proponen implementar
en el microprocesador a realizar.

guarda en B
Resta B a OPRD y lo
guarda en B
Resta B a R y lo guarda
en B
Opera B OR OPRD y
lo guarda en B
Opera B OR R y lo
guarda en B
Opera B AND OPRD y
lo guarda en B
Opera B AND R y lo
guarda en B
Opera B XOR OPRD y
lo guarda en B

B OPRD - B
BR-B
B OPRD B
BRB
B OPRD B
BRB
B

Opera B XOR R y lo B
guarda en B

OPRD

000100112

NOTB

Complementa B

000101002

OUTB

Carga el valor de B en OUT B


OUT

R
B

Tabla 3: Instrucciones de control de flujo


Codificacin
de operacin
000001002

Mnemnico

Descripcin

GOTO ADRS

000001012

CALL ADRS

000001102

RETURN

Va a una direccin
especfica
de
la
memoria de programa.
Guarda la direccin
actual en la pila y va a
una direccin especfica
de la memoria de
programa.
Retorna a la direccin
guardada en la pila

Microoperacin
PCADRS
PILAPC
PCADRS

PCPILA

q 9 t 3 : MAR PC

Para las instrucciones de control de flujo de


programa, el ciclo de envo de instruccin se
ejecuta de la misma forma que las instrucciones
de transferencia entre registros. Las ecuaciones
13,
14,
15
y
16
representan
las
microinstrucciones que conforman la instruccin
CALL, tomando sta como ejemplo para ilustrar
la forma como el resto de instrucciones se llegan
a ejecutar, y de acuerdo a la tabla 3 la
codificacin corresponde a la instruccin q5.

q5 t 3 : MAR PC

(13)

q5 t 4 : MBR M [ MAR ] , PC PC(14)


+1
q5 t 5 : PILA PC

(15)

q5 t 6 : PC MBR ,T 0

(16)

3.4 Instrucciones lgicas y aritmticas


Las instrucciones lgicas y aritmticas
propuestas para conformar el set de instrucciones
en sta arquitectura se describen en la tabla 4.
Tabla 4: Instrucciones lgicas y aritmticas
Codificacin
de operacin
000001112
000010002
000010012

Mnemnico

Descripcin

INCB
DECB
ADDC OPRD

000010102

ADDR

Incrementa B
Decrementa B
Suma B con OPRD y lo
guarda en B
Suma B con R y lo

Como ejemplo se denotan las microinstrucciones


que conforman la instruccin ADDC en las
ecuaciones 17, 18, 19 y 20, y de acuerdo a la
tabla 4 la codificacin corresponde a la
instruccin q9.
(17)

q 9 t 4 : MBR M [ MAR ] , PC PC(18)


+1

q 9 t 5 : A MBR

(19)

q 9 t 6 : B A+ F , TC 0

(20)

3.5 Lgica de control


La lgica de control se encarga de generar las
seales de control para cada uno de los bloques
funcionales descritos en la arquitectura mostrada
en la figura 2, a partir de las microinstrucciones
descritas e ilustradas en las secciones anteriores.
La figura 3 muestra el bloque correspondiente a
ste componente del microprocesador. Las
ecuaciones booleanas que describen las salidas
de la lgica de control, se deducen a partir de las
preposiciones
condicionales
de
las
microinstrucciones. Entendindose que una
microinstruccin puede ser comn a viarias
instrucciones,
como
por
ejemplo,
la
microinstruccin
MAR PC hace parte
del ciclo de envo y de las instrucciones LDI,
CALL y ADDC, entre otras. La expresin
booleana de la salida x1 que segn la tabla 5
correspondiente
a
la
microinstruccin
,
queda
definida
como se
MAR PC
muestra en la ecuacin 20.

Microoperacin
BB+1
BB-1
B OPRD + B
BR+B

Tabla 5: Salidas de la lgica de control y las


microinstrucciones que representan
Salida de la

Microinstruccin

Salida de

Microinstruccin

ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada
lgica de
control
x1
x2
x3
x4
x5
x6
x7
x8
x9

MAR PC
MAR MBR
MBR M[MAR]
IR MBR
A MBR
AR
PC PC + 1
TC 0
PC 0

la lgica
de control
x12
x13
x14
x15
x16
x17
x18
x19
x20

x10

PC MBR

x21

x11

PILA PC

x22

PC PILA
BA
BB+1
BB1
B A+ B
B A B
B A B
B A B
BA

i out = temp0.16

(20)

mA
+ 4 mA
C

La ecuacin 21 es la utilizada para procesar la


informacin proveniente del ADC y entregarla al
DAC.
(21)

data out =(data 4)+51

OUT B

De igual manera, para la salida x3 que


corresponde a la microinstruccin MBR
M[MAR], presente en las instrucciones LDI (q 2),
LDA (q3), GOTO (q4) y ADDC (q9), entre otras,
la expresin booleana que la describe queda
definida por la ecuacin 21.

El conjunto de instrucciones que sintetiza la


ecuacin 21 y que conforman el archivo
ejecutable para la memoria de programa se
muestra y describe en la tabla 6.
Tabla 6: Programa de prueba para la aplicacin
propuesta
Direcci
n

Cdigo de
operacin

Mnemnico

0x01
MOVR
x 3=t 1+ q2 t 4 + q3 t 4+ q3 t 6+ q4 t 4 +q 5 (21)
t 4 + q9 t 4 +q11 t0x00
4 + q13 t 4 + q15 t 4 + q17 t 4

De la misma manera se analizan cada una de las


22 salidas de la lgica de control (x 1-x22) para
obtener las respectivas expresiones booleanas
que conforman la totalidad de la lgica de
control.

0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08

0x0A
0x0A
0x0A
0x09
0x33
0x14
0x04
0x00

Descripcin

ADDR
ADDR
ADDR
ADDC d51

B = R*1
B= R*2
B = R*3
B = R*4
B = 4*R+51

OUT
GOTO 0x00

OUT = B
Vuelve al inicio

4. IMPLEMENTACIN

4. RESULTADOS

La implementacin del microprocesador se hizo


sobre la tarjeta de desarrollo FPGA Spartan-3 de
Xilinx. Para la sntesis de los bloques funcionales
del microprocesador se utiliz lenguaje de
descripcin de hardware VHDL (Pardo F. y
Boluda J. A. 1999; Brown S y, Vrenesic Z.
2004).

Al ejecutar el programa propuesto, se monitora la


seal de voltaje entregada por el sensor y la
entregada por el DAC. La salida de corriente se
aplica a una resistencia de 50 para obtener un
voltaje entre 0.2 y 1.0V para los valores de
corriente de 4 a 20mA respectivamente. La figura
5 muestra las seales de voltaje de entrada y
voltaje de salida obtenidas al aplicar una
perturbacin partiendo de un estado estable
inicial (23.3C) hasta uno final (43.2C).

Para comprobar el funcionamiento de la


arquitectura del microprocesador diseado se
propone generar una aplicacin en la cual se
utilizan instrucciones de transferencia entre
registros, control de flujo y operaciones lgicas y
aritmticas. Dicha aplicacin consiste en medir el
valor de la temperatura en un rango de 0C a
100C, y procesarlo para representarlo en una
magnitud de corriente en el rango de 4mA a
20mA. Los componentes utilizados son el sensor
LM35 (el cual entrega 10mV/C), el ADC
ADS7825P (de 16 bits de resolucin, usando los
8 ms significativos) y el DAC904U (de 8 bits,
con salida de corriente de 0 a 20mA). La
frecuencia de muestreo seleccionada es de 1Hz
con el fin de visualizar fcilmente los resultados.
La ecuacin 20 determina la relacin entre la
temperatura del sensor y la corriente de salida
(temperatura en grados centgrados y corriente en
miliamperios).

Fig. 5. Seales entregadas por el sensor (arriba)


y el DAC (abajo)

ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada

Los valores mostrados en la figura 5 se validan a


partir de la evaluacin de dichos valores en las
ecuaciones 22 y 23 para los puntos de 23.3C y
43.2C respectivamente.

23.3 C0.16

(22)
mA
+ 4 mA =7.73 mA
C

entender la arquitectura de un microprocesador,


y el funcionamiento de los elementos que lo
compone. Con respecto a la generacin del
cdigo ejecutable grabado en la memoria de
programa, se muestra de manera didctica una
aplicacin convencional, que representa el
resultado que se obtendra al utilizar un
compilador convencional.

(23)

+4 mA=10.91 mA
(43.2 C0.16 mA
C )

Se puede observar que los valores obtenidos


experimentalmente son muy cercanos a los
esperados tericamente.
5. CONCLUSIN
La comprensin de la lgica de transferencia
entre registros, las microinstrucciones como
manera de descripcin de un algoritmo en
trminos de hardware, y la metodologa para el
diseo de la lgica de control, es esencial para

REFERENCIAS
.
Morris Mano, M. (1982). Lgica Digital y
Diseo de Computadores, Prentice Hall,
Cuarta edicin, Madrid.
Barry Brey B. (2006). Microprocesadores Intel.
Pearson, Sptima Edicin, Mxico.
Pardo F. y Boluda J. A. (1999). VHDL: Lenguaje
para sntesis y modelado del circuitos, RAMA Editorial, Primera Edicin, Madrid.
Brown S., Vrenesic Z. (2004). Fundamentals of
Digital Logic with VHDL Design,
McGraw-Hill Higher Education, Segunda
edicin.

You might also like