520 likes | 801 Vues
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 Microprocesador de 8 bits Empotrado en un FPGA Xilinx Soft core
E N D
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 • 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
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
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
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 57 INSTRUCCIONES MODELO DE PROGRAMACIÓN • 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
Comparación y Test Comp: comparan 2 registros o bien reg–cte y las banderas de Z y C se ponen a 1
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 typexlpb_as en la ventana de comandos de MATLAB). Si el programa no presenta errores, se tiene la siguiente presentación en pantalla: