picoblaze resumen: softmicro de 8 bits xilinx. 1 introducción 2 arquitectura picoblaze 3...

54
PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx

Upload: alejandra-agueero-rio

Post on 03-Feb-2016

272 views

Category:

Documents


1 download

TRANSCRIPT

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