RESUMEN: Softmicro de 8 bits Xilinx PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx
Procesadores Embebidos de 8 bits 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL
Picoblaze Aplicaciones Microprocesador de 8 bits Empotrado en un FPGA Xilinx Soft core Optimizado ocupa 200 celdas lógicas Menos del 5% Spartan 3s200 Aplicaciones Debido a que el desarrollo del software es usualmente mas fácil que crear hardware a la medida, la opción de un microcontrolador es preferida para aplicaciones no criticas en el tiempo. Picoblaze requiere 2 ciclos para completar una instrucción Si el reloj del sistema es de 50 MHz, Picoblaze ejecuta 25 millones de instrucciones por segundo
Diagrama de un fsmd y un microprocesador
Organización básica Bus de datos de 8 bits ALU de 8 bits con banderas de acarreo e indicación de cero 16 registros de propósito general de 8 bits 64 byte de memoria de datos Formato de instrucciones de 18 bits Bus de direcciones de 10 bits (1024 instrucciones) Stack de 31 palabras 256 puertos de entrada 256 puertos de salida 2 ciclos de reloj por instrucción 5 ciclos de reloj para respuesta de interrupcion Organización básica
Diagrama a bloques de picoblaze
Top Level HDL modules Picoblaze es un sistema organizado en 2 módulos de alto nivel en HDL El modulo KCPSM3 es el procesador Picoblaze
KCPSM3 clk (entrada 1 bit), señal de reloj del sistema reset (entrada 1 bit), señal de reset address (salida 10 bits), dirección de la memoria de instrucciones, especifica la localidad de donde se va a leer la instrucción instruction ( entrada 18 bits), instrucción port_id(salida 8 bits), dirección del puerto de entrada o puerto de salida in_port(entrada 8 bits), datos de entrada de los periféricos de entrada /salida read_strobe(salida 1 bit), strobe asociado con la operación de entrada KCPSM3
out_port( salida 8 bits), datos de salida hacia los periféricos de entrada/salida write_strobe (salida 1 bit) strobe asociado con las operaciones de salida interrupt ( entrada 1 bit) solicitud de interrupción de los periféricos de entrada/salida interrupt_ack (salida 1 bit), reconocimiento de la interrupción hacia los periféricos de entrada/salida KCPSM3
El segundo modulo es para la memoria de instrucciones Durante el desarrollo usualmente almacenamos el código ensamblado en la memoria y se configura como una ROM en el lenguaje de descripción de hardware.
CONJUNTO DE INSTRUCCIONES MODELO DE PROGRAMACIÓN 57 INSTRUCCIONES Instrucciones del tipo: Lógicas Aritméticas De prueba y comparación Corrimiento y rotación Movimiento de datos Control del flujo de programa Relacionadas con las interrupciones
FORMATO DE INSTRUCCIÓN
FORMATO DE INSTRUCCIÓN
Comparación y Test Comp: comparan 2 registros o bien reg – cte y las banderas de Z y C se ponen a 1
FORMATO DE INSTRUCCIÓN
FORMATO DE INSTRUCCIÓN
FORMATO DE INSTRUCCIÓN
Instrucciones tipo lógicas
Aritméticas
De prueba y comparación
Corrimiento y rotación
Movimiento de datos
Control del flujo de programa
Relacionadas con las interrupciones
Directivas pblaze ide
Diferencias entre la sintaxis del kcpsm3 y Pblaze Ide
En matlab: Xlpb_as Otra manera de ensamblar un programa es a través de MATLAB. Para esto, ejecutamos en la ventana de comandos >> cd c:\assembler; xlpb_as -p 'diego.psm' La primera instrucción cd c:\assembler es para ubicarnos en la carpeta donde guardamos el programa y la segunda xlpb_as -p 'diego.psm' es para ensamblar el programa (se puede explorar en detalle el comando xlpb_as ejecutando type xlpb_as en la ventana de comandos de MATLAB). Si el programa no presenta errores, se tiene la siguiente presentación en pantalla: