Documente Academic
Documente Profesional
Documente Cultură
AbstractLos procesadores de la lnea CortexTM-M de ARM ltd. El procesador Cortex-M0 es el miembro de menor rango
estn orientados a la implementacin de microcontroladores y dentro de la familia Cortex-M de procesadores de ARM. Esta
dispositivos mixtos (mixed signal) de bajo costo y bajo consumo; familia permite realizar distintos tipos de compromisos entre
tanto como dispositivos en silicio como softcores o hardblocks en costo, simpleza de diseo, consumo, performance y capacidad
FPGA. Actualmente hay soluciones de Cortex-M en FPGA de de procesamiento dentro del segmento Embedded Processors.
Altera (Cortex-M1 como softcore) y de Actel (Cortex-M1 como El Cortex-M0 apunta principalmente a lograr bajo consumo y
softcore y Cortex-M3 como hardblock); mientras que Xilinx no la menor rea de silicio, a fin de competir ventajosamente con
ofrece soluciones de Cortex-M para su lnea de FPGA. Por otra procesadores de 8 bits de alta gama o procesadores de 16 bits
parte, ARM ha lanzado recientemente una versin reducida y de mientras mantiene la compatibilidad de cdigo con
bajo costo del procesador Cortex-M0 (Cortex-M0 DesignStart) procesadores ms potentes de la familia como el Cortex-M3.
sintetizable tanto para FPGA como para silicio. En el presente
trabajo se muestran los resultados de la implementacin de dicho
La menor implementacin de Cortex-M0 consume 85W/MHz
procesador en una FPGA de rango bajo de Xilinx, logrndose de y ocupa un rea equivalente de 12.000 compuertas. Como
esta manera ampliar el rango de implementaciones de los referencia, un procesador clsico como el i8051 ocupa
procesadores Cortex-M en FPGA. tpicamente alrededor de 8.000 compuertas [1][2]. En la Fig. 2
vemos la ubicacin relativa de cada miembro de la familia
Keywords- Cortex-M0, FPGA Cortex-M en funcin de su performance y plataforma de
implementacin.
I. INTRODUCCION
Figura 10. Simulacin funcional mostrando el acceso a memoria Figura 11. Estadisticas de uso de la FPGA una vez realizada la
implementacin del sistema
Siendo exitosas las simulaciones, se implemento el sistema
sintetizable. El mismo consta de las siguientes partes: Como resultados de temporizacin, la herramienta de
Procesador, con el cdigo verilog del procesador Cortex- sntesis y los resultados Post Place and Route indicaron una
M0DS; Sincronizador de reset, implementado con un frecuencia mxima de trabajo de alrededor de 40MHz. Cabe
contador que fija una seal en nivel alto al llegar al final del aclarar que no se realizaron ningn tipo de restricciones de
conteo, a fin de generar una seal de reset sincrnica con el temporizacin o ubicacin de componentes en el sistema.
reloj del sistema. Memoria, implementado como una RAM
preinicializada con el archivo binario generado en MDK. Otra particularidad de este procesador es que es posible
Reloj, que implementa la seal de reloj de referencia, a acceder directamente a los registros internos del mismo, lo que
travs de un DCM de la FPGA fijado a 10MHz a partir del lo hace til en aplicaciones educativas, ya que es posible
oscilador de 50MHz que provee la placa de desarrollos. Y observar la total concordancia entre la simulacin de software,
finalmente Detector de Bus, que detecta sobre el bus de datos la simulacin funcional en ISIM, y la verificacin de la
los valores constantes programados y comanda un Led de la implementacin a travs de ChipScope Pro a nivel de registros
placa de desarrollos que se prende cuando detecta un valor internos del procesador.
programado y se apaga cuando detecta el otro valor. Cabe Como aspecto a considerar sera las mejoras al test bench
destacar que fue necesario desarrollar un software que provisto; acortara mucho el tiempo de desarrollo tener un test
convirtiera el formato binario del archivo de programa al bench completo que permita generar el archivo binario a partir
formato COE necesario para inicializar la memoria. Se verific del archivo fuente. Esto no fue posible con los elementos
mediante simulacin funcional en el ISIM el correcto provistos, por lo que fue necesario realizar las actividades
funcionamiento del sistema completo, en particular del detector mencionadas en la implementacin.
de bus, el cual reaccion correctamente frente a los datos que
aparecan sucesivamente sobre el bus de datos. Como conclusin, este procesador se integra a la familia de
procesadores softcore sintetizables sobre FPGAs de Xilinx,
Finalmente se implemento completamente el sistema y se junto con el Microblaze y el Picoblaze, ofreciendo la ventaja de
program la placa con el mismo, realizndose las siguientes ser migrable a otras arquitecturas de FPGA (Actel, Altera).
verificaciones: con la herramienta ChipScope Pro, que permite Como lnea de trabajo futura se propone crear una
implementacin de bus AMBA-Lite y perifricos compatibles
con este bus, a fin de aumentar sus capacidades y convertirlo
en una opcin a tener en cuenta en la creacin de sistemas
embebidos sobre FPGAs de Xilinx. Una vez realizado esto se
buscar desarrollar un sistema con capacidad de ejecutar
variantes de embedded Linux, a fin de aplicarlo en el rea
educativa en el Curso de Sistemas Embebidos dictado por la
FI-UBA.
IV. REFERENCIAS
V. AGRADECIMIENTOS
A la gente del programa universitario de ARM, en particular a William Hohl y
Joe Bungo; a Fiona Cole de Digilent Inc.; y la gente del programa
universitario de Xilinx (XUP) por su ayuda y cooperacin.