Lab 1: Creacin 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: Creacin de un sistema Sistemas Empotrados en EDK 1-1 Base usando BSB IPN 2012
Lab 1: Creacin de un sistema base usando BSB Introduccin Este laboratorio guia al asistente a travs de las herramientas EDK, XPS y BSB para realizar un sistema empotrado para FPGAs Objetivos Despus de completer este laboratorio, el asistente sera capaz de: Crear de forma rpida un diseo base usando BSB Configurar la parte hardware y software del sistema empotrado Familiarizarse con las entradas-salidas estndares (stdin / stdout) Entender el proceso general para realizar un sistema base, no as entender el flujo de diseo, ni detalles relacionados con la configuracin de los cores y la generacin de la aplicacin software
Descripcin del diseo 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; adems el sistema consta de tres perifricos: UART para la entrada/salida estndar, 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: Creacin de un sistema Base usando BSB
Procedimiento En esta seccin 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 diseo en la tarjeta FPGA Cada paso principal del procedimiento es instrucciones especficas para alcanzar el objeti Cuando se pida alguna informacin 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. O Abrir la herramienta XPS Suite 13.2 EDK Xilinx Platform Studio O A continuacin aparece una ventana indicando la forma de iniciar un nuevo proyecto. Seleccionar Base System Builder wizard New Project O 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 diseo en la tarjeta FPGA Cada paso principal del procedimiento es indicado por el cono . Cada paso a su vez tiene instrucciones especficas para alcanzar el objetivo final. Cuando se pida alguna informacin 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 continuacin 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 continuacin 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: Creacin de un sistema Sistemas Empotrados en EDK 1-3 Base usando BSB IPN 2012
O Posteriormente seleccionar I would create a new design, click <NEXT>. Despus 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 O En estos momentos comienza la configuracin 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/perifricos), seleccionar los perifricos 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> O 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: Creacin de un sistema Sistemas Empotrados en EDK 1-4 Base usando BSB IPN 2012
O Antes de generar el archivo BIT del sistema es necesario asignar los pines de E/S en el archivo UCF. Como el diseo fue realizado mediante el BSB, el archivo UCF es automticamente 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 asignacin de pines.
Figura 1-4. Asignacin de pines mediante el archivo UCF O El siguiente paso es generar los Netlist y Bistream del sistema. Dar click en el botn <GENERATE BITSTREAM>
1. Realizar un diagrama esquemtico 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: Creacin de un sistema Sistemas Empotrados en EDK 1-5 Base usando BSB IPN 2012
2. Cul es la funcin de los cores clock generator y proc_sys_reset? Defina sus puertos y hacia donde estn 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: Creacin 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 bsicamente se realizan 3 proyectos: la plataforma de informacin hardware, el BSP (board support package) y la aplicacin de usuario. O El primer paso es exportar la informacin de nuestra plataforma hardware hacia el entorno de desarrollo de SDK. Click en el botn <EXPORT HARDWARE DESIGN TO EDK>. Despus se visualiza una ventana donde se selecciona Export & Launch SDK (figura 2-1)
Figura 2-1. Exportar la informacin hardware hacia SDK. O En el cuadro de dilogo que se muestra a continuacin seleccionar la ruta Lab_user\Lab1\SDK como el directorio workspace (figura 2-2), click <OK>
Figura 2-2. Seleccionar el directorio Workspace O Una vez que el entorno SDK es abierto, se crea automticamente un proyecto llamado hw_platform_0 (parte izquierda en Project Explorer), este proyecto contiene la informacin 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: Creacin de un sistema Sistemas Empotrados en EDK 1-7 Base usando BSB IPN 2012
O El siguiente paso es crear un proyecto para crear el BSP. Ir al men File New Xilinx Board Support Package, despus 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) Despus se abre la ventana de configuracin del BSP en donde se pueden seleccionar algunas libreras y drivers para cada uno de los perifricos 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. Configuracin del BSP. O El siguiente paso consiste en crear un proyecto para la aplicacin 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 aplicacin de usuario en C. Juan Carlos Moctezuma Eugenio
Lab 1: Creacin de un sistema Sistemas Empotrados en EDK 1-8 Base usando BSB IPN 2012
O 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 creacin de los 3 proyectos en la ventana Project Explorer El proyecto completo automticamente 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: Creacin de un sistema Sistemas Empotrados en EDK 1-9 Base usando BSB IPN 2012
Paso 3. Implementar el diseo en una tarjeta FPGA El paso final es implementar el sistema empotrado en una tarjeta FPGA. Este paso incluye la generacin del archivo BIT necesario para la programacin del FPGA y de forma opcional la depuracin de la aplicacin software. O El primer paso es conectar y prender la tarjeta FPGA Spartan 3A para validar el sistema. Tener conectado tambin un cable serial-USB a la computadora y al conector serial de la tarjeta FPGA. O En la pestaa 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 nmero de puerto debe coincidir con el puerto al que est conectado el convertidor USB-SERIAL. Finalmente dar click en el botn <CONNECT>
Figura 3-1. Configurando el puerto serial que se comunica con la tarjeta FPGA O En el siguiente paso se programa la tarjeta FPGA, click en el botn <PROGRAM FPGA>.
En la ventana que aparece a continuacin se pude seleccionar con que aplicacin inicial ser programado el FPGA, seleccionar TestApp1.elf (figura 4-3), click <PROGRAM> Juan Carlos Moctezuma Eugenio
Lab 1: Creacin de un sistema Sistemas Empotrados en EDK 1-10 Base usando BSB IPN 2012
Figura 4-3. Programar el FPGA con una aplicacin inicial (bootloop o ELF)
O Despus que el FPGA es programado con la aplicacin 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 relacionndolo con el cdigo del Test de Memoria. Oprimir el botn de RESET en la tarjeta FPGA para volver a correr la aplicacin.
Figura 3-3. Salida del Test en el Terminal O Realizar una ligera modificacin al cdigo fuente del Test de Memoria aadiendo el siguiente cdigo al archivo memorytest.c, GUARDAR los cambios. Automticamente el proyecto se vuelve a compilar y el archivo ejecutable TestApp1.elf es generado nuevamente.
Figura 3-4. Modificando el cdigo de la aplicacin O Cuando se realiza una modificacin a la aplicacin 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: Creacin de un sistema Sistemas Empotrados en EDK 1-11 Base usando BSB IPN 2012
Figura 3-5. Bajando el nuevo ejecutable ELF al FPGA.