Sei sulla pagina 1di 23

"Procesador Embebido

"Procesador Embebido
Microblaze para
Microblaze para
FPGAs
FPGAs
"
"
Estanislao Aguayo, Becario de Investigacin. Estanislao Aguayo, Becario de Investigacin.
Departamento de Tecnologa de Computadores Departamento de Tecnologa de Computadores, ,
Escuela Politcnica Superior Escuela Politcnica Superior. . UAM. UAM.
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Sumario
Sumario
Introduccion Introduccion
- - Soft Soft vs vs Hard Hard processors processors
- - Soft Soft processor processor en una FPGA en una FPGA
Microblaze Microblaze Soft Soft processor processor
Arquitectura Interna Arquitectura Interna
Pipeline Pipeline
Registros internos Registros internos
Repertorio de instrucciones Repertorio de instrucciones
Interrupciones y excepciones Interrupciones y excepciones
Configuraciones de buses Configuraciones de buses
Memoria Memoria
Microblaze Microblaze vs vs Otros Otros sitemas sitemas
Velocidad Velocidad
Consumo Consumo
Tiempo de desarrollo y/o Tiempo de desarrollo y/o modificacion modificacion
del diseo del diseo
IP IP cores cores para para Microblaze Microblaze
Estndar Estndar Core Core Connect Connect de IBM para de IBM para
Microblaze Microblaze
Para OPB ( Para OPB (On On- -Chip Chip peripheral peripheral bus) bus)
Otros IP interesantes Otros IP interesantes
Crea tus propios Crea tus propios cores cores y sus drivers y sus drivers
Microblaze; Desarrollo de aplicaciones con Microblaze; Desarrollo de aplicaciones con
EDK 6.1 EDK 6.1
Cadena Cadena dediseo dediseo y montaje y montaje
Cadena de simulacin Cadena de simulacin
Debugging Debugging
Referencias Referencias
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Sumario
Sumario
Introduccion Introduccion
- - Soft Soft vs vs Hard Hard processors processors
- - Soft Soft processor processor en una FPGA en una FPGA
Microblaze Microblaze Soft Soft processor processor
Arquitectura Interna Arquitectura Interna
Pipeline Pipeline
Registros internos Registros internos
Repertorio de instrucciones Repertorio de instrucciones
Interrupciones y excepciones Interrupciones y excepciones
Configuraciones de buses Configuraciones de buses
Memoria Memoria
Microblaze Microblaze vs vs Otros Otros sitemas sitemas
Velocidad Velocidad
Espacio Espacio
Consumo Consumo
Tiempo de desarrollo y/o Tiempo de desarrollo y/o modificacion modificacion del diseo del diseo
IP IP cores cores para Microblaze para Microblaze
Estndar Estndar Core Core Connect Connect de IBM para Microblaze de IBM para Microblaze
Para OPB ( Para OPB (On On- -Chip Chip peripheral peripheral bus) bus)
Otros IP interesantes Otros IP interesantes
Crea tus propios Crea tus propios cores cores y sus drivers y sus drivers
Microblaze; Desarrollo de aplicaciones con EDK 6.1 Microblaze; Desarrollo de aplicaciones con EDK 6.1
Cadena Cadena dediseo dediseo y montaje y montaje
Cadena de simulacin Cadena de simulacin
Debugging Debugging
Referencias Referencias
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Soft Soft vs vs Hard Hard processors processors
Hard Processor; El procesador
es un circuito VLSI, con un diseo
a nivel de transistor optimizado
para ejecutar instrucciones en el
mnimo tiempo posible.
Ejemplos;
Power PC en
una Virtex II
pro, 8086,
Pentium
Soft Processor; El procesador se
implementa simulando su
comportamiento con un lenguaje
de programacin (HDL en el caso
de Microblaze)
architecture Behavioral of procesador is

If Ins_Entrada = Instruccin_Suma then


Acumulador <= Dato1 + Dato2
Endif;

"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.


Aguayo UAM Aguayo UAM
Soft Soft processor processor en una FPGA en una FPGA
Microblaze es un soft processor descrito en VHDL.
VHDL describe la arquitectura que compone el procesador dentro
de la FPGA, Microblaze utiliza
Xilinx lo vende como un IP core.
FPGA

RAM
Puertas Lgicas
Multiplexores

H
D
L

ALU
Unidad de
Control
Registros
Internos

