12
Microblaze MCS Tutorial Microblaze MCS Tutorial para Xilinx ISE 14.6 En este tutorial se muestra cómo agregar un procesador embebido Microblaze MCS a un proyecto que incluye la adición de un sencillo programa C. El diseño fue dirigido a un Spartan 6 FPGA (en un tablero Nexys2) pero los pasos Debe ser lo suficientemente general como para trabajar en otras plataformas. Cree un nuevo proyecto y, a continuación, seleccione Proyecto => Nueva Fuente y seleccione CoreGen, a continuación, seleccione Microblaze MCS bajo procesamiento incorporado: Nota: el nombre del archivo que usted proporcione en el cuadro de diálogo Nueva fuente determinará el nombre del componente. En las capturas de pantalla por debajo de este es 'microblaze_mcs. Más adelante en este tutorial, necesitará el nombre que ha proporcionado.

Microblaze MCS Tutorial

Embed Size (px)

Citation preview

Microblaze MCS Tutorial

Microblaze MCS Tutorial para Xilinx ISE 14.6

En este tutorial se muestra cómo agregar un procesador embebido Microblaze MCS a un proyecto que incluye la adición de un sencillo programa C. El diseño fue dirigido a un Spartan 6 FPGA (en un tablero Nexys2) pero los pasos

Debe ser lo suficientemente general como para trabajar en otras plataformas.

Cree un nuevo proyecto y, a continuación, seleccione Proyecto => Nueva Fuente y seleccione CoreGen, a continuación, seleccione

Microblaze MCS bajo procesamiento incorporado:

Nota: el nombre del archivo que usted proporcione en el cuadro de diálogo Nueva fuente determinará el nombre del componente. En las capturas de pantalla por debajo de este es 'microblaze_mcs. Más adelante en este tutorial, necesitará el nombre que ha proporcionado.

Microblaze MCS Tutorial

• Ajuste la frecuencia de reloj de entrada para que coincida con su tablero Nexys (50 o 100 MHz)

• Aumentar el tamaño de la memoria de 8 KB a 16 KB

• Tenga en cuenta la instancia jerárquica Diseño Nombre 'mcs_0' (vamos a necesitar esto más adelante)

• Seleccione la ficha UART y Enable the receiver y transmitter y seleccione su velocidad de transmisión:

Microblaze MCS Tutorial

Añade 8 bits en la ficha GPO:

Añade 8 bits en la ficha GPI:

Haga clic en Generate - esperar unos minutos (aproximadamente 5 minutos) para el núcleo que se creará.

Microblaze MCS Tutorial

Seleccione el núcleo MicroBlaze en la Jerarquía Pane continuación, expanda el CORE Generator en el panel Procesos y seleccione la opción “View HDL Instantiation Template”:

Crear un nuevo nivel con conexiones con el reloj y los periféricos en el tablero Nexys y luego

Crear una instancia del núcleo MicroBlaze mediante la plantilla de instancias prevista.

Nota: es posible que aparezca una señal GPI1_Interrupt (si así se puede pasar por alto este puerto)

Importante: Utilice el nombre del componente que utilizó y el nombre de instancia 'mcs_0' se mencionó anteriormente. En este

Ejemplo el nombre del componente es 'microblaze_mcs.

Microblaze MCS Tutorial

Sintetizar el proyecto y asegurarse de que no hay advertencias o errores.

Nota: Si usted está trabajando con la junta Nexys2 (con el Spartan 3E más) podrás ver tres de alerta

Mensajes similares a los siguientes:

Puede hacer caso omiso de estas advertencias de notar que aún debe administrar para sintetizar con éxito:

• Crear Fusionado Herramienta BMM y actualización para utilizar BBM:

• Si la consola Tcl no está visible, seleccione View -> Panels -> Tcl Console en el menú.

• En el tipo Tcl consola el comando de script TCL siguiente:

source ipcore_dir/microblaze_mcs_setup.tcl

Usted debe ver:

Ahora Implementar su diseño.

Habrá 45 advertencias sobre los pines de salida Microblaze inconexos - ignore estas:

Analyzing top module <mcs>.WARNING:Xst:2211 - "ipcore_dir/microblaze_mcs.v" line 36: Instantiating blackbox module <microblaze_mcs>.Module <mcs> is correct for synthesis.WARNING:Xst:616 - Invalid property "SYN_BLACK_BOX 1": Did not attach to mcs_0.WARNING:Xst:616 - Invalid property "SYN_NOPRUNE 1": Did not attach to mcs_0.

