Beruflich Dokumente
Kultur Dokumente
Objetivos
Despus de completer este laboratorio, el asistente sera capaz de: Realizar un diseo base con la herramienta BSB Configurar la parte hardware y software del sistema empotrado Agregar un FSL para usarlo como co-procesador Instanciar un mdulo hecho en Core Generator en un sistema Microblaze Aprender a crear aplicaciones para manejo de los co-procesadores
BRAM
LMB BRAM Cnttlr
manejo de coprocesadores
Stdin/Stdout
7-1
Procedimiento
En esta seccin el alumno encontrar todos los pasos necesarios para realizar el laboratorio. El procedimiento incluye los siguientes pasos principales principales: 1. 2. 3. 4. Crear un sistema base usando BSB Agregar un co-procesador procesador e instanciar un mdulo Core Generator Realizar la aplicacin 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 especficas para alcanzar el objetivo final final. Cuando se pida alguna informacin al asistente o que re responda ciertas preguntas aparecer el cono ?
7-2
Juan Carlos Moctezuma Eugenio 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 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.5 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: RS232_DCE: dlmb_ctrl: ilmb_ctrl: Seleccionar (dejar valores por default) Seleccionar (dejar valores por default) Seleccionar (dejar valores por default) 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.
7-3
1.
Enlistar los archivos generados por Core Generator en la carpeta lab7_cg. Cules son los archivos importantes que se deben incluir en el sistema Microblaze?
2.
Una vez creado el core FPU en Core Generator, el siguiente paso es la creacin del nuevo COPROCESADOR. Ir a Xilinx Platform Studio y seleccionar Men Hardware Create Import Peripheral, Con esta opcin se abre el wizard para crear/importar un perifrico hecho por el usuario; al final se tiene un core template que el usuario podr modificar para que realice la tarea deseada.
7-4
Figura 2-1. Abrir el Wizard para Crear/Importar un perifrico 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: co_fpu, Version: 1.00.a, click <NEXT> Bus Type: Fast Simple Link (FSL), click <NEXT> Number of input: 2 Number of output: 1; click <NEXT> Seleccionar nicamente Generate template driver files, click <NEXT> Functional description: FPU Coprocesador o Number of input arguments: 2 o Number of output arguments: 1; click <NEXT> Click <FINISH>
El siguiente paso es modificar el cdigo VHDL del nuevo coprocesador con la finalidad de agregar las funcionalidades de escritura/lectura hacia la unidad de punto flotante. Abrir el archivo co_fpu.vhd (generado en el directorio pcores) y realizar las siguientes modificaciones:
ELIMINAR todo el cdigo nicamente de la arquitectura, al final se tiene un arquitectura vaca, tal y como se muestra a continuacin:
Copiar el cdigo del archivo IPNEDK/Codigos/lab7/FSL_CODE.txt dentro de la arquitectura vaca del archivo co_fpu.vhd GUARDAR los cambios y cerrar el archivo
Una vez que las modificaciones a los archivos VHDL fueron realizadas, el siguiente paso es importar el perifrico. Seleccionar nuevamente la opcin Men Hardware Create Import Peripheral
7-5
Juan Carlos Moctezuma Eugenio Seguir el siguiente procedimiento para el Wizard de Create/Import Peripheral
Click <NEXT> en la ventana de bienvenida Seleccionar Import existing peripheral, click <NEXT> Seleccionar To an XPS Project, click <NEXT> Name: co_fpu, 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 las casillas : HDL Source files y Netlist files, click <NEXT> Seleccionar Use existing Peripheral Analysis Order (*.pao), click <BROWSE>; seleccionar el archivo co_fpu_v1_00_a data co_fpu_v2_1_0.pao, click <OK>, click <NEXT> En la ventana de HDL Analysis Information; dar click <ADD FILES> y seleccionar el archivo creado por Core Generator IPNEDK/Lab_user/lab7_cg/my_fpumult.vhd. Mover el archivo my_fpumult.vhd arriba del archivo co_fpu.vhd para respetar el orden de jerarqua para sintetizar de manera correcta el nuevo core (figura 2-3); click <NEXT>. Si existe algn error de sintaxis en los archive VHDL muestra una ventana de error, de lo contrario pasa a la siguiente ventana del wizard. Si existe algn error, corregirlo y volver a importar el perifrico.
Seleccionar Select Bus Interfaces, seleccionar FSL Master y FSL Slave (MFSL/SFSL); click <NEXT> click <NEXT> DOS veces Deseleccionar Select and configure interrupts; click <NEXT> Ventana Port attributes, click <NEXT> Ventana Net File List, click <SELECT FILES>, buscar el archivo NGC IPNEDK/Lab_user_lab7_cg/my_fpumult.ngc ; click <NEXT> Click <FINISH>
Ir al men Hardware Configure Coprocessor. Seleccionar el coprocesador co_fpu; click <ADD>; click <OK>. En este momento el coprocesador es conectado al procesador Microblaze ?
3.
Realizar un diagrama esquemtico donde muestre la interconexin entre Microblaze y el coprocesador co_fpu. Ayudarse de las conexiones en el System Assembly View
7-6
4.
En el archivo co_fpu.vhd. Dibujar la mquina de estados que controla el flujo de datos hacia la unidad de punto flotante
5.
Explicar que es lo que hacen las lneas FSL_S_Read <= FSL_S_Exists when ((state=Read_Input1)or(state=Read_Input2)) else '0'; FSL_M_Write <= not FSL_M_Full when state=Write_Outputs else '0'; FSL_M_Data <= res;
Ir al Men Project Project Options Pestaa Design Flow, DESHABILITAR la opcin Treat timing closure failure as an error. Algunas veces las restricciones de tiempo no son logradas, esta opcin permite seguir con la implementacin del diseo an cuando estas restricciones no se logren. Hasta este momento finaliza la configuracin del hardware del sistema. El paso final es generar el archivo bitstream. Seleccionar la opcin Men Hardware Generate Bitstream (este proceso tarda de 15 min aproximadamente)
7-7
En el cuadro de dilogo que se muestra a continuacin seleccionar la ruta Lab_user\Lab7\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 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 Xilinx Hardware Platform Specification New
7-8
Juan Carlos Moctezuma Eugenio 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/Lab7, click <APPLY>, click <OK>. 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 3-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 3-3. Configuracin del BSP. 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 Empty Application. (figura 3-4). Click <NEXT> En la siguiente ventana seleccionar Target an existing Board Support Package click <FINISH>. (figura 3-4) standalone_bsp_0,
7-9
Juan Carlos Moctezuma Eugenio En la ventana Project Explorer, Click DERECHO sobre la carpeta TestApp1 Import Ir a General File system, click <NEXT> src y seleccionar
Click <BROWSE>, Seleccionar la carpeta IPNEDK/Codigos/Lab7, click <OK> Seleccionar las casillas lab7code.c, click <FINISH> ? 6. Definir que es lo que realiza la funcin printFP
7.
8.
7-10
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 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>
7-11
Figura 4-3. Programar el FPGA con una aplicacin inicial (bootloop o ELF) Despus que el FPGA es programado el resultado de la aplicacin se observa en la figura 4-4.
7-12