Procesador
FPGA => entre 432 (Spartan II 15K) hasta 125.136 (Virtex II Pro 125) celdas lgicas
MicroBlaze Soft Processor => alrededor de 1000 celdas lgicas (dependiendo de la FPGA)
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Sumario
Sumario
Introduccion Introduccion
- - FPGA? FPGA?
- - Soft Soft vs vs Hard Hard processors processors
- - Soft Soft processor processor en una FPGA en una FPGA
- - Ventajas de una FPGA: Conectividad, distribucin de tareas Ventajas de una FPGA: Conectividad, distribucin de tareas
HW HW- -SW SW
Microblaze Microblaze Soft Soft processor processor
Arquitectura Interna Arquitectura Interna
Pipeline Pipeline
Registros internos Registros internos
Repertorio de instrucciones Repertorio de instrucciones
Interrupciones y excepciones Interrupciones y excepciones
Configuraciones de buses Configuraciones de buses
Memoria Memoria
Microblaze Microblaze vs vs Otros sistemas Otros sistemas (Prestaciones) (Prestaciones)
Velocidad Velocidad
Espacio Espacio
Consumo Consumo
Tiempo de desarrollo y/o modificacin del diseo Tiempo de desarrollo y/o modificacin del diseo
IP IP cores cores para Microblaze para Microblaze (Equipamiento opcional) (Equipamiento opcional)
Estndar Estndar Core Core Connect Connect de IBM para Microblaze de IBM para Microblaze
Para OPB ( Para OPB (On On- -Chip Chip peripheral peripheral bus) bus)
Otros IP interesantes Otros IP interesantes
Crea tus propios Crea tus propios cores cores y sus drivers y sus drivers
Microblaze; Desarrollo de aplicaciones con EDK 6.1 Microblaze; Desarrollo de aplicaciones con EDK 6.1 (Manual de (Manual de
conduccion conduccion) )
Cadena Cadena dediseo dediseo y montaje y montaje
Cadena de simulacin Cadena de simulacin
Debugging Debugging
Fpgas Fpgas que soportan Microblaze que soportan Microblaze
Ejemplo de Aplicacin de Microblaze Ejemplo de Aplicacin de Microblaze
Referencias Referencias
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Arquitectura Interna
Arquitectura Interna
Arquitectura interna tipo Arquitectura interna tipo Harvard Harvard
32x32bits registros internos 32x32bits registros internos
Buses Buses
diseados diseados
para para
soportar soportar
CoreConnect CoreConnect
de IBM de IBM
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Pipeline Pipeline
Solucin arquitectnica para maximizar Solucin arquitectnica para maximizar throughput throughput (# datos procesados por (# datos procesados por
segundo) segundo)
Todos los riesgos del Todos los riesgos del pipeline pipeline son tratados por HW ( son tratados por HW (Flush Flush automtico) automtico)
Posibilidad de especificar el uso del Posibilidad de especificar el uso del pipeline pipeline en el cdigo de la en el cdigo de la
instruccin.(Tcnica instruccin.(Tcnica Delay Delay Slots Slots, para reducir la penalizacin por salto) , para reducir la penalizacin por salto)
Recepcin
Decodificacin
Ejecucin
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Pipeline
Pipeline
Fetch
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Pipeline
Pipeline
Decode
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Pipeline
Pipeline
Execute
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Registros internos
Registros internos
32x32bit registros internos de propsito 32x32bit registros internos de propsito
general. general.
Gran capacidad de direccionamiento de Gran capacidad de direccionamiento de
memoria. memoria.
2 registros de propsito especifico 2 registros de propsito especifico
PC PC
MSR ( MSR (Machine Machine Status Status Register Register); Acarreo, ); Acarreo,
Mascara de interrupciones, Configuracin de Mascara de interrupciones, Configuracin de
buses buses
No hay registros de estado de programa No hay registros de estado de programa
Cambios de contexto ineficientes Cambios de contexto ineficientes
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Repertorio de instrucciones
Repertorio de instrucciones
Procesador tipo RISC ( Procesador tipo RISC (Reduced Reduced Instruction Instruction Set Set
Computer Computer) )
Las instrucciones operan con los registros internos Las instrucciones operan con los registros internos
o con valores inmediatos. o con valores inmediatos.
87 instrucciones para realizar operaciones 87 instrucciones para realizar operaciones
lgicas, aritmticas, comparaciones (3 ciclos si lgicas, aritmticas, comparaciones (3 ciclos si
salta + 2 para rellenar el salta + 2 para rellenar el pipeline pipeline), accesos a ), accesos a
memoria memoria
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Repertorio de instrucciones
Repertorio de instrucciones
Instrucciones de 32bits; Instrucciones de 32bits;
Espacio de memoria Espacio de memoria
Ancho de banda de la memoria Ancho de banda de la memoria
Mas bits, mas potencia consumida Mas bits, mas potencia consumida
Code Code density density
Cuanto de amigo en nuestro compilador? Cuanto de amigo en nuestro compilador?
Uso del Uso del pipeline pipeline
Instrucciones con carga de valor inmediato Instrucciones con carga de valor inmediato
Cuestiones sobre el repertorio de instrucciones
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Interrupciones y excepciones
Interrupciones y excepciones
El procesador tiene un puerto de El procesador tiene un puerto de
interrupciones. interrupciones.
4 ciclos de reloj de latencia 4 ciclos de reloj de latencia
Disparada por nivel o flanco Disparada por nivel o flanco
Microblaze soporta excepciones Microblaze soporta excepciones
En ambos casos se modifica el En ambos casos se modifica el
contenido de PC a un valor prefijado contenido de PC a un valor prefijado
y se almacena el antiguo valor en un y se almacena el antiguo valor en un
GPR. GPR.
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Interrupciones y excepciones
Interrupciones y excepciones
Si hay diferentes prioridades de Si hay diferentes prioridades de
interrupciones, necesitaremos un IP. interrupciones, necesitaremos un IP.
Aumento de la latencia de interrupciones Aumento de la latencia de interrupciones
Manejo de interrupciones torpe Manejo de interrupciones torpe
No hay interrupciones tipo No hay interrupciones tipo wake wake- -up up
Pila de direcciones implementada por Pila de direcciones implementada por
software. software.
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Configuraciones de buses
Configuraciones de buses
Memoria RAM interna de la FPGA
Buses del procesador
Datos
Instrucciones
Externa a travs del OPB y el
controlador del dispositivo
externo.
Memoria RAM interna de la FPGA
Externa a travs del OPB y el controlador
del dispositivo externo.
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Configuraciones de buses
Configuraciones de buses
El tamao del bus de datos es dinmicamente El tamao del bus de datos es dinmicamente
ajustable ajustable
Solo con el protocolo Legacy_devices Solo con el protocolo Legacy_devices
No es el ms optimizado para No es el ms optimizado para FPGAs FPGAs, porque requiere , porque requiere
retransmisiones por parte del master para perifricos retransmisiones por parte del master para perifricos
mas pequeos, consumiendo muchos ciclos de reloj. mas pequeos, consumiendo muchos ciclos de reloj.
El ms optimizado es Byte_enables, con instrucciones El ms optimizado es Byte_enables, con instrucciones
separadas para escribir Bytes,Half_Words y Words, separadas para escribir Bytes,Half_Words y Words,
para manejar el bus, incluidas en el repertorio de para manejar el bus, incluidas en el repertorio de
instrucciones. instrucciones.
El de instrucciones no soporta este modo. El de instrucciones no soporta este modo.
El bus de instrucciones tiene el puerto de El bus de instrucciones tiene el puerto de
escritura implementado, para conservar escritura implementado, para conservar
consistencia con el de datos. consistencia con el de datos.
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Memoria Memoria
Interna Interna
Acceso directo del Acceso directo del
procesador a los Bloques procesador a los Bloques
de RAM interna de la FPGA. de RAM interna de la FPGA.
Memoria interna de la Memoria interna de la
FPGA FPGA
Configurable para la Configurable para la
anchura de bus deseada, anchura de bus deseada,
pero con las tcnicas pero con las tcnicas
Read_Sterring y Read_Sterring y
Write_Sterring Write_Sterring
Latencia de acceso a Latencia de acceso a
memoria interna 2 ciclos memoria interna 2 ciclos
Read Data Sterring
Write Data Sterring
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Memoria Memoria
Externa Externa
Memoria Externa; acceso a travs Memoria Externa; acceso a travs
del OPB. del OPB.
Latencia de acceso a memoria Latencia de acceso a memoria
externa 3 ciclos de reloj si no hay externa 3 ciclos de reloj si no hay
ciclos de arbitrio para el OPB. ciclos de arbitrio para el OPB.
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Sumario
Sumario
Introduccion Introduccion
- - Qu es una FPGA? Qu es una FPGA?
- - Soft Soft vs vs Hard Hard processors processors
- - Soft Soft processor processor en una FPGA en una FPGA
- - Ventajas de una FPGA: Conectividad, distribucin de tareas Ventajas de una FPGA: Conectividad, distribucin de tareas
HW HW- -SW SW
Microblaze Microblaze Soft Soft processor processor (Equipamiento de serie) (Equipamiento de serie)
Arquitectura Interna Arquitectura Interna
Pipeline Pipeline
Registros internos Registros internos
Repertorio de instrucciones Repertorio de instrucciones
Interrupciones y excepciones Interrupciones y excepciones
Configuraciones de buses Configuraciones de buses
Memoria Memoria
Microblaze Microblaze vs vs Otros Otros sitemas sitemas (Prestaciones) (Prestaciones)
Velocidad Velocidad
Espacio Espacio
Consumo Consumo
Tiempo de desarrollo y/o Tiempo de desarrollo y/o modificacion modificacion del diseo del diseo
IP IP cores cores para Microblaze para Microblaze
Estndar Estndar Core Core Connect Connect de de
IBM para Microblaze IBM para Microblaze
Para OPB ( Para OPB (On On- -Chip Chip peripheral peripheral
bus) bus)
Otros IP interesantes Otros IP interesantes
Crea tus propios Crea tus propios cores cores y sus y sus
drivers drivers
Microblaze; Desarrollo de aplicaciones con EDK 6.1 Microblaze; Desarrollo de aplicaciones con EDK 6.1 (Manual de (Manual de
conduccion conduccion) )
Cadena Cadena dediseo dediseo y montaje y montaje
Cadena de simulacin Cadena de simulacin
Debugging Debugging
Fpgas Fpgas que soportan Microblaze que soportan Microblaze
Ejemplo de Aplicacin de Microblaze Ejemplo de Aplicacin de Microblaze
Referencias Referencias
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Arquitectura Arquitectura Core Core Connect Connect de IBM para de IBM para
Microblaze Microblaze
Desarrollada para conectar Desarrollada para conectar
diferentes mdulos integrados en diferentes mdulos integrados en
un mismo chip por IBM. un mismo chip por IBM.
Xilinx Xilinx lo ha tomado como lo ha tomado como
estndar estndar
Ahorra tiempo de Ahorra tiempo de
diseo(Implementacion diseo(Implementacion, ,
simulacion simulacion ) )
Portabilidad a nuestro diseo Portabilidad a nuestro diseo
OPB ( OPB (On On- -chip chip peripheral peripheral bus) bus)
Bus Bus sncrono sncrono de 32 bits para datos de 32 bits para datos
e instrucciones por lneas e instrucciones por lneas
separadas (64 bits en total). separadas (64 bits en total).
Permite la seleccin del tamao Permite la seleccin del tamao
del bus dinmicamente del bus dinmicamente
Soporta varios Soporta varios Masters Masters, protocolo , protocolo
Byte Byte enable enable y bus parking y bus parking
Se le pueden aadir perifricos sin Se le pueden aadir perifricos sin
cambiar I/ cambiar I/Os Os gracias a su gracias a su
arquitectura con arquitectura con multiplexacin multiplexacin
distribuida. distribuida.
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
IP IP cores cores para OPB ( para OPB (On On- -Chip Chip peripheral peripheral bus) bus)
Desarrollados por Desarrollados por Xilinx Xilinx para utilizar toda para utilizar toda
la potencia de la potencia de microblaze microblaze y facilitar y facilitar
diseos. ( diseos. (IP IP cores cores muy estudiados, configurables y con muy estudiados, configurables y con
diagramas de tiempos muy detallados.) diagramas de tiempos muy detallados.)
EMC (Controlador de memoria externa) EMC (Controlador de memoria externa)
Controlador de interrupciones Controlador de interrupciones
UART (Receptor/Transmisor UART (Receptor/Transmisor asincrono asincrono
universal, para comunicaciones serie) universal, para comunicaciones serie)
GPIO(Entrada GPIO(Entrada/Salida de /Salida de proposiyo proposiyo general) general)
Timer Timer/ /Counter Counter
JTAG JTAG- -UART(Joint UART(Joint test test Action Action Group Group Universal, Universal,
estndar IEEE1149) estndar IEEE1149)
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Otros IP interesantes Otros IP interesantes
Decodificador Decodificador Viterbi Viterbi para correccin de para correccin de
errores errores
10 10 Gigabit Gigabit Media Access Media Access Controller Controller
Controlador Controlador Ethernet Ethernet 10/100 10/100
Procesador Procesador Bluetooth Bluetooth
Interfaz PCI, I2C, DDR RAM Interfaz PCI, I2C, DDR RAM
DSP, filtros digitales, FFT (hasta 1024 DSP, filtros digitales, FFT (hasta 1024
puntos) puntos)
Interfaces para procesadores externos Interfaces para procesadores externos
Microcontroladores (Como el 8051) Microcontroladores (Como el 8051)

"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Crea tus propios Crea tus propios cores cores y sus drivers y sus drivers
Para OPB o para Para OPB o para
PLB PLB
Driver Driver
Xilinx ayuda con el IPIF,
un modulo para
conectar tu core con el
OPB.
Para crear
masters y
esclavos
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Crea tus propios Crea tus propios cores cores y sus y sus drivers drivers
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Sumario
Sumario
Introduccion Introduccion
- - FPGA? FPGA?
- - Soft Soft vs vs Hard Hard processors processors
- - Soft Soft processor processor en una FPGA en una FPGA
- - Ventajas de una FPGA: Conectividad, distribucin de tareas Ventajas de una FPGA: Conectividad, distribucin de tareas
HW HW- -SW SW
Microblaze Microblaze Soft Soft processor processor (Equipamiento de serie) (Equipamiento de serie)
Arquitectura Interna Arquitectura Interna
Pipeline Pipeline
Registros internos Registros internos
Repertorio de instrucciones Repertorio de instrucciones
Interrupciones y excepciones Interrupciones y excepciones
Configuraciones de buses Configuraciones de buses
Memoria Memoria
Microblaze Microblaze vs vs Otros sistemas Otros sistemas
Velocidad Velocidad
Consumo Consumo
Tiempo de desarrollo y/o Tiempo de desarrollo y/o
modificacin del diseo modificacin del diseo
IP IP cores cores para Microblaze para Microblaze (Equipamiento opcional) (Equipamiento opcional)
Estndar Estndar Core Core Connect Connect de IBM para Microblaze de IBM para Microblaze
Para OPB ( Para OPB (On On- -Chip Chip peripheral peripheral bus) bus)
Otros IP interesantes Otros IP interesantes
Crea tus propios Crea tus propios cores cores y sus drivers y sus drivers
Microblaze; Desarrollo de aplicaciones con EDK 6.1 Microblaze; Desarrollo de aplicaciones con EDK 6.1 (Manual de (Manual de
conduccion conduccion) )
Cadena Cadena dediseo dediseo y montaje y montaje
Cadena de simulacin Cadena de simulacin
Debugging Debugging Referencias Referencias
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Velocidad Velocidad
8051 50 8051 50 MHz MHz: 0.5 : 0.5
D D- -MIPS MIPS
Pentium IV 2.8 Pentium IV 2.8
GHz GHz: 5340 D : 5340 D- -MIPS MIPS
MicroBlaze MicroBlaze en en Vitex Vitex
II Pro a 150 II Pro a 150 MHz MHz: :
125 125 D_MIPS D_MIPS
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Consumo Consumo
8051 Alrededor de 8051 Alrededor de
200 200 mW mW
Spartan Spartan IIE 300K IIE 300K
800mW 800mW
(Microblaze IP (Microblaze IP
core core) )
P IV 2.8 P IV 2.8 GHz GHz
alrededor de 60 W alrededor de 60 W
?
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Tiempo de desarrollo y/o modificacin del diseo Tiempo de desarrollo y/o modificacin del diseo
Ejemplo de Ejemplo de
comparacin; comparacin;
implementacin del implementacin del
procesador procesador
paralelo TOTEM paralelo TOTEM
diseado para diseado para
hacer hacer
multiplicaciones de multiplicaciones de
matices matices
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Sumario
Sumario
Introduccion Introduccion
- - FPGA? FPGA?
- - Soft Soft vs vs Hard Hard processors processors
- - Soft Soft processor processor en una FPGA en una FPGA
- - Ventajas de una FPGA: Conectividad, distribucin de tareas Ventajas de una FPGA: Conectividad, distribucin de tareas
HW HW- -SW SW
Microblaze Microblaze Soft Soft processor processor (Equipamiento de serie) (Equipamiento de serie)
Arquitectura Interna Arquitectura Interna
Pipeline Pipeline
Registros internos Registros internos
Repertorio de instrucciones Repertorio de instrucciones
Interrupciones y excepciones Interrupciones y excepciones
Configuraciones de buses Configuraciones de buses
Memoria Memoria
Microblaze Microblaze vs vs Otros sistemas Otros sistemas (Prestaciones) (Prestaciones)
Velocidad Velocidad
Espacio Espacio
Consumo Consumo
Tiempo de desarrollo y/o modificacin del diseo Tiempo de desarrollo y/o modificacin del diseo
IP IP cores cores para Microblaze para Microblaze (Equipamiento opcional) (Equipamiento opcional)
Estndar Estndar Core Core Connect Connect de IBM para Microblaze de IBM para Microblaze
Para OPB ( Para OPB (On On- -Chip Chip peripheral peripheral bus) bus)
Otros IP interesantes Otros IP interesantes
Crea tus propios Crea tus propios cores cores y sus drivers y sus drivers
Microblaze; Desarrollo de Microblaze; Desarrollo de
aplicaciones con EDK 6.1 aplicaciones con EDK 6.1
Cadena de diseo y montaje Cadena de diseo y montaje
Cadena de simulacin Cadena de simulacin
Debugging Debugging
Fpgas Fpgas que soportan Microblaze que soportan Microblaze
Ejemplo de Aplicacin de Microblaze Ejemplo de Aplicacin de Microblaze
Referencias Referencias
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje Cadena de diseo y montaje
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje: Microblaze Cadena de diseo y montaje: Microblaze
system system hardware hardware
Descripcin del Hardware, el archivo .MHS Descripcin del Hardware, el archivo .MHS
Perifricos Perifricos
Configuracin de buses de Microblaze Configuracin de buses de Microblaze
Conexiones internas del sistema Conexiones internas del sistema
Distribucin de la memoria Distribucin de la memoria
Configuracin de los perifricos y versin de Configuracin de los perifricos y versin de
los mismos (aunque se puede hacer en un los mismos (aunque se puede hacer en un
archivo aparte .MPD y cargarlo a archivo aparte .MPD y cargarlo a PlatGen PlatGen) )
XPS dentro de EDK 6.1 ofrece un XPS dentro de EDK 6.1 ofrece un
tutorial tutorial para crear este archivo. para crear este archivo.
Solo tres comandos de asignacin; Solo tres comandos de asignacin;
BUS_INTERFACE BUS_INTERFACE
PARAMETER (Hardware) PARAMETER (Hardware)
PORT PORT
HDL (VHDL o Verilog) compilable
BEGINmicroblaze
PARAMETERINSTANCE=microblaze_0
PARAMETERHW_VER=2.00.a
PARAMETERC_DEBUG_ENABLED=1
PARAMETERC_NUMBER_OF_PC_BRK=8
PARAMETERC_NUMBER_OF_RD_ADDR_BRK=1
PARAMETERC_NUMBER_OF_WR_ADDR_BRK=1
PARAMETERC_USE_ICACHE=1
PARAMETERC_CACHE_BYTE_SIZE=8192
PARAMETERC_USE_DCACHE=0
PARAMETERC_ICACHE_BASEADDR=0x14000000
PARAMETERC_ICACHE_HIGHADDR=0x16003fff
PARAMETERC_ADDR_TAG_BITS=13
BUS_INTERFACEDLMB=dlmb
BUS_INTERFACEILMB=ilmb
BUS_INTERFACEDOPB=mb_opb
BUS_INTERFACEIOPB=mb_opb
PORTCLK=sys_clk_s
PORTDBG_CAPTURE=DBG_CAPTURE_s
PORTDBG_CLK=DBG_CLK_s
PORTDBG_REG_EN=DBG_REG_EN_s
PORTDBG_TDI=DBG_TDI_s
PORTDBG_TDO=DBG_TDO_s
PORTDBG_UPDATE=DBG_UPDATE_s
END
BEGINopb_v20
PARAMETERINSTANCE=mb_opb
PARAMETERHW_VER=1.10.b
PARAMETERC_EXT_RESET_HIGH=0
PORTSYS_Rst=sys_rst_s
PORTOPB_Clk=sys_clk_s
END
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje: Cadena de diseo y montaje: Microblaze Microblaze
system system hardware hardware
Distribucin de la memoria en un sistema Microblaze
Direccin 0x0000 0000
Direccin dispositivos

