core personalizado para manejo de servos

15
Juan Carlos Moctezuma Eugenio Ciencias Computacionales – INAOE Design Labs based on: Lab 6: Core personalizado para manejo de servos (PWM) Targeting: EDK-Microblaze 13.2 & Spartan-3A Board

Upload: mvictor619

Post on 30-Dec-2015

104 views

Category:

Documents


2 download

DESCRIPTION

En esta practica se guia a desarrollar un sistema embebido para el manejo de un servo motor (PWM) por medio de los pines de salida y entrada de la FPGA, y desde un core y un programa en C poder manejar las revoluciones.

TRANSCRIPT

Page 1: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio Ciencias Computacionales – INAOE

Design Labs based on:

Lab 6: Core personalizado para

manejo de servos (PWM)

Targeting: EDK-Microblaze 13.2 & Spartan-3A Board

Page 2: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-1 manejo de servos (PWM) IPN – 2012

Lab 6: Core personalizado para manejo de servo (PWM)

Introducción

Este laboratorio guia al asistente a través de las herramientas EDK, XPS y BSB para realizar un

sistema empotrado para FPGAs

Objetivos

Después de completer este laboratorio, el asistente sera capaz de:

• Realizar un diseño base con la herramienta BSB

• Configurar la parte hardware y software del sistema empotrado

• Agregar un nuevo core personalizado al sistema para generar una señal PWM

• Aprender a crear drivers para en la aplicación software

Descripción del diseño

Realizar un sistema base en BSB, después agregar un periférico personalizado que genera una señal

PWM parametrizable por el usuario, este módulo PWM será usado para el control de un servo-

motor. Por otro lado se creará una aplicación software en donde el usuario pueda manipular el ciclo

de trabajo de la señal PWM para hacer girar el servo; la señal PWM puede ser visualizada en un

osciloscopio. Los servos probados para este laboratorio son los Hi-Tec HS-311 y HS-422.

Figura A. Diagrama conceptual para el sistema base y modificaciones a realizar

BRAM

LMB

BRAM

Cnttlr

LMB

BRAM

Cnttlr

Microblaze

UART

GPIO Buttons

Stdin/Stdout

PWM Servo-motor

lab6code.c

manejo de

drivers

PWM

Page 3: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para manejo de servos (PWM)

Procedimiento

En esta sección el alumno encontrará todos los pasos necesarios para realizar el laboratorio. El procedimiento

incluye los siguientes pasos principales

1. Crear un sistema base usando BSB

2. Agregar e importar un

3. Realizar la aplicación software

4. Implementar el sistema en una tarjeta FPGA

Cada paso principal del procedimiento es

instrucciones específicas para alcanzar el objetivo final

Cuando se pida alguna información al asistente o que re

ícono

Paso 1. Crear un diseño base usando BSB

Abrir la herramienta XPS (Xilinx Platform Studio) de EDK para realizar un sistema

base usando BSB.

� Abrir la herramienta XPS seleccionando

Suite 13.2 →→→→ EDK →→→→ Xilinx Platform Studio

� A continuación aparece una ventana indicando la forma de iniciar un nuevo proyecto. Seleccionar

Base System Builder wizard

���� New Project …

� En la siguiente ventana,

Lab6 y que se encuentre en el directorio de trabajo

La ruta seleccionada NO debe tener espacios. Activar la casilla

que se usará para estos laboratorios, Click <OK>

Figura 1-1. Crear un nuevo proyecto

?

Juan Carlos Moctezuma Eugenio

Sistemas Empotrados en EDK IPN – 2012

encontrará todos los pasos necesarios para realizar el laboratorio. El procedimiento

guientes pasos principales:

Crear un sistema base usando BSB

Agregar e importar un core personalizado

Realizar la aplicación software

Implementar el sistema en una tarjeta FPGA

Cada paso principal del procedimiento es indicado por el ícono . Cada paso a su vez tiene

instrucciones específicas para alcanzar el objetivo final.

Cuando se pida alguna información al asistente o que responda ciertas preguntas aparecerá el

