Академический Документы
Профессиональный Документы
Культура Документы
Picoblaze
Granada,Curso 20102011
1
Prctica 2
Diseos basados en procesador Bsico. Inclusin de una UART. Procesadores vs. FSMs
Granada,Curso 2010-2011
PicoBlaze
Granada,Curso 2010-2011 3
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
Granada,Curso 2010-2011
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
Ejercicio 1: tareas
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
Granada,Curso 2010-2011
12
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
Granada,Curso 2010-2011
13
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
uart_rx
rx_data
00 rx_data 0
D en
alarm
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
Cdigo ensamblador
DSI INGENIERA TELECOMUNICACIONES
Definicin del puerto de entrada de PicoBlaze
Nombres de registros
Granada,Curso 2010-2011
16
Cdigo ensamblador II
Inicializacin
Comprobamos si TIME ha sido escrito correctamente
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
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
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.
Granada,Curso 2010-2011
19
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
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
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
Granada,Curso 2010-2011
24