Memoria de sistema
--- Espacios
huecos en el
espacio de
direccionamiento
El bit 24 define direcciones en
el chip (si es cero) o fuera del
chip (si es uno)
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje: Microblaze Cadena de diseo y montaje: Microblaze
system system hardware hardware
Descripcin del Descripcin del
archivo .MPD archivo .MPD
( (Microprocessor Microprocessor
Peripheral Peripheral Description Description) )
Cualquier parmetro Cualquier parmetro
dentro del archivo .MPD dentro del archivo .MPD
ser reescrito si esta ser reescrito si esta
especificado en el .MHS especificado en el .MHS
Facilita el intercambio Facilita el intercambio
de IP de IP cores cores
Descarga al archivo Descarga al archivo
.MHS de informacin .MHS de informacin
especifica de los IP. especifica de los IP.
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje: Microblaze Cadena de diseo y montaje: Microblaze
system system hardware hardware
Xilinxs Xilinxs Platform Platform Generator Generator; Coge el archivo .MHS y genera archivos para ; Coge el archivo .MHS y genera archivos para
implementacin (. implementacin (.ngc ngc datos de diseo lgico y constricciones), traduccin a HDL ( datos de diseo lgico y constricciones), traduccin a HDL (
.v o . .v o .vhd vhd), sntesis (. ), sntesis (.prj prj para ISE) y para ISE) y BlockRAM BlockRAM Memory Memory Map Map (. (.bmm bmm) )
PlatGen PlatGen necesita cargar los directorios de los IP utilizados necesita cargar los directorios de los IP utilizados
en el diseo. en el diseo.
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje: Microblaze Cadena de diseo y montaje: Microblaze
system system software software
Descripcin del Descripcin del
software, el archivo software, el archivo
.MSS .MSS
Parmetros de los Parmetros de los
drivers drivers
Especificacin libreras Especificacin libreras
utilizadas utilizadas
Archivos de sistema Archivos de sistema
Creado para el Creado para el
generador de libreras generador de libreras
LibGen en EDK 6.1 LibGen en EDK 6.1
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje: Microblaze Cadena de diseo y montaje: Microblaze
system system software software
Xilinxs Xilinxs LibGen coge el archivo .MSS, .MHS (dependencia LibGen coge el archivo .MSS, .MHS (dependencia harware harware- -software) y la software) y la
libreras especificadas en el MSS y comprueba errores sintctico libreras especificadas en el MSS y comprueba errores sintcticos genera un rbol s genera un rbol
de directorios con los ficheros necesarios para la implementaci de directorios con los ficheros necesarios para la implementacin en la FPGA. n en la FPGA.
El compilador se encargara de generar el fichero con el cdigo y El compilador se encargara de generar el fichero con el cdigo y las las
funciones integradas, utilizando los drivers de cada perifrico. funciones integradas, utilizando los drivers de cada perifrico.
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje: Microblaze Cadena de diseo y montaje: Microblaze
system system software software
Necesitaremos los archivos MLD
(Microprocessor Library
Definition, para la definicin de
datos)) y Tcl (Tool Comand
Language, para la generacin de
datos, aunque no es necesario)
El archivo MLD esta
asociado a uno o
varios .h
Crea tus propias libreras para LibGen
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje: Microblaze Cadena de diseo y montaje: Microblaze
system system software software
El archivo .MDD servir a LibGen configurar los drivers, junto con
los archivos fuentes del mismo.
Crea tus propios drivers
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje: Microblaze Cadena de diseo y montaje: Microblaze
system system software software
Compilacin sencilla con Compilacin sencilla con mb_gcc mb_gcc, un , un
compilador GNU compilador GNU
Cdigo C en nuestro sistema Microblaze
#include "xgpio.h"
#include "xparameters.h"
void my_sleep(unsigned int seconds){
int i = 0;
unsigned int delay = 13000000;
for (i=0;i<(seconds*delay);i++){}
}
main(){
XGpio leds;
XGpio dips;
int j,k = 0;
//initialize leds
XGpio_Initialize(&leds, XPAR_LEDS_4BIT_DEVICE_ID);
XGpio_SetDataDirection(&leds, 0x00000000);
//initialize GPIO used as an input for the DIP switch
XGpio_Initialize(&dips, XPAR_DIPS_8BIT_DEVICE_ID);
XGpio_SetDataDirection(&dips, 0x000000F1);
xil_printf("The dIP Switch will set the delay in seconds\n");
while(1){
j=(j+1)%16;
//Write the value of j to the LED
XGpio_DiscreteWrite(&leds, ~j);
//Read the value from the DIP switch
k = XGpio_DiscreteRead(&dips);
xil_printf("Count = %d, DIP= %d \n\r" ,j,k);
my_sleep(k);
}
}
executable.elf: file format elf32-microblaze
Disassembly of section .text:
00000000 <_start>:
0: b8000018 bri 24
// 18 <_start1>
4: 80000000 or r0, r0, r0
8: b0007fff imm 32767
c: b808ffff brai -1
10: b0007fff imm 32767
14: b808ffff brai -1
00000018 <_start1>:
18: 21a01228 addi r13, r0, 4648
// 1228 <_SDA_BASE_>
1c: 20401160 addi r2, r0, 4448
// 1160 <_SDA2_BASE_>
20: 20201478 addi r1, r0, 5240
24: 20c001f4 addi r6, r0, 500
// 1f4 <_exception_handler>
28: d8c10000 sw r6, r1, r0
2c: c4e10000 lhu r7, r1, r0
30: f4e0000a shi r7, r0, 10
34: f4c0000e shi r6, r0, 14
38: 20c001fc addi r6, r0, 508
// 1fc <_interrupt_handler>
3c: d8c10000 sw r6, r1, r0
40: c4e10000 lhu r7, r1, r0
44: f4e00012 shi r7, r0, 18
48: f4c00016 shi r6, r0, 22
4c: b9f40028 brlid r15, 40
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de diseo y montaje: Cadena de diseo y montaje: Microblaze Microblaze
system system software software
Un Un Linker Linker Script Script
define el origen y define el origen y
la longitud de la la longitud de la
memoria local y de memoria local y de
la externa, para la externa, para
datos e datos e
instrucciones instrucciones
Varias opciones de Varias opciones de
compilacin compilacin
Mapeo de nuestro cdigo por el compilador
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Cadena de simulacin Cadena de simulacin
SimGen SimGen es capaz de generar un modelo es capaz de generar un modelo
en VHDL de nuestro sistema. en VHDL de nuestro sistema.
Solo tendremos que crear un Solo tendremos que crear un testbench testbench
para nuestro sistema para nuestro sistema
Esta opcin puede ser poco Esta opcin puede ser poco produceente produceente
por ejemplo al usar por ejemplo al usar UARTs UARTs
Necesitaremos Necesitaremos Modelsim Modelsim u otro simulador u otro simulador
de HDL para realizar la simulacin de HDL para realizar la simulacin
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Debugging Debugging
XMD sirve a GDB XMD sirve a GDB
( (debugger debugger de GNU) a de GNU) a
travs de TCP/IP travs de TCP/IP
Opciones del Opciones del debugging debugging
indicadas antes de indicadas antes de
compilar compilar
Varios modos para XMD y Varios modos para XMD y
Microblaze de conectar Microblaze de conectar
Modo simulador de Modo simulador de
instrucciones solo para el instrucciones solo para el
procesador, sin perifricos procesador, sin perifricos
XMD incluido en EDK 6.1 XMD incluido en EDK 6.1
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Ejemplo de Aplicacin de Microblaze Ejemplo de Aplicacin de Microblaze
RTOS (Real Time
Operating System)
Sierra16 de RealFast
Monitor para Monitor para
dubugging dubugging, accesos a , accesos a
memoria en memoria en
procesadores procesadores
paralelos. paralelos.
Accesibilida Accesibilida en en
paralelo por hardware paralelo por hardware
a recursos a recursos
Semaforos Semaforos, ,
Priorizacion Priorizacion, , timers timers. .
Parte del SO Parte del SO
implementado en implementado en
hardware para hardware para
ahorrar espacio de ahorrar espacio de
memoria memoria
"Procesador Embebido Microblaze" E. "Procesador Embebido Microblaze" E.
Aguayo UAM Aguayo UAM
Referencias Referencias
Get Get RealFast RealFast RTOS RTOS with with Xilinx Xilinx FPGAs FPGAs
by by Tommy Tommy Klevin Klevin, , Product Product Manager, Manager, RealFast RealFast
SoftTOTEM SoftTOTEM: AN FPGA IMPLEMENTATION OF THE TOTEM : AN FPGA IMPLEMENTATION OF THE TOTEM
PARALLEL PROCESSOR PARALLEL PROCESSOR Stephanie Stephanie McBader McBader, , Luca Luca
Clementel Clementel, , Alvise Alvise Sartori Sartori, Andrea , Andrea Boni Boni and and Peter Lee Peter Lee
Reconfigurable Reconfigurable computing computing, Eduardo , Eduardo Sanchez Sanchez Laboratoire Laboratoire de de
Systmes Systmes Logiques Logiques, , Ecole Ecole Polytechnique Polytechnique Fdrale Fdrale de de
Lausanne Lausanne
Mary Mary Jane Jane Irwin Irwin, CSE 597D , CSE 597D Embedded Embedded Systems Systems Desing Desing, ,
Pennsylvania Pennsylvania State State University University. .
Configuracion Configuracion de FPGAs de FPGAs xilinx xilinx, Sergio , Sergio Lopez Lopez- -Buedo Buedo. .
Introduccion Introduccion a los circuitos VLSI, Eduardo Boemo. a los circuitos VLSI, Eduardo Boemo.
www.xilinx.com www.xilinx.com

Potrebbero piacerti anche