Вы находитесь на странице: 1из 24

DSI INGENIERA TELECOMUNICACIONES

Picoblaze

Granada,Curso 20102011
1

DSI INGENIERA TELECOMUNICACIONES

Prctica 2
Diseos basados en procesador Bsico. Inclusin de una UART. Procesadores vs. FSMs

Granada,Curso 2010-2011

DSI INGENIERA TELECOMUNICACIONES

PicoBlaze

Granada,Curso 2010-2011 3

PicoBlaze KCPSM3 processor

Desarrollado por Ken Chapman, Xilinx; chapman@xilinx.com


VHDL Core con ensamblador: descargable gratuitamente desde www.xilinx.com Xilinx PicoBlaze es un procesador compacto con arquitectura RISC de 8 bits de bajo coste. Est optimizado para las familias Xilinx Spartan-3, Virtex-II, Virtex-II Pro and Virtex-4 FPGAs y CoolRunner-II CPLDs Caractersticas bsicas:

DSI INGENIERA TELECOMUNICACIONES

Prestaciones predecibles, cada instruccin tarda en ejecutarse 2 ciclos de reloj. Las prestaciones van desde 200 MHz o 100 MIPS en una Virtex-4 FPGA hasta 88 MHz o 44 MIPS en una Spartan-3 FPGA
Registros de proposito general de 6 bytes Memoria de hasta 1K instrucciones que se cargan automticamente tras la programacin del dispositivo. ALU de 8 bits con flags de acarreo y cero. 64-bytes scratchpad RAM 256 puertos de entrada y 256 de salida para comunicacin con perifricos Pila de hasta 31 llamadas CALL/RETURN con localizacin automtica Disponible herramientas de emsambaldo y simulador

El PicoBlaze (KCPSM3) incluye entorno para ensamblado de programas y macros para comunicaciones serie.
Granada,Curso 2010-2011 4

Versiones y prestaciones
DSI INGENIERA TELECOMUNICACIONES

Granada,Curso 2010-2011

Arquitectura del PicoBlaze


DSI INGENIERA TELECOMUNICACIONES

Para ms informacin consultar el KCPSM3_manual.pdf

Granada,Curso 2010-2011

Ensamblador para PicoBlaze


DSI INGENIERA TELECOMUNICACIONES

Para ms informacin consultar el KCPSM3_manual.pdf


Granada,Curso 2010-2011 7

Repertorio de instrucciones
DSI INGENIERA TELECOMUNICACIONES

Granada,Curso 2010-2011

Ejemplo de aplicacin
DSI INGENIERA TELECOMUNICACIONES
Located in the heart of Times Square in New York, NY, the massive advertising and news display (135 x 26 feet) boasts nearly two million pixels, displays four trillion colors, and is remotely updated and monitored constantly for temperature and voltage changes. The design makes extensive use of the 8-bit PicoBlaze microcontroller implemented in a 3S200 device. This controller was to provide a quick and easy way to develop control functions. The PicoBlaze processor is a programmable state machine, meaning that the state machine is already built; one just has to program it.

Granada,Curso 2010-2011

Ejercicio 1
DSI INGENIERA TELECOMUNICACIONES

Las tareas a desarrollar son:


Mostrar en un puerto de salida un patron generado en software Contar el nmero de interrupciones externas generadas al PicoBlaze Mostrar el valor del contador de interrupciones en un puerto de salida

Funcionamiento del PicoBlaze KCPSM3_Manual.pdf


Granada,Curso 2010-2011 10

Ejercicio 1: tareas

Crear un proyecto nuevo con el ISE:


Device Family: Virtex2P Device: XC2VP30 Package: ff896 Speed Grade: 6 Synthesis Tool: XST (VHDL/Verilog) Simulator: ISE Simulator Preferred Language: VHDL

DSI INGENIERA TELECOMUNICACIONES

Aadir al proyecto los ficheros kcpsm3_int_test y kcpsm3. Abrir y ver el cdigo del fichero init_test.psm. Ensamblar con el KCPSM3.EXE. Aadir al proyecto el fichero de la memoria int_test.vhd . Aadir al proyecto el fichero test_bench.vhd (carpeta VHDL). Simular el proyecto con el ISE simulator (simulacin funcional). Implementar el proyecto y aalizar los resultados.

Granada,Curso 2010-2011

11

Software de la aplicacin
DSI INGENIERA TELECOMUNICACIONES
Initialize counter And setup pattern

Repeatedly output Pattern on wave output port

counts number of Interrupts and output To counter output port

Granada,Curso 2010-2011

12

Hardware del sistema


Displays pattern Generated in SW App

DSI INGENIERA TELECOMUNICACIONES

In_port interrupt

out_port[7:0] port_id[7:0]
port_id[1]

waveforms

PicoBlaze
Instructions

write_stro be Interrupt_ac k

en

D en

counter

Address

port_id[2]

Instructions
Displays count value Of SW interrupt counter
Interrupt_event

control

User generates interrupts externally; Reset upon acknowledgement

Granada,Curso 2010-2011

13

Ejercicio II: Reloj de tiempo real con interfaz UART


DSI INGENIERA TELECOMUNICACIONES

Pretendemos desarrollar un reloj de tiempo real que sea capaz de interpretar comando sencillos:
TIME ver tiempo actual en formato hh:mm:ss TIME hh:mm:ss para fijar la hora del sistema ALARM visualiza la hora y el estado de la alarma (ON, OFF, Active) ALARM hh:mm:ss fija la hora de la alarma y el estado de la misma. ALARM ON habilita la alarma. ALARM OFF deshabilita la alarma

El formato hh:mm:ss visualiza el tiempo en formato de 24 horas.


Granada,Curso 2010-2011 14

Arquitectura con PicoBlaze


DSI INGENIERA TELECOMUNICACIONES
en_16_x_baud Baud Count out_port[7:0]
D
port_id[0] en

uart_rx

rx_data
00 rx_data 0

D en

alarm

rx_full rx_half_full tx_full, tx_half_full

interru pt

port_id[7:0]

PicoBlaze

Instructions

write_stro be Interrupt_ac k
port_id[ 0]

uart_tx

tx

Address

Instructions

Interrupt_event

control

clk

100MHz

DCM

50MHz

Falta por ser aadido!


Granada,Curso 2010-2011 15

Cdigo ensamblador
DSI INGENIERA TELECOMUNICACIONES
Definicin del puerto de entrada de PicoBlaze

Definicin del puerto de salida de PicoBlaze

Nombres de registros

Granada,Curso 2010-2011

16

Cdigo ensamblador II
Inicializacin
Comprobamos si TIME ha sido escrito correctamente

DSI INGENIERA TELECOMUNICACIONES

Envo de prompt. Esperando comandos de usuario

El tiempo indicado por el usuario es Comprobado, almacenado en los registros de PicoBlaze y transmitido por la UART para visualizacin en el hiperterminal
Granada,Curso 2010-2011 17

Cdigo ensamblador III


Comprobamos si ALARM ha sido introducido correctamente

DSI INGENIERA TELECOMUNICACIONES

Se comprueba la introduccin del comando Alarm tiempo correctamente. Se almacena en los registros de PicoBlaze y se Transmite a la UART para visualizacin en el Hiperterminal.
Granada,Curso 2010-2011 18

Ejercicio II: tareas 1


DSI INGENIERA TELECOMUNICACIONES Crear un nuevo proyecto para la tarjeta. Aadir el fichero top de la jerarqua (uart_clock.vhd). Aadir el resto de ficheros VHDL que solicita (asociados a la UART, el procesador, la ROM de programa, etc..). Todos ellos disponibles en la carpeta ejercicio2. El diseo proporcionado es incompleto. Necesitamos aadir un DCM para pasar de 100 a 50 MHz.