Crear un diseño base usando BSB

Abrir la herramienta XPS (Xilinx Platform Studio) de EDK para realizar un sistema

Abrir la herramienta XPS seleccionando Menu Inicio →→→→ Programas →→→→ Xilinx ISE Design

Xilinx Platform Studio

A continuación aparece una ventana indicando la forma de iniciar un nuevo proyecto. Seleccionar

Base System Builder wizard. Click <OK>. En caso de que no aparezca esta ventana ir al menú

En la siguiente ventana, dar el nombre system.xmp al proyecto. Crear una nueva carpeta llamada

y que se encuentre en el directorio de trabajo Lab_user,tal y como se muestra en la

La ruta seleccionada NO debe tener espacios. Activar la casilla PLB System, el cual es el tipo de bus

que se usará para estos laboratorios, Click <OK>

Crear un nuevo proyecto

6-2

encontrará todos los pasos necesarios para realizar el laboratorio. El procedimiento

paso a su vez tiene

ciertas preguntas aparecerá el

Abrir la herramienta XPS (Xilinx Platform Studio) de EDK para realizar un sistema

Xilinx ISE Design

A continuación aparece una ventana indicando la forma de iniciar un nuevo proyecto. Seleccionar

. Click <OK>. En caso de que no aparezca esta ventana ir al menú File

al proyecto. Crear una nueva carpeta llamada

,tal y como se muestra en la figura 1-1.

el cual es el tipo de bus

Page 4: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-3 manejo de servos (PWM) IPN – 2012

� Posteriormente seleccionar I would create a new design, click <NEXT>. Después seleccionar la

tarjeta Spartan 3A Starter Kit como se muestra en la figura 1-2, click <NEXT>

Figura 1-2. Seleccionar el tipo de tarjeta FPGA que será usada

� En estos momentos comienza la configuración de la plataforma hardware del sistema. Seguir el

siguiente procedimiento:

• Seleccionar Single Processor System, click <NEXT>

• Reference clock frequency: 50 MHz

• Processor : Microblaze

• System clock frequency: 50 MHz

• Local Memory: 16 KB

• Debug Interface: On Chip HW Debug Module, click <NEXT>

El siguiente paso es seleccionar los components hardware del sistema (cores/periféricos), seleccionar

los periféricos de tal forma que en la columna Processor 1 (Microblaze) Peripherals queden

únicamente los siguientes elementos: (Apoyarse de los botones ADD y REMOVE)

• BTNs_4bit: Seleccionar (dejar valores por default)

• RS232_DCE: Seleccionar (dejar valores por default)

• dlmb_ctrl: Seleccionar (dejar valores por default)

• ilmb_ctrl: Seleccionar (dejar valores por default), click <NEXT>

� Finalmente se abre la ventana donde se configura la memoria cache. En este caso NO se utiliza

memoria cache, así que permanecen deseleccionadas las dos opciones. Click <NEXT>, click

<FINISH>

El sistema base ha sido construido usando el BSB, al final en el XPS se deberá visualizar un sistema

como el de la figura 1-3.

Figura 1-3. Sistema empotrado FPGA creado con BSB

Page 5: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-4 manejo de servos (PWM) IPN – 2012

Paso 2. Agregar e importar un core personalizado al sistema

El paso siguiente es crear e importar un core personalizado (hecho por el usuario) al

sistema. Xilinx ofrece herramientas software para que el usuario pueda crear sus

propios periféricos de una forma sencilla.

� El primer paso es la creación del nuevo periférico personalizado. Seleccionar Menú Hardware

���� Create Import Peripheral…, Con esta opción se abre el wizard para crear/importar un

periférico hecho por el usuario; al final se tiene un core “template” que el usuario podrá

modificar para que realice la tarea deseada.

Figura 2-1. Abrir el Wizard para Crear/Importar un periférico

� Seguir el siguiente procedimiento para el Wizard de Create/Import Peripheral…

• Click <NEXT> en la ventana de bienvenida

• Seleccionar Create Template for new peripheral, click <NEXT>