Process "Synthesize - XST" completed successfully

Command>source ipcore_dir/microblaze_mcs_setup.tclmicroblaze_mcs_setup: Found 1 MicroBlaze MCS core.microblaze_mcs_setup: Added "-bm" option for "microblaze.bmm" to ngdbuildcommand line options.microblaze_mcs_setup: Done.

WARNING:NgdBuild:440 - FF primitive'mcs_0/U0/microblaze_I/MicroBlaze_Core_I/Area.Decode_I/Using_FPGA.Ext_NM_BRK_FDRSE' has unconnected output pin

Microblaze MCS Tutorial

Los próximos pasos están relacionados con el desarrollo de software utilizando SDK (Software Development Kit)

Comience SDK y seleccione el área de trabajo para que coincida con la que se almacena el diseño (por ejemplo, el proyecto es

Ubicada en este ejemplo en C: \ ece3829 \ MCS3):

Nota: cuando se agrega el '\ workspace' a tu ruta del proyecto, se creará automáticamente esta nueva carpeta.

Haga clic en Aceptar

SDK Starts:

Seleccione File => New => Xilinx Hardware Platform Specification

Busque y seleccione el proyecto xml creado por ISE (estará en ipcore_dir):

Microblaze MCS Tutorial

Haga clic en Finalizar

Seleccione File => New => Xilinx Board Support Package to create new Board Support Package (BSP):

Haga clic en Finalizar

Microblaze MCS Tutorial

Haga clic en Aceptar

Usted debe ver el tiempo en la ventana de SDK de la consola:

Ahora cree un nuevo programa C:

File => New => Xilinx C Project y seleccione Hello World

Haga clic en Siguiente y luego Finalizar.

"Compiling iomodule""Compiling cpu"Running execs_generate.'Finished building libraries'

Microblaze MCS Tutorial

Hello_world 0.emf se produce (Formato ejecutable y enlazable):

De vuelta en ISE Project Navigator agregar un archivo UCF para que coincida con su tablero Nexys (incluir un período de tiempo restricción).

Cree un archivo de bits ejecutando el Generate Programming File

A continuación tenemos que añadir otro comando TCL:

Update Tool to Use Software, Update Bitstream with Software y Generate Simulation Files:

Escriba el siguiente comando en la consola Tcl:

microblaze_mcs_data2mem workspace/sdk-program/Debug/sdk-program.elf

Cuando el ‘sdk-program’ se sustituye por hello_world_0 en este ejemplo (dos lugares).

Usted debe ver:

Conecte la tarjeta a un ordenador mediante un cable RS232 (Nexys2) o un cable USB (Nexys3).

Con la herramienta Adept Digilent ahora se puede descargar el archivo de bits en el directorio principal del proyecto para su bordo.

Usted debe ver "Hello World" aparece en un enlace de comunicaciones:

ELF file : hello_world_0.elfelfcheck passed.Finished building: hello_world_0.elf.elfcheck' '

Command>microblaze_mcs_data2mem workspace/hello_world_0/debug/hello_world_0.elfmicroblaze_mcs_data2mem: Found 1 MicroBlaze MCS core.microblaze_mcs_data2mem: Using "hello_world_0.elf" for microblaze_mcsmicroblaze_mcs_data2mem: Existing bitgen "-bd" options unchanged.microblaze_mcs_data2mem: Running "data2mem" to create simulation files.microblaze_mcs_data2mem: Running "data2mem" to update bitstream with software.microblaze_mcs_data2mem: Done.

Microblaze MCS Tutorial

Extra: Modificación del Programa de C.

En el programa de Xilinx XDK, expanda la carpeta src del proyecto C, y haga doble clic en el

Archivo hello_world.c. Usted puede ver las declaraciones de C:

Modifique las declaraciones según sea necesario (por ejemplo, cambiar el "Hello World" para añadir su nombre) y luego

Pulse Guardar. Un nuevo archivo ELF se genera automáticamente.

De vuelta en ISE, Rerun el Generate Programming File para crear un archivo de poco actualizado con el nuevo C programa de creación (no es necesario volver a hacer cualquiera de la síntesis anterior o pasos de implementación).

Descargue el nuevo archivo de poco a la tarjeta y verifique los nuevos cambios.