12
Juan Carlos Moctezuma Eugenio Ciencias Computacionales – INAOE Design Labs based on: Lab 1: Creación de un sistema base usando BSB (Base System Builder) y desarrollo de aplicaciones software Targeting: EDK-Microblaze 13.2 & Spartan-3A Board

Base system builder

Embed Size (px)

DESCRIPTION

Laboratiorio 1, BSB, sistemas embebidos, EDK xilinx

Citation preview

Juan Carlos Moctezuma Eugenio Ciencias Computacionales – INAOE

Design Labs based on:

Lab 1: Creación de un sistema base

usando BSB (Base System Builder) y

desarrollo de aplicaciones software

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

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Sistemas Empotrados en EDK 1-1 Base usando BSB IPN – 2012

Lab 1: Creación de un sistema base usando BSB

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:

• Crear de forma rápida un diseño base usando BSB

• Configurar la parte hardware y software del sistema empotrado

• Familiarizarse con las entradas-salidas estándares (stdin / stdout)

• Entender el proceso general para realizar un sistema base, no así entender el flujo de diseño, ni

detalles relacionados con la configuración de los cores y la generación de la aplicación software

Descripción del diseño

Crear un sistema base en EDK que tenga los elementos de la figura A. El sistema se compone por el

procesador Microblaze, memoria BRAM la cual servirá para instrucciones y datos; además el sistema

consta de tres periféricos: UART para la entrada/salida estándar, MPMC para controlar la memoria

DDR exterma de la tarjeta y un GPIO para controlar los botones de la tarjeta. El sistema debe ser

construido usando la herramienta BSB (Base System Builder)

Figura A. Diagrama conceptual para el sistema base

BRAM

LMB

BRAM

Cnttlr

LMB

BRAM

Cnttlr

Microblaze

UART

GPIO Buttons

MPMC Cntrl DDR2

Stdin/Stdout

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Base usando BSB

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. Desarrollo del proyecto software

3. Implementar el diseño en la tarjeta FPGA

Cada paso principal del procedimiento es

instrucciones específicas para alcanzar el objeti

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

ícono

Paso 1. Crear un sistema base usando BSB

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

base.

� Abrir la herramienta XPS

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, dar el nombre

Lab1 y que se encuentre en el directorio de trabajo

La ruta seleccionada NO debe

que se usará para estos laboratorios

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

incluye los siguientes pasos principales:

Crear un sistema base usando BSB

Desarrollo del proyecto software

Implementar el diseño en la 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

sistema base usando BSB

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

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

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

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

a 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

1-2

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

indicado por el ícono . Cada paso a su vez tiene

ciertas preguntas aparecerá el

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

Crear una nueva carpeta llamada

como se muestra en la figura 1-1.

el cual es el tipo de bus

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Sistemas Empotrados en EDK 1-3 Base usando BSB 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: 62.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)

• DDR2_SDRAM: 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

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Sistemas Empotrados en EDK 1-4 Base usando BSB IPN – 2012

� Antes de generar el archivo BIT del sistema es necesario asignar los pines de E/S en el archivo

UCF. Como el diseño fue realizado mediante el BSB, el archivo UCF es automáticamente generado y

para este laboratorio no necesita ser modificado. Ir a la ventana Project y dar doble click al archivo

system.ucf (figura 1-4), analizar la asignación de pines.

Figura 1-4. Asignación de pines mediante el archivo UCF

El siguiente paso es generar los Netlist y Bistream del sistema. Dar click en el botón

<GENERATE BITSTREAM>

1. Realizar un diagrama esquemático con los componentes que aparecen en el system assembly

view. Comprender e identificar comose encuentran conectados cada una de las partes.

?

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Sistemas Empotrados en EDK 1-5 Base usando BSB IPN – 2012

2. ¿Cuál es la función de los cores clock generator y proc_sys_reset? Defina sus puertos y hacia

donde están conectados

3. En el archivo UCF. Identificar a donde se encuentran asignados el reloj general del sistema,

el reset, los botones y el puerto serial UART. Usar el archivo

IPNEDK/Datasheet/Spartan3A.pdf para ver los recursos de la tarjeta FPGA.

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Sistemas Empotrados en EDK 1-6 Base usando BSB IPN – 2012

Paso 2. Desarrollo del proyecto 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.

� El primer paso es exportar la información de nuestra plataforma hardware hacia el entorno de

desarrollo de SDK. Click en el botón <EXPORT HARDWARE DESIGN TO EDK>. Después se

visualiza una ventana donde se selecciona “Export & Launch SDK” (figura 2-1)

Figura 2-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\Lab1\SDK

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

Figura 2-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

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Sistemas Empotrados en EDK 1-7 Base usando BSB IPN – 2012

� 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

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

defecto y dar click <FINISH> (figura 2-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 2-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 Memory

Test. (figura 2-4). Click <NEXT>

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

click <FINISH>. (figura 2-4)

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

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Sistemas Empotrados en EDK 1-8 Base usando BSB IPN – 2012

� En estos momentos se tiene configurada por completo la parte software del sistema. Al final el

entorno SDK se tiene que visualizar como en la figura 2-5. Note la creación de los 3 proyectos en la

ventana Project Explorer

El proyecto completo automáticamente es compilado y el archivo ejecutable ELF que realiza un test

de memoria está listo en la carpeta Lab1/SDK/TestApp1/Debug/TestApp1.elf

Figura 2-5. Entorno SDK para la parte software del sistema.

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Sistemas Empotrados en EDK 1-9 Base usando BSB IPN – 2012

Paso 3. Implementar el diseño en una tarjeta FPGA

El paso final es implementar el sistema empotrado en una tarjeta FPGA. Este paso

incluye la generación del archivo BIT necesario para la programación del FPGA y de

forma opcional la depuración de la aplicación software.

� 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.

� 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 3-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 3-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>.

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>

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Sistemas Empotrados en EDK 1-10 Base usando BSB IPN – 2012

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

� Después que el FPGA es programado con la aplicación de usuario el resultado debe visualizarse

en la ventana Terminal 1 en SDK y tiene que ser similar a lo que se muestra en la figura 3-3. Analice

este resultado relacionándolo con el código del Test de Memoria. Oprimir el botón de RESET en la

tarjeta FPGA para volver a correr la aplicación.

Figura 3-3. Salida del Test en el Terminal

� Realizar una ligera modificación al código fuente del Test de Memoria añadiendo el siguiente

código al archivo memorytest.c, GUARDAR los cambios. Automáticamente el proyecto se vuelve a

compilar y el archivo ejecutable TestApp1.elf es generado nuevamente.

Figura 3-4. Modificando el código de la aplicación

� Cuando se realiza una modificación a la aplicación software NO es necesario volver a programar

el FPGA nuevamente con el bitstream. Lo que se hace es solamente descargar el nuevo archivo

ejecutable ELF a las memorias BRAMs. Para esto dar CLICK DERECHO en el proyecto TestApp1

����Run As ���� Launch on Hardware (figura 3-5). Verificar los cambios realizados visualizando el

Terminal serial.

Juan Carlos Moctezuma Eugenio

Lab 1: Creación de un sistema Sistemas Empotrados en EDK 1-11 Base usando BSB IPN – 2012

Figura 3-5. Bajando el nuevo ejecutable ELF al FPGA.