• Seleccionar To an XPS Project, click <NEXT>

• Name: my_pwm, Version: 1.00.a, click <NEXT>

• Bus Type: Processor Local Bus (PLB), click <NEXT>

• Seleccionar SOLAMENTE los servicios: User Logic Software Registers y Sofware Reset, los

demás servicios deben estar deseleccionados; click <NEXT>

• Ventana Slave Interface, click <NEXT>

• Number of software registers: 2 ; click <NEXT>

• Ventana IP Interconnect, click <NEXT>

• Ventana Peripheral Simulation Support, click <NEXT>

• Seleccionar únicamente Generate template driver files…, click <NEXT>

• Click <FINISH>

1. Notar el contenido de las carpetas pcores y drivers dentro del directorio del proyecto ¿Qué

información contienen estas dos carpetas?

2. ¿Cuáles son los archivos VHDL “templates” creados para el nuevo periférico?, ¿Cuáles son

los drivers o funciones software que manejan el nuevo periférico?

?

Page 6: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-5 manejo de servos (PWM) IPN – 2012

� Copiar el archivo IPNEDK/Codigos/Lab6/div_pwm.vhd a la carpeta

pcores\my_pwm_v1_00_a\hdl\vhdl.

� El siguiente paso es realizar las modificaciones al archivo user_logic.vhd y my_pwm.vhd, esto

con la finalidad de agregar las funcionalidades que requiere el core. Abrir el archivo user_logic.vhd

localizado en la carpeta pcores\my_pwm_v1_00_a\hdl\vhdl y realizar las siguientes modificaciones:

• Localizar la declaración de puertos genéricos (línea 90 aprox.) y declarar dos puertos genéricos

DIV_FREQ y STEP_PWM, estos pueros genéricos podrán modificarse desde el cuadro de

configuración del core my_pwm. Note que en el archivo VHDL se indica donde el usuario puede

añadir líneas de código (por ejemplo “USER ports added here”)

• Localizar la declaración de puertos (línea 105 aprox.) y declarar dos puertos, uno de entrada clk y

otro de salida clk_out. El puerto de entrada irá conectado al reloj de 50 MHz mientras que el

reloj de salida representa la señal PWM.

• Localizar el comienzo de la arquitectura (línea 138 aprox.) y declarar las señales internas

rst_aux1y cycle_aux, las cuales representan el reset del módulo PWM y el ciclo de trabajo,

ambos serán dados por el usuario a través de la aplicación software. Note que el ciclo de trabajo

es de 8 bits, por lo que solo podrá tomar valores entre [0 255]

• Ir al final de la arquitectura (línea 230 aprox.) y capturar el código VHDL que instancia el

archivo div_pwm.vhd. Note que el reset del módulo así como el ciclo de trabajo son mapeados

hacia registros a nivel software, en específico el reset es mapeado al registro slv_reg0 y el ciclo

de trabajo al slv_reg1.

Page 7: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-6 manejo de servos (PWM) IPN – 2012

• Abrir el archivo my_pwm.vhd . Localizar la parte de declaración de puertos genéricos (línea 143

aprox.) y declarar los puertos genéricos DIV_FREQ y STEP_PWM; de igual manera localizar

la parte de puertos E/S (línea 168 prox.) y declarar los puertos clk y clk_out, estos puertos serán

mapeados a la entidad user_logic.

• Localizar la parte donde se mapea el componente user_logic (línea 425 aprox.) y mapear tanto los

puertos genéricos como los puertos E/S hacia la instancia user_logic. GUARDAR los cambios

realizados. Con esto finaliza la modificación de los templates VHDL creados. Ahora el nuevo

core está personalizado por el usuario.

Page 8: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-7 manejo de servos (PWM) IPN – 2012

3. Realice un diagrama esquemático en donde se muestre la funcionalidad del nuevo periférico,

así como la interacción de los registros a nivel software

Figura 2-2. Diagrama esquemático para el core personalizado

� Una vez que las modificaciones a los archivos VHDL fueron realizadas, el siguiente paso es