Abrir el proyecto creado. En la ventana New Source window, seleccionar IP (CoreGen & Architecture Wizard) y seleccionar un single dcm. Caractersticas: CLK0, CLKFX y LOCKED Checked, no reset, Frecuencia de entrada de100 MHz. En la ventana Xilinx Clocking Wizard Clocking Frequency Synthesizer escribir 50 Mhz como frecuencia de salida y generar el DCM. Tras unos segundos, en la ventana Sources del ISE aparecer el componente creado.

Enhorabuena! has creado un DCM!

Granada,Curso 2010-2011

19

Ejercicio II: tareas 2


DSI INGENIERA TELECOMUNICACIONES

Usando View HDL Instantiation Template en la ventana Processes podemos ver el cdigo generado as com la plantilla de instanciacin del componente. Aadir el componente a nuestro diseo. Crear las seales necesarias para el correcto funcionamiento del sistema y sintetizarlo para ver que no tenemos fallos. Un ejemplo de la instanciacin sera:

Inst_my_dcm: my_dcm PORT MAP( CLKIN_IN => clk, CLKFX_OUT => clk50MHz, CLKIN_IBUFG_OUT => open, CLK0_OUT => open, LOCKED_OUT => lock); Poner la seal LOCK como salida del sistema.

Granada,Curso 2010-2011

20

Ejercicio II: tareas 3


DSI INGENIERA TELECOMUNICACIONES

Utilizando la herramienta PACE, asignar los pines del proyecto (ver documentacin XUP2PRO para detalles). El fichero UCF debera quedar como sigue.
NET "alarm" LOC = "ac3" ; NET "clk" LOC = "aj15" ; NET "lock" LOC = "ac4" ; NET "rx" LOC = "aj8" ; NET "tx" LOC = "ae7" ;

Compilar y ensamblar el cdigo y aadir el fichero de ROM . Implementar el diseo y generar el fichero de programacin.

Granada,Curso 2010-2011 21

Ejercicio II: tareas 4


DSI INGENIERA TELECOMUNICACIONES

Configurar el hiperteminal con la configuracin siguiente:


Baud rate de 9600 Datos de 8 bits Sin paridad 1 bit de stop Deshabilitar el control de flujo

Nota: Comprobar que los valores de los contadores del cdigo VHDL (baud_count) son correctos para esta configuracin del hiperterminal.

Adems, en propiedades marcar la casilla agregar avance de lnea al final de cada lnea recibida Programar la placa. Comprobar con el hiperterminal que el sistema funciona correctamente para los distintos comandos
Granada,Curso 2010-2011 22

Bibliografa PICOBLAZE
DSI INGENIERA TELECOMUNICACIONES

Pgina oficial de Xilinx: http://www.xilinx.com/ipcenter/processor_cen tral/picoblaze/picoblaze_user_resources.htm Version HDL (no netlist) PacoBlaze http://bleyer.org/pacoblaze/ IDE de programacin y simulacin compatible con PicoBlaze (cuidado con los cambios menores en el estandard) http://www.mediatronix.com/tools/index.htm
Granada,Curso 2010-2011 23

DISCUSIN: FSMs o Micros


DSI INGENIERA TELECOMUNICACIONES Prcticamente todas las aplicaciones empotradas requiren del uso de mquinas de estados finitos (FSMs). Si la FSM es sencilla, los lenguajes HDL son una herramienta ptima para describirlas. Desgraciadamente, para algunas aplicaciones se requieren muchos estados, entradas y/o salidas lo que hace el uso de FSMs complejo e ineficiente. Notemos que los HDL estn pensados para programacin concurrente y las FSM son procesos pensados para el desarrollo de operaciones secuencialmente. En situaciones como interfaz UART con interprete de comandos sencillos, control de LCDs, I2C o SPI master, control PID, etc.. el uso de micros empotrados de muy bajo consumo de recursos puede ser una alternativa eficiente al desarrollo de FSMs. Algunos llaman al PicoBlaze maquina de estados programable.

Granada,Curso 2010-2011

24

Вам также может понравиться