PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3...

54
PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx

Transcript of PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3...

Page 1: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

PICOBLAZE

RESUMEN:Softmicro de 8 bits Xilinx

Page 2: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

1 Introducción2 Arquitectura Picoblaze3 Programación en ensamblador Picoblaze4 Integración con VHDL

Procesadores Embebidos de 8 bits

Page 3: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 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

Page 4: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Diagrama de un fsmd y un microprocesador

Page 5: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

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

Page 6: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Diagrama a bloques de picoblaze

Page 7: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

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

Page 8: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

KC

PSM

3

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

Page 9: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

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

KC

PSM

3

Page 10: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

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.

Page 11: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 12: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

CONJUNTO DE INSTRUCCIONES57 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

Page 13: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

FORMATO DE INSTRUCCIÓN

Page 14: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

FORMATO DE INSTRUCCIÓN

Page 15: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Comparación y Test

Comp: comparan 2 registros o bien reg – cte y las banderas de Z y C se ponen a 1

Page 16: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 17: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

FORMATO DE INSTRUCCIÓN

Page 18: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

FORMATO DE INSTRUCCIÓN

Page 19: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

FORMATO DE INSTRUCCIÓN

Page 20: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Instrucciones tipo lógicas

Page 21: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Aritméticas

Page 22: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

De prueba y comparación

Page 23: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Corrimiento y rotación

Page 24: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 25: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Movimiento de datos

Page 26: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Control del flujo de programa

Page 27: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 28: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 29: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Relacionadas con las interrupciones

Page 30: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 31: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 32: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 33: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 34: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 35: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 36: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 37: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 38: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 39: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 40: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 41: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 42: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 43: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 44: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 45: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 46: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 47: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.
Page 48: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Directivas pblaze ide

Page 49: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Diferencias entre la sintaxis del kcpsm3 y Pblaze Ide

Page 50: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

En matlab: Xlpb_as

Otra manera de ensamblar unprograma es a través de MATLAB. Paraesto, ejecutamos en la ventana decomandos >> cd c:\assembler; xlpb_as-p 'diego.psm'La primera instrucción cdc:\assembler es para ubicarnos en lacarpeta donde guardamos el programa yla segunda xlpb_as -p 'diego.psm' espara ensamblar el programa (se puedeexplorar en detalle el comando xlpb_asejecutando type xlpb_as en la ventanade comandos de MATLAB). Si elprograma no presenta errores, se tiene lasiguiente presentación en pantalla:

Page 51: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Servomotor

Motor de DC

Circuito de retroalimentación un potenciómetro mide la posición del eje, para que el control mantenga la salida con precisión

Control de motor en lazo cerrado

Un controlador externo le dice al servo donde ir con una señal conocida como modulación de pulso proporcional (PPM).

La modulación por ancho de pulso permite un ciclo de trabajo ( el porcentaje de tiempo en alto contra el tiempo en bajo) que es de 0 al 100 porciento del tiempo del periodo

La PPM usa de 1 a 2 ms de salida de los 20 ms posibles de tiempo de periodo para codificar su información

La duración de los impulso indican el Angulo del giro del motor, cada servo motor tiene su margen de operación que corresponden con el ancho de impulso máximo y mínimo que el servo entiende y que mecánicamente no puede sobrepasar

Page 52: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Servomotor Futaba 3003

Page 53: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

El periodo entre pulso y pulso no es critico

Se suelen emplear valores entre 10 ms y 30 ms, aunque es habitual utilizar 20 ms que implican una frecuencia de 50 Hz

Para que un servomotor mantenga la misma posición es necesario enviarle continuamente un pulso de ancho constante

Si se deja de enviar pulsos o el intervalo entre pulsos es mayor del máximo permitido entonces el servomotor perderá fuerza y dejara de intentar mantener su posición.

Page 54: PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx. 1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL.

Algoritmo de Control Servomotor

inicio

Leer dato puerto de entrada

Contadores y banderas a 0

Poner a 1 el puerto de salida

Retardo de 300 µs

¿Puerto entrada = contador?

contador + 1

Retardo de 10 µs

no

Poner a 0 el puerto de salida

Cantidad bajo = 200 – dato puerto de entrada

Contador bajo + 1

Retardo de 10 µs

¿Cantidad bajo =

contador bajo?

Retardo de 17.7 ms

si

nosi