importar el periférico. Seleccionar nuevamente la opción Menú Hardware ���� Create Import

Peripheral…

� Seguir el siguiente procedimiento para el Wizard de Create/Import Peripheral…

?

Page 9: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-8 manejo de servos (PWM) IPN – 2012

• Click <NEXT> en la ventana de bienvenida

• Seleccionar Import existing peripheral, click <NEXT>

• Seleccionar To an XPS Project, click <NEXT>

• Name: my_pwm, Seleccionar Use Version: 1.00.a, click <NEXT>. Indica que ya hay

un core con ese nombre y que si deseamos sobreescribirlo, click <YES>.

• Seleccionar SOLAMENTE: HDL Source files, click <NEXT>

• Seleccionar Use existing Peripheral Analysis Order (*.pao), click <BROWSE>; seleccionar el

archivo my_pwm_v1_00_a ���� data ���� my_pwm_v2_1_0.pao, click <OK>, click <NEXT>

• En la ventana de HDL Analysis Information; dar click <ADD FILES…> y seleccionar el

archivo pcore ���� my_pwm_v1_00_a ���� hdl ���� vhdl ���� div_pwm.vhd.

Mover el archivo div_pwm.vhd arriba del archivo user_logic.vhd para respetar el orden de

jerarquía para sintetizar de manera correcta el nuevo core (figura 2-3); click <NEXT>.

Si existe algún error de sintaxis en los archive VHDL muestra una ventana de error, de lo

contrario pasa a la siguiente ventana del wizard. Si existe algún error, corregirlo y volver a

importar el periférico.

Figura 2-3. Ordenar jerárquicamente los archivos VHDL a sintetizar.

• Seleccionar Select Bus Interfaces, seleccionar PLB Slave (SPLB); lick <NEXT>

• Ventana SPLB: port, click <NEXT>

• Ventana SPLB: parameter, Seleccionar C_BASEADDR y C_HIGHADDR respectivamente,,

click <NEXT>

• Deseleccionar Select and configure interrupts; click <NEXT>

• Ventana Parameter attributes, click <NEXT>

• Ventana Port attributes, click <NEXT>

• Click <FINISH>

4. Abrir el archivo my_pwm_v2_1_0.pao e indicar que representa este archivo

� Ir al Menú Project ���� Rescan user repositories. Ir a la pestaña IP Catalog, desglozar la

categoría USER y añadir el nuevo periférico dando doble click sobre el core my_pwm. Conectar el

core al bus PLB tal y como lo muestra la figura 2-4.

Posteriormente dar doble click sobre el core my_pwm_0 y configurar sus puertos genéricos. Con esta

configuración se tiene una frecuencia de salida de 400 Hz (2.5 ms de periodo) y el rango de operación

para el ciclo de trabajo será [0 20] (este resultado es la división de 125,000/6,250 ). Click <OK>.

DIV_FREQ = 125,000

STEP_PWM = 6,250

?

Page 10: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-9 manejo de servos (PWM) IPN – 2012

Asegurarse que el parámetro C_SPLB_CLK_PERIOD_PS = 20,000 ya que la frecuencia del sistema

es de 50 MHz.

Figura 2-4. Agregando el core hecho por el usuario.

� Cambiarse a la pestaña Ports, desglozar el core my_pwm_0 y seleccionar en el campo clk_out����

Make external. Además conectar el puerto clk ���� clk_50_0000MHz. Con estas modificaciones se

esta creando un puerto externo para tener como salida la señal PWM que irá a un servo-motor. Note

que en la opción External Ports se han agregado estos puertos externos (figura 2-5).

Figura 2-5. Agregando puertos externos para los nuevos cores

Ir a la pestaña Addresss y dar click en el botón Generate Addresses para generar

automáticamente el espacio de memoria para los nuevos periféricos. Por default asigna 64K a cada

periférico

El paso siguiente es realizar la asignación de pines a los nuevos periféricos en el archivo UCF. En

la pestaña Project dar doble click al archivo system.ucf. Capturar las restricciones para el nuevo core

(figura 2-6). Corroborar esta asignación de pines en el archivo IPNEDK/Datasheet/Spartan3A.pdf

Net my_pwm_0_clk_out_pin LOC=W17 | IOSTANDARD = LVCMOS33;

Figura 2-6. Asignación de pines para los nuevos cores

� Hasta este momento finaliza la configuración del hardware del sistema. El paso final es generar el

archivo bitstream. Seleccionar la opción Menú Hardware ���� Generate Bitstream (este proceso

tarda 15 min aproximadamente)

Page 11: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-10 manejo de servos (PWM) IPN – 2012

Paso 3. Realizar la aplicación software

El siguiente paso es desarrollar la parte software del sistema. En esta parte se utiliza

la herramienta SDK (Software Development Kit) y básicamente se realizan 3

proyectos: la plataforma de información hardware, el BSP (board support package) y

la aplicación de usuario.

� Exportar la información de la plataforma hardware hacia SDK. Click en el botón <EXPORT

HARDWARE DESIGN TO EDK>. Después se visualiza una ventana donde se selecciona “Export &

Launch SDK” (figura 3-1)

Figura 3-1. Exportar la información hardware hacia SDK.

� En el cuadro de diálogo que se muestra a continuación seleccionar la ruta Lab_user\Lab6\SDK

como el directorio workspace (figura 3-2), click <OK>

Figura 3-2. Seleccionar el directorio Workspace

� Una vez que el entorno SDK es abierto, se crea automáticamente un proyecto llamado

hw_platform_0 (parte izquierda en Project Explorer), este proyecto contiene la información hardware

necesaria y se conforma por 3 tipos de archivos: BMM, BIT y XML.

Opcionalmente este proyecto hardware puede ser creado de forma manual desde el menú File ���� New

���� Xilinx Hardware Platform Specification

� Antes de crear el Board Support Package, es necesario incorporar los drivers del core ALU al

proyecto. Ir a Menú Xilinx Tools ���� Repositories. En el campo “Local Repositories”, click <NEW>,

buscar el directorio del proyecto IPNEDK/Lab_user/Lab6, click <APPLY>, click <OK>.

� El siguiente paso es crear un proyecto para crear el BSP. Ir al menú File ���� New ���� Xilinx

Board Support Package, después aparece la ventana en donde se selecciona el tipo de BSP (o

Page 12: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-11 manejo de servos (PWM) IPN – 2012

sistema operativo) a usar, en este caso será un STANDALONE. Se dejan todas las opciones por

defecto y dar click <FINISH> (figura 3-3)

Después se abre la ventana de configuración del BSP en donde se pueden seleccionar algunas librerías

y drivers para cada uno de los periféricos en el sistema. Explorar los diferentes campos y dejar todas

las opciones por defecto, click <OK>. Nuevamente en el Project Explorer se puede visualizar el

nuevo proyecto realizado llamado standalone_bsp_0

Figura 3-3. Configuración del BSP.

� El siguiente paso consiste en crear un proyecto para la aplicación de usuario. Ir al Menú ���� New

���� Xilinx C Project, dar como nombre de proyecto TestApp1 y seleccionar como template Empty

Application. (figura 3-4). Click <NEXT>

En la siguiente ventana seleccionar Target an existing Board Support Package � standalone_bsp_0,

click <FINISH>. (figura 3-4)

Figura 3-4. Creando el proyecto para la aplicación de usuario en C.

En la ventana Project Explorer, Click DERECHO sobre la carpeta TestApp1 ���� src y seleccionar

Import…

Ir a General ���� File system, click <NEXT>

Click <BROWSE>, Seleccionar la carpeta IPNEDK/Codigos/Lab6, click <OK>

Page 13: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para manejo de servos (PWM)

Seleccionar las casillas lab6

5. Definir qué es lo que realiza la función

6. ¿Que es lo que hace el siguiente código?, ¿Por

MY_PWM_mWriteReg(PWM_ADD,REG0,1);

MY_PWM_mWriteReg(PWM_ADD,REG0,0);

