Академический Документы
Профессиональный Документы
Культура Документы
MICROPROCESADOR RISC
Luis Carlos Rosales Alpzar
Johan Bermdez
Ruddy Cspedes
Eddy Morales Rodrguez
Roberto Pereira Arroyo
Alfonso Chacn Rodrguez
Escuela de Ingeniera Electrnica. Instituto Tecnolgico de Costa Rica.
luis.carlos.rosales@gmail.com
johanbermudez@hotmail.com
ruddycc@yahoo.com
rpereira@itcr.ac.cr
achacon@itcr.ac.cr
desarrollo de dispositivos programables. Adems, se ha
obtenido una sntesis para una tecnologa de 0.35m, a la
que se han insertado estructuras de testeo post-fabricacin.
Adems del modelo bsico del microprocesador, se provee
de soporte de una pila de memoria y de una interfaz de bus
para control de memoria asncrona y dispositivos
perifricos.
Los resultados han sido verificados mediante la
implementacin del microprocesador y un sistema mnimo
utilizando el ISE de Xilinx, y cargando ambos en una
tarjeta Spartan 3 de Digilent Inc. El sistema mnimo utiliza
como dispositivo perifrico de entrada un teclado PS2 y
como perifrico de salida un display LCD, e integra la
memoria asociada para el programa y la memoria asociada
para datos.
La seccin 2 describe la arquitectura digital del sistema.
La seccin 3 detalla la implementacin del sistema en
Verilog y sus pruebas en un sistema programable. La
seccin 4 muestras los avances hechos en el diseo final
del chip, que se encuentra en la actualidad en la etapa de
layout.
.
ABSTRACT
Se propone una arquitectura segmentada de
microprocesador RISC de 32 bits, implementada el nivel
de RTL en un lenguaje de descripcin de hardware, y de
cdigo compatible con un microprocesador MIPS.
Se han usado las herramientas de desarrollo de la
empresa Xilinx. El cdigo ha sido testeado en un sistema
de desarrollo de dispositivos programables de Digilent
Inc., mediante la ejecucin en un sistema mnimo de
diferentes programas escritos en lenguaje ensamblador de
la familia MIPS. Se han realizado pruebas de sntesis
sobre una tecnologa de 0.35 M, y se han integrado
estructuras de testeo al cdigo mediante herramientas
Design for Test.
1. INTRODUCCION
El proyecto Tesla tiene como meta final implementar en
silicio un microprocesador de arquitectura RISC de 32 bits
con un juego de instrucciones compatible con el
microprocesador MIPS. Esta es el resultado de un
proyecto de investigacin y desarrollo de la Escuela de
Ingeniera en Electrnica del Instituto Tecnolgico de
Costa Rica para desarrollar el currculum de pregrado en
las reas de microelectrnica y arquitectura de
microprocesadores.
Luego de tres perodos acadmicos, se cuenta con el
diseo en lenguaje Verilog del microprocesador y su
implementacin y sntesis utilizando herramientas de
Figura 2. Modelo bsico original de la arquitectura de Tesla implementada (tomado de [1]). En la implementacin final, la unidad de
reenvo (Forwarding unit) se traslad a la etapa de ID. La decisin y clculo de saltos tambin se trasladaron a ID, para ahorrar una
ranura de ejecucin.
de trabajo recomendada para las etapas de diseo o frontend dentro del trabajo de la industria de los circuitos
integrados.
3.1 Estructuras lgicas de las unidades bsicas del
microprocesador
A partir de la arquitectura descrita en la etapa de diseo, se
procedi a implementar una estructura lgica para cada
etapa del microprocesador a nivel de RTL.
3.1.1 Unidad de bsqueda de instruccin (Instruction
Fetch)
Aqu se retira la instruccin de la memoria de programa
y se actualiza el contador de programa o PC en funcin de
la instruccin que se est ejecutando. La estructura lgica
que se maneja es una lista de casos que indica los posibles
valores del PC. Las variables de entrada que regulan el
valor del PC, provienen de la etapa de WB o de ID del
microprocesador, esto porque el cambio en el valor del PC
estar definido por los resultados de la instruccin que se
encuentra en la fase final de ejecucin, o por una decisin
de salto en ID.
En caso de que todas las variables de control de cambio
del PC se mantengan pasivas, se aplica un incremento
normal al contador, que se aumenta en valores decimales
de 4, y en caso de que se aplique una condicin de reset, la
unidad IF enva al PC a su direccin de inicio
(0x00400020).
Hay adems una estructura de registros al final de la
etapa, las cuales almacenan los valores de salida de las
diferentes seales. Estos registros son parte de la
estructura de control y deteccin de riesgos de datos,
propia del modelo descrito en el diseo.
rd = rt << shamt
rd = rt >> shamt
rd = rt >> shamt
PC= rs
rd <= rs + rt
rd <= rs - rt
rd <= rs and rt
rd <= rs or rt
rd <= rs xor rt
si rs > rt => rd <= 1
si no, rd<=0
sltu
addi
j
jal
beq
bne
lw
sw
nop
lui
lbu
lb
lh
lhu
addu
subu
bgtz
bltz
bgez
(rs=rt)?:[PC=destino] [PC=PC+4]
(rs<>rt)?:[PC=destino] [PC=PC+4]
rd <= mem [rs]
mem[rs] <= rd
No se ejecuta nada
$rt << imm&0000h
Rt = {[24b0],[byte]}
Rt = {[24byte(7)],[byte]}
Rt = {[16b0],[half]}
Rt = {[15half(15)],[half]}
Rd = rs + rt
Rd = rs - rt
(rs>0)?:[PC=Fuente] [PC=PC+4]
(rs<0)?:[PC=Fuente] [PC=PC+4]
(rs0)?:[PC=Fuente] [PC=PC+4]
Habilitador LCD
Decodificador
Tesla
Bus de Instrucciones
Habilitador EEPROM
Habilitador RAM
Controlador
Memoria y
puertos
Bus de Datos
Memoria de
datos
RAM
Bus de Control
Bus de Datos
Bus de Control
Bus de Direcciones
Memoria de
programa
EEPROM
Controlador
LCD
Control LCD
Datos LCD
LCD
Controlador
Teclado PS/2
PS/2 clk
PS/2 datos
Keyboard
Figura 5. Simulacin de un ciclo de ejecucin de Tesla por medio del ModelSim de Mentor Graphics. Se aprecia la segmentacin en
funcionamiento, la unidad de interfaz de bus y los datos en la RAM implementada dentro de la FPGA.
of
of
of
of
of
of
5. AGRADECIMIENTOS
Deseamos agradecer a Intel y su filial en Costa Rica,
Componentes Intel de Costa Rica, por el apoyo econmico
a esta iniciativa. Este proyecto ha sido financiado tambin
por la Vicerrectora de Investigacin del Instituto
Tecnolgico de Costa Rica, y la Fundacin Tecnolgica
del ITCR.
6. REFERENCIAS
[4]
[5]