FPGA Softcores course lab01

14
Practica 1: Diseño de un Sistema Basico

description

Xilinx FPGA softcores course lab01

Transcript of FPGA Softcores course lab01

  • Practica 1: Diseo de un Sistema Basico

  • 1-3

    Practica 1: Diseo de un Sistema Basico

    Introduccion En esta practica se crea un sistema basico con el procesador microblaze utilizando la herramienta Xilinx Platform Studio (XPS). Este sistema se implementa en una placa de desarrollos Nexys2

    Objetivos Crear un proyecto en XPS utilizando el Base System Builder (BSB) Crear un diseo simple utilizando IP disponible en el Embedded Development Kit (EDK)

    Procedimiento El proposito de las practicas es realizar el desarrollo de hardware y software de un sistema basado en un procesador softcore de 32 bits; a su vez, cada practica contina a partir de la practica anterior. En el siguiente diagrama se observa el sistema completo (Figura 1-1).

    Figura 1-1. Sistema Completo

    LMB BRAM CNTLR

    LMB BRAM CNTLR

    BRAM

    PLB

    MDM UART

    INTC

    MicroBlaze

    Timer

    GPIO

    GPIO

    IBA ICON

    PSB

    LEDs

    7-S MYIP

    GPIO DIP

    BRAM XPS

    BRAM CNTLR

  • 1-4

    En esta practica, se utilizara la herramienta BSB del entorno XPS para crear un sistema basico con los siguientes elementos e IP (Figura 1-2): MicroBlaze (version 7.30.b) PLB_MDM LMB BRAM controlador para BRAM BRAM UART para comunicacion serie GPIO para comandar LEDs

    Figure 1-2. Sistema Basico

    Esta practica se realiza en tres etapas:

    1. Crear un proyecto usando la herramienta Base System Builder

    2. Analizar el proyecto creado

    3. Probar el proyecto en hardware

    En cada etapa hay instrucciones generales (indicadas por el simbolo ). Estas instrucciones generales dan una idea global de la tarea a realizar. A continuacion se indican instrucciones paso a paso mas detalladas con figuras ilustrativas. De acuerdo al conocimiento y experiencia, pueden saltarse las instrucciones paso a paso e ir directamente a la siguiente instruccion general.

    LMB BRAM CNTLR

    LMB BRAM CNTLR

    BRAM

    PLB

    MDM UART

    MicroBlaze

    GPIO LEDs MPMC CNTLR

  • 1-5

    Crear el Proyecto utilizando Base System Builder Etapa 1

    Iniciar el entorno Xilinx Platform Studio (XPS) y crear un nuevo proyecto. Usar la herramienta Base System Builder para generar un sistema basico con MicroBlaze y una aplicacion que verifica la memoria. Implementar el sistema en la placa de desarrollos Nexys2.

    n Iniciar XPS seleccionando Inicio Todos los Programas Xilinx ISE Design Suite 12.2 EDK Xilinx Platform Studio

    o Dejar la opcion por defecto Base System Builder y presionar OK para iniciar el asistente (Figura 1-3). Si por error se presiona Cancel, en File New Project vuelve a iniciarse el asistente.

    Figura 1-3. Creacion de un nuevo Proyecto usando Base System Builder

    p Con el boton Browse seleccionar la ubicacion del nuevo proyecto, luego presionar Open para abrir el directorio. Luego presionar el boton Save (Figura 1-4) para guardar el archivo system.xmp. Copiar el Board Support Package para la placa Nexys2 al subdirectorio Lib del directorio de proyecto. Luego tildar Set Project Peripheral Repository y con el boton Browse seleccionar el subdirectorio Lib. Finalmente presionar OK.

  • 1-6

    Figura 1-4. Asignacion del directorio de proyecto

    q Seleccionar la opcion I would like to create a new design option en el dialogo Welcome to Base System Builder y presionar Next.

    r En el dialogo Board Selection, especificar la siguiente configuracion (Figura1-5) y presionar Next.

    { Board Vendor: Digilent

    { Board Name: Nexys 2-500 Board

    { Board Revision (Verify on board): C

    Figura 1-5. Dialogo para la seleccion de placa de desarrllos

    s En el dialogo System Configuration, dejar la opcion por defecto Single-Processor System (Figura 1-6) y presionar Next.

    Figura 1-6. System Configuration Dialog Box

  • 1-7

    t En el dialogo Processor Configuration (Figura 1-7), dejar la configuracion por defecto (ver mas abajo) y presionar Next.

    { Reference Clock Frequency: 50 MHz

    o Este es el oscilador externo de la placa de desarrollos; se utilizara para generar la temporizacion del procesador y los buses.

    { Processor type: MicroBlaze

    { System Clock Frequencybus Clock Frequency: 50 MHz

    { Local Memory: 8 KB

    { Debug Interface: On-Chip H/W debug module

    Figura 1-7. Dialogo para la configuracion del procesador Seleccionar y configurar a LEDs_8Bit y RS232_DCE como dispositivos externos, a los controladores dlmb y ilmb como controladores internos. Generar las aplicaciones de testeo de memoria y testeo de perifericos mediante el script de enlazado(linker script).

    n En el dialogo Peripheral Configuration, seleccionar y configurar RS232_PORT, y LEDs_8Bit como perifericos externos, segun se muestra a continuacion, quitar los perifericos Push_Buttons, SSG_Decoder y Switches de Processor 1 (MicroBlaze). Los controladores dlmb y ilmb no se pueden quitar porque son de uso interno del procesador.

    { RS232_PORT: XPS UARTLITE, 9600 baud rate, 8 Data bits, no interrupt, no parity (Figura 1-8)

    { LEDs_8Bit: XPS GPIO. No interrupt (Figura 1-9)

    { Los perifericos a quitar sonSwitches_8Bit, Push_Buttons_3Bit y Ssg_Decoder_0

    En este punto se podria utilizar Add para agregar perifericos. En la siguiente practica se vera otro metodo para agregar perifericos al sistema.

    Obs: la cantidad de perifericos que aparecen en las ventanas depende de la resolucion del monitor.

    !

  • 1-8

    Figura 1-8. Configuracion RS-232 DCE

    Figura 1-9. Configuracion XPS GPIO

    o Presionar Next para pasar al dialogo Cache Configuration, no seleccionar nada y presionar Next.

    p En el dialogo Application Configuration, dejar la configuracio por defecto (Figura 1-10) y presionar Next.

    Figure 1-10. Dialogo Application Configuration

    q Verificar la configuracion en el dialogo Summary (Figura 1-11) y presionar Finish.

    Figura 1-11. Dialogo System Summary

  • 1-9

    r En el dialogo Next Step,seleccionar Start Using Platform Studio y presionar OK.

    s Aparece una vista del sistema (Figura 1-12), mostrando los perifericos y buses que se utilizan y su conexionado. Presionar Finish cuando el dialogo congratulations aparezca indicando que los archivos que la herramienta BSB ha creado.

    Figure 1-12. Vista del Systema

  • 1-10

    Analisis del Hardware Etapa 2

    Generar un diagrama en bloques del sistema y estudiar sus componentes e interconexiones. Ver y analizar en la vista System Assembly las conexiones de bus y puertos de los perifericos. Utilizar la herramienta PlatGen para generara las netlist del sistema (archivos .NGC). Revisar los archivos generados.

    n Seleccionar Block Diagram tab para abrir una vista del diagrama en bloques (Figura 1-13) observando los distintos componentes usados en el sistema.

    Figura 1-13. Vista de diagrama de bloques del proyecto

    Se puede acercar y alejar la vista, y usar las barras de desplazamiento para navegar el diagrama. Se puede ver el procesador MicroBlaze, los controladores LMB, el bus PLB conectando el procesador con los perifercos, etc.

    o En la vista System Assembly View, presionar el boton + y observar el detalle de las conexiones del bus del sistema (Figura 1-14)

  • 1-11

    Figura 1-14. Conexiones del Bus

    1. Escribir el nombre de la conexion de bus de los siguientes perifericos: mdm_0: dlmb_cntlr: RS232_DCE:

    p Seleccionar Ports, aparecera una vista como la Figura 1-15. Aqui es donde se pueden hacer las conexiones de los perifericos. Se observara que los buses de datos de las memorias RAM y FLASH no estan conectados al bus de datos del multiplexor de memoria mem_bus_mux_0. Pare ello se realizaran las siguientes conexiones:

    Micron_RAM Mem_DQ_I net_bsbassign35 Mem_DQ_O net_bsbassign51 Mem_DQ_T net_bsbassign67 INTEL_FLASH Mem_DQ_I net_bsbassign117Mem_DQ_O net_bsbassign133Mem_DQ_T net_bsbassign149

    ?

  • 1-12

    Figura 1-15. Ports

    2. Nombrar las nets a las que estan conectados los siguientes puertos::

    RS232_DCE RX: RS232_DCE TX: LEDs_8Bit GPIO_IO_O:

    q Seleccionar Addresses, aparecera una vista como la de la Figura 1-16. Aqui se puede asignar el rango de direcciones de los componentes del sistema.

    Figura 1-16. Asignacion de direcciones

    3. Listar las direcciones de los siguientes perifericos:

    RS232_PORT Base address: RS232_PORT High address: LEDs_8Bit Base address: LEDs_8Bit High address: dlmb_cntlr Base address:

    ?

    ?

  • 1-13

    dlmb_cntlr High address: ilmb_cntlr Base address: ilmb_cntlr High address:

    r Ejecutar la herramienta PlatGen seleccionando Hardware Generate Netlist o presionando el boton en la barra de herramientas

    s Seleccionar Design Summary. Aqui hay un resumen de la informacion de implementacion del diseo, reportes y mensajes. Hay informacion especifica respecto a la FPGA usada y mensajes de las distintas herramientas de software utilizadas. Los paneles del lado izquierdo permiten controlar la informacion que se muestra en el panel derecho.

    t Utilizando un explorador de archivos, ir al directorio de proyecto.

    Se han creado distintos directorios conteniendo archivos en VHDL y netlists.

    4. Listar los directorios creados y comentar el contenido de cada uno de ellos.

    ?

  • 1-14

    Prueba en Hardware Etapa 3

    Generar el bitstream y programarlo en la placa de desarrollos. La memoria de instrucciones (FPGA Block RAM) se inicializara con el ejecutable generado utilizando las herramientas GNU compiler. Para ello el bitstream se actualizara con la imagen ejecutable n Conectar la placa de desarrollos Nexys2 o Inicia una sesion en hyperterminal y configurarla con los siguientes parametros (Figura 1-17)

    (cambiar la velocidad a 9600 baudios)

    Figure 1-17. Configuracion del HyperTerminal

    p En XPS, seleccionar Device Configuration J Download Bitstream. Aparecera un mensaje de

    fallo debido a que esta version de ISE no reconoce el PlugIn de Digilent para grabar la FPGA, por lo que se utilizara la herramienta Digilent Adept

    q Con la herramienta Digilent Adept, seleccionar el archivo download.bit, que se encuentra en

    el directorio Implementation del proyecto y programar la FPGA. r Una vez programada la FPGA, en la pantalla del hyperterminal debera verse el siguiente

    mensaje (con Micron_RAM):

    Figure 1-18. Salida del programa HyperTerminal

  • 1-15

    Conclusiones

    La herramienta Base System Builder se usa en XPS para generar un sistema basado en MicroBlaze junto con una aplicacion de software para prueba. Se crean distintos archivos utilizados por las diferentes herramientas de software necesarias para implementar el sistema en FPGA. Se utilizan distintas vistas para acceder a la configuracion del sistema. Una vez configurado el sistema, se crean las netlist necesarias para la implementacion. Una vez implementado el sistema, se agrega al bitstream la informacion necesaria para inicializar la memoria de codigo del procesador con la aplicacion de software.