7. ¿Por qué el ciclo de trabajo de la aplicación software es solo de 0 a 20?, ¿Qué parámetros

definen este rango?

8. ¿Qué pasa si se da un número mayor al máximo permitido (20) en el ciclo de trabajo?

9. A continuación se muestra una figura que indica

para que el servo-

cuanto tiene que dar el usuario en el

0, 45, 90, -45 y -90

Utilice la fórmula T1 = STEP_PWM * cycle * 20 ns

?

Juan Carlos Moctezuma Eugenio

Sistemas Empotrados en EDK IPN – 2012

lab6code.c, click <FINISH>

es lo que realiza la función lee_num

¿Que es lo que hace el siguiente código?, ¿Por qué se escribe al registro 0?

MY_PWM_mWriteReg(PWM_ADD,REG0,1);

MY_PWM_mWriteReg(PWM_ADD,REG0,0);

¿Por qué el ciclo de trabajo de la aplicación software es solo de 0 a 20?, ¿Qué parámetros

definen este rango?

¿Qué pasa si se da un número mayor al máximo permitido (20) en el ciclo de trabajo?

A continuación se muestra una figura que indica el tiempo que debe durar en 1 la señal PWM

-motor gire a determinada posición. De acuerdo a esta información indique

cuanto tiene que dar el usuario en el ciclo de trabajo para que el motor este en las posiciones

90 grados. Recuerde que el rango del ciclo de trabajo es [0 20]

T1 = STEP_PWM * cycle * 20 ns

6-12

¿Por qué el ciclo de trabajo de la aplicación software es solo de 0 a 20?, ¿Qué parámetros

¿Qué pasa si se da un número mayor al máximo permitido (20) en el ciclo de trabajo?

el tiempo que debe durar en 1 la señal PWM

motor gire a determinada posición. De acuerdo a esta información indique

para que el motor este en las posiciones

[0 20]

Page 14: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-13 manejo de servos (PWM) IPN – 2012

Paso 4. Implementar el sistema en una tarjeta FPGA

El paso final consiste en juntar las partes hardware y software del sistema en un solo

archivo de configuración BIT para poder programar el FPGA. La herramienta que

logra realizar la fusión es llamada BitInit

� El primer paso es conectar y prender la tarjeta FPGA Spartan 3A para validar el sistema. Tener

conectado también un cable serial-USB a la computadora y al conector serial de la tarjeta FPGA.

Conectar el servo-motor HS422 al pin de la tarjeta FPGA que indica el archivo UCF. Tener cuidado

con la polarización del voltaje e identificar el pin de la señal PWM en el servo. Consultar el datasheet

del motor (IPNEDK/Datasheet/Motor_HS422.pdf) para verificar las condiciones de consumo de

corriente y alimentación de voltaje.

� En la pestaña Terminal 1, dar click en <SETTINGS> y configurar la terminal para que se

comporte como un puerto serial de 9600 Baud Rates, (figura 4-1). IMPORTANTE: Note que el

número de puerto debe coincidir con el puerto al que está conectado el convertidor USB-SERIAL.

Finalmente dar click en el botón <CONNECT>

Figura 4-1. Configurando el puerto serial que se comunica con la tarjeta FPGA

� En el siguiente paso se programa la tarjeta FPGA, click en el botón <PROGRAM FPGA>.

Page 15: Core personalizado para manejo de servos

Juan Carlos Moctezuma Eugenio

Lab 6: Core personalizado para Sistemas Empotrados en EDK 6-14 manejo de servos (PWM) IPN – 2012

En la ventana que aparece a continuación se pude seleccionar con que aplicación inicial será

programado el FPGA, seleccionar TestApp1.elf (figura 4-3), click <PROGRAM>

Figura 4-3. Programar el FPGA con una aplicación inicial (bootloop o ELF)

� Después que el FPGA es programado el resultado de la aplicación se observa en la figura 4-4. El

servo-motor debe ir girando conforme a los valores del ciclo de trabajo.

Figura 4-4. Salida del Test en el Terminal