PICOBLAZE - WordPress.com

Download Report

Transcript PICOBLAZE - WordPress.com

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
Diagrama de un fsmd y un
microprocesador











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
o out_port( salida 8 bits), datos de
salida hacia los periféricos de
entrada/salida
o write_strobe (salida 1 bit) strobe
asociado con las operaciones
de salida
o interrupt ( entrada 1 bit) solicitud
de interrupción de los periféricos
de entrada/salida
o interrupt_ack (salida 1 bit),
reconocimiento
de
la
interrupción hacia los periféricos
de entrada/salida

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








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
MODELO DE
PROGRAMACIÓN
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: