Вы находитесь на странице: 1из 6

Laboratorio No. 1, Electrnica Digital II. Introduccin al uso del procesador LatticeMico32. Garzn, Lpez, Garca.

Introduccin al uso del Procesador LatticeMico32


Garzn E. Jorge A. (261971), Lpez C. Francisco Eduardo (261934),
Universidad Nacional de Colombia (Sede Bogot) Departamento de Ingeniera Elctrica y Electrnica
{jagarzone, felopezc}@unal.edu.co

Resumen En el presente informe se expone el trabajo


desarrollado en el laboratorio 1 de electrnica digital II en
relacin a la implementacin en software libre (ncleo
Linux) de las herramientas para desarrollo con HDL y
FPGA, adems de las herramientas respectivas para el
procesador LM32, as mismo el anlisis los procesos para
sintetizar y compilar el cdigo generado para utilizar el
procesador en una aplicacin especifica con perifricos como
lo es sumar nmeros decimales que ingresan por consola.

Palabras Claves:

I.

INTRODUCCIN

Las herramientas para desarrollo con FPGA y


HDL proporcionadas por Xilinx son de gran
utilidad para el desarrollo de hardware, entre las
ventajas que proporciona es la implementacin
del toolchain de un procesador como lo es el
LatticeMico 32, para distintas aplicaciones con
una estructura donde la CPU interconectada por
wishbone a la memoria y a los perifricos le da
forma al camino de datos de un proceso
especifico o sistema.
El propsito de esta prctica es aprender a
manejar estas herramientas, por medio de la
sntesis y/o compilacin de distintos procesos
para generar las instrucciones del procesador
que se encarguen de controlar memoria y
perifricos de un trabajo especifico.
En este sentido existe tanto desarrollo de
software como de hardware, cuando se trata del
primero es en relacin a todo el cdigo y
libreras que generan las instrucciones que son
cargadas al procesador, y en el segundo caso las
caractersticas del procesador y la memoria
asociados por el wishbone a perifricos del

sistema.
Uno de los muchos perifricos que pueden ser
utilizados es la comunicacin serial por puerto
UART, la cual permite manejar datos de entrada
y salida en funcin de una consola, este
perifrico ya esta implementado al procesador y
memoria por medio del wishbone y sirve como
herramienta para realizar el ejemplo que ser un
sumador de dos nmeros de 32 bits.
II.

MARCO TERICO

A. Procesador LatticeMico32 (1)


LatticeMico32 es un procesador softcore
desarrollado por Lattice Semiconductor orientado a
la implementacin en FPGAs, consiste en una
arquitectura de tipo Harvard, con un manejo de
lectura-escritura de memoria arquitectura RISC, lo
cual le permite un desempeo ms eficiente; como
resultado el procesador consuma una cantidad
mnima de los recursos del dispositivo mientras que
se mantiene un alto desempeo.
Entre sus ventajas, este procesador brinda
flexibilidad en la implementacin del diseo, pues
permite su configuracin y habilitacin de algunas
instrucciones, lo cual le da al diseador mayor
grado de libertad en trminos de los cambios que
pueden ser realizados.
Posee de un data path de 32 bits, instrucciones de
32 bits y 32 registros de propsito general tambin
de 32 bits. Soporta hasta 32 interrupciones externas,
posee un set de instrucciones configurable (el
usuario puede definir instrucciones) y tiene una
interfaz Wishbone para comunicacin con
perifricos, un bus de solo lectura, y un bus de

Laboratorio No. 1, Electrnica Digital II. Introduccin al uso del procesador LatticeMico32. Garzn, Lpez, Garca.

lectoescritura.
B. Tarjeta de desarrollo Nexys 2 (1)
Es la tarjeta de desarrollo que se usar en este
laboratorio, razn por la cual se listan sus
caractersticas principales:

El Makefile de SIE contiene:


Synthesis constants
Simulation constants
Verilog Simulation (Test Beanch)
ISE Synthesis
Final Targets

FPGA de Xilinx Spartan 3E. 500k compuertas.

B. RTL y camino de datos

16 MB Micron PSDRAM y 16 MB Intel


StrataFlash ROM

Actividad: Realice un diagrama del camino de


datos del procesador. Segn el diagrama que obtiene
y la documentacin disponible que puede afirmar de
la arquitectura.

Plataforma flash de Xilinx para configuraciones


FPGA no voltiles.
Oscilador de 50 MHz.

Descripcin del camino de datos:

60 puertos de entrada y salida.


8 Leds, 7 segmentos de 4 dgitos.

III.

DESARROLLO

DE LAS

ACTIVIDADES

A. Proceso para sintetizar y compilar


Actividad: Cmo se realiza un archivo
Makefile? Indique por medio de un diagrama los
pasos que realiza el Makefile ubicado en SIE/ y en
SIE/firmware/boot0-serial.
Makefile: Es un archivo de texto plano necesario
para sintetizar el procesador desde consola. Este
archivo es usado por el comando make y permite
automatizar el proceso.
Acorta la ruta de las libreras que corresponden al
procesador LM32.
El Makefile de boot0-serial, contiene:
cabeceras (.h)
codigo (.c)
objetos (.o)
otros (.srec) (.d) (.s) (.ram)
mapa (.map)

Fig. 1. Bloques del LatticeMico32 (2)

Pasos:
1- El procesador cuenta con el Program
Counter que indica la direccin de la
instruccin que va a ejecutar en el
momento.
2- Para almacenar las instrucciones completas
esta el el Wide instruction Memory y el
cache instruction.
3- Estas instrucciones son pasadas al Registro
de donde se indica al decodificador o al
registro File el contenido de la instruccin
para su ejecucin.
4- Los bloques lgico-aritmeticos son:
a. Adder
b. Control/Status registers
c. Logical operands
d. Shifter

Laboratorio No. 1, Electrnica Digital II. Introduccin al uso del procesador LatticeMico32. Garzn, Lpez, Garca.

e. Multiply and Divide


Algunos de estos bloques tienen
acceso a las memorias de datos y
cache para realizar operaciones.
Se puede afirmar que la arquitectura tiene una
estructura secuencial para ejecutar una instruccin,
as mismo las herramientas que tiene el procesador
le permiten ejecutar casi cualquier tipo de proceso
complejo basado en este formato de instrucciones y
saltos.

C. Ejemplo con el LM32


Actividad: Leer los archivos de cdigo fuente
ubicados en la carpeta SIE/firmware/boot0serial.

crt0ram.S : LatticeMico32 C startup code.


(Inicializador) Se encuentra en lenguaje
ensamblador. Maneja excepciones de 32
bytes long. Setup stack and global pointer.
Clear BSS.
image.ram : El la imagen que se genera
luego de hacer el make en la carpeta que
con tiene el main.c para que sea la imagen
que analize el compilador desde la
instruccin que est en system.v
parameter bootram_file =
../firmware/boot0-serial/image.ram .
main.c : programa principal, aplicacin
especifica definida por el usuario.
Makefile : archivo que se encarga de
enlazar todas las libreras y recursos del
procesador.
soc-hw.c : utilidades de las funciones en
general, y funciones UART (comunicacin
serial)
soc-hw.h : encabezado de .c que define
tipos de datos, manejo de interrupciones,
estructuras.

D. Especificaciones de diseo
La aplicacin debe cumplir con las siguientes
especificaciones de diseo:

E.

Sumador de dos nmeros de 32 bits.


Una vez realizada la operacin el usuario debe
poder realizar otra suma.
La captura e impresin de los datos debe ser
en formado decimal. Implementaciones en
cdigo ASCII o en codificacin Hexadecimal
no sern recibidas.
La captura de los datos debe ser de la
siguiente forma: Nmero A [Operando +]
Nmero B [Enter].
La captura debe detectar cuando se ingresa un
numero o un operando y tener control de
errores (mensajes de alerta al usuario,
reinicializar el programa).
Bono

La aplicacin debe tener las operaciones de suma,


resta, multiplicacin y divisin. La captura de los
datos debe ser de la siguiente forma: Nmero A
[Operando +, - , *, /] Nmero B [Enter]. Las
operaciones deben ser definidas para nmeros
enteros positivos, sin embargo debe tener control de
errores como divisin por cero o el mal ingreso de
datos.
F. DESARROLLO
En el main.c definimos la entrada y salida de los
datos, por medio de la comunicacin UART (serial)
y la aplicacin GTKTERM, verificando que ingrese
un solo carcter por pulsacin, siendo este un
nmero y/o el operando especfico, y evitando el
ingreso de caracteres errneos. Cada dato tiene su
equivalente de ASCII a Binario. Mediante ciclos y
condicionales definimos la operacin a realizar,
llamando a su vez a la respectiva funcin, y
finalmente muestra en pantalla el resultado
obtenido.
Lo anterior lo podemos apreciar claramente en los
diagramas de flujo del anexo 1.

IV.

CONCLUSIONES

Laboratorio No. 1, Electrnica Digital II. Introduccin al uso del procesador LatticeMico32. Garzn, Lpez, Garca.

Cualquier sistema que involucre un procesador


como el LM32 debe observarse tanto a nivel de
desarrollo de hardware como de software,
donde las condiciones de hardware como la
memoria, caractersticas del procesador y
perifricos limitan el flujo de software o
ejecucin de instrucciones.

En cuanto a la sntesis y compilacin por


medio del make, cuando es realizado en bootserial donde est el main.c, se trata de software
con la creacin del archivo .ram con el set de
instrucciones en assembler para el procesador.
En el caso del make en la carpeta SIE, se trata
del sntesis del hardware de la cpu, memoria y
perifricos con las instrucciones cargadas a la
memoria, en el archivo .bit que se carga a la
FPGA.
El camino de datos hace referencia a la
ejecucin de las instrucciones por parte del
procesador, es donde entra en funcionamiento
todo el hardware del sistema para cumplir con
la instruccin pertinente luego la siguiente, etc.

Para trabajar con la comunicacin serial

(UART) se debe tener presente las funciones


creadas en la librera-cabecera que estn
disponibles para llamar en el main.c (soc-hw),
estas libreras y cabeceras son las que conectan
elementos de la cpu, perifricos y memoria
(wishbone) de forma que estas funciones
puedan ser traducidas del lenguaje de alto
nivel(c) a assembler (instrucciones) y por tanto
puedan ser cargadas al procesador.

V.

REFERENCIAS

[1] Acua V. Fabin, Fabin y Gmez R. ,


Freddy. Grupo de Microelectrnica de la
Universidad Nacional de Colombia
(GMUN).
Implementacin
de
un
velocmetro digital con monitoreo de
condiciones ambientales: LMPX. [En lnea]
[Citado el: 15 de Octubre de 2013.]
http://www.gmun.unal.edu.co/.
[2] Lattice
Semiconductor
Corporation.
LatticeMico32 software Reference Manual.

Laboratorio No. 1, Electrnica Digital II. Introduccin al uso del procesador LatticeMico32. Garzn, Lpez, Garca.

ANEXO 1. DIAGRAMAS DE FLUJO

Laboratorio No. 1, Electrnica Digital II. Introduccin al uso del procesador LatticeMico32. Garzn, Lpez, Garca.
Fig. 1. Toma de Datos tanto de los numeros como del operando

Fig. 2. Seleccin de la Operacin a realizar, mensaje de resultado y posible mensaje de error.

Fig. 3. Dentro de la funcion especifica, conversion de ASCII a decimal y viceversa

Вам также может понравиться