• No se han encontrado resultados

INSTITUTO POLITÉCNICO NACIONAL

N/A
N/A
Protected

Academic year: 2021

Share "INSTITUTO POLITÉCNICO NACIONAL"

Copied!
28
0
0

Texto completo

(1)

INSTITUTO POLITÉCNICO NACIONAL

CENTRO DE INVESTIGACIÓN Y DESARROLLO DE

TECNOLOGÍA DIGITAL

“USO DE UN MICROPROCESADOR EMBEBIDO EN UN FPGA PARA

CONTROL DE MOTORES DE CD.”

TESINA

QUE PARA OBTENER LA

ESPECIALIDAD EN SISTEMAS INMERSOS

PRESENTA:

CARLOS ALBERTO HERNÁNDEZ GUTIÉRREZ

BAJO LA DIRECCIÓN DE:

MC. DAVID JAIME SAUCEDO MARTÍNEZ.

(2)
(3)
(4)

DEDICATORIA.

Les dedico este trabajo a Dios y a mi familia: Yaretzi Hernández, Deysi Flores, Maricruz

Gutiérrez y Tony.

AGRADECIMIENTOS.

A Dios que me fortalece y me suple de los medios y las personas adecuadas para continuar.

Amo a Jehová, pues ha oído Mi voz y mis súplicas;

Porque ha inclinado a mí su oído; Por tanto, le invocaré en todos mis días.

Salmos 116.

A mi Mamá porque gracias a ella soy un profesionista y un hombre de bien.

Al Dr. Charles por impulsar el desarrollo de mi carrera con su apoyo, consejos y enseñanzas.

A mis maestros de CITEDI, Saucedo, Teodoro, Tapia, Barba, Esquivel y Montoya. Por compartir sus conocimientos y experiencias.

A Jorge alumno de la Maestría en sistemas digitales, por compartir su tiempo y trabajo previo de sistemas embebidos basados en FPGA´s.

A mis compañeros y amigos de la especialidad Clemente, Bitkar, Zenaido, Rodolfo, Joel, Alma, Marco, Molina, Rogelio y Sergio. Por compartir conmigo el salón de clases y una amistad sincera.

A Karina García, Flor Jiménez, Francisco García y a la fundación para Migrantes. A mis Tíos Pepe y Marta que apoyaron en toda mi estancia en Tijuana.

(5)

RESUMEN.

En este proyecto se describe el procedimiento para crear un Microprocesador de 32 bits – Microblaze de propiedad Intelectual– así como los módulos necesarios para conformar un control de velocidad para un motor de corriente directa, dentro de un chip FPGA de la compañía Xilinx.

En el proyecto también se describe la programación de los módulos PWM y Captura, los cuale s sirven de base para la implementación de los controladores de velocidad.

ABSTRACT.

This project describes a procedure of how to embed in a xilinx FPGA, an intellectual propietary 32 bit processor -Microblaze- and the necessary modules to implement a dc motor speed controller.

Also there is a description on how to program the PWM and Capture modules in order to implement speed controllers.

(6)

OBJETIVOS DEL PROYECTO.

Desarrollar una plataforma de diseño de sistemas embebidos usando las herramientas de Xilinx EDK.

OBJETIVOS ESPECÍFICOS.

1. Adquirir experiencia y una base de conocimiento en el uso de las herramientas de ¨Embedded Systems¨ de la compañía Xilinx.

2. Desarrollar la plataforma de control de motores de CD con microprocesadores de 32 bits.

(7)

ÍNDICE

1. INTRODUCCIÓN. ...1

2. ANTECEDENTES TEÓRICOS...2

2.1 FPGA´s. ...2

2.2 SISTEMAS EMBEBIDOS BASADOS EN FPGA. ...2

3. DESCRIPCIÓN DEL SISTEMA. ...4

3.1 CARACTERÍSTICAS DE LOS DISPOSITIVOS. ...4

3.2 TIMER IPCORE...4

3.3 FLUJO DE DISEÑO EDK. ...8

3.3.1 DESARROLLO DEL HARDWARE...8

3.3.2 DESARROLLO DEL SOFTWARE...8

3.3.3 VALIDACIÓN. ...8

4. DESARROLLO. ...10

4.1 HARDWARE. ...10

4.2 CONFIGURACIÓN DE REGISTROS. ...14

4.2.1- CONFIGURACIÓN PWM. ...14

4.2.2- CONFIGURACIÓN PARA CAPTURA...14

4.3- PROGRAMACIÓN. ...14

4.3.1.- PROGRAMA PARA GENERAR UN PWM...14

4.3.2.- PROGRAMA PARA REALIZAR UNA CAPTURA. ...15

4.3.3. PROGRAMA PARA REALIZAR UNA INTERRUPCIÓN. ...16

5. RESULTADOS. ...17

6. CONCLUSIONES Y TRABAJOS FUTUROS...18

7. ACRÓNIMOS ...19

(8)

ÍNDICE DE FIGURAS.

OBJETIVOS DEL PROYECTO. ...6

ÍNDICE ...7

ÍNDICE DE FIGURAS. ...8

Figura (1) Estructura general de un FPGA. ...2

Figura (2) Diagrama a Bloques del Sistema. ...4

Figura (3) Diagrama a Bloques del TC [3]. ...5

Figura (4) Arquitectura interna de Microblaze. ...8

Figura (5) Flujo de diseño EDK [5]. ...9

Figura (6) Agregar IP. ...10

Figura (7) Conexiones de PLB...11

Figura (8) Conexiones Externas. ...11

Figura (9) Señales Externas...12

Figura (11) Archivo UCF. ...13

Figura (12) Resultados (a)...17

(9)

1

1. INTRODUCCIÓN.

En la actualidad diversas compañías como Texas Instruments, Freescale, Microchip, Altera, Xilinx, desarrollan Sistemas Embebidos para diversas aplicaciones: médicas, automotrices, militares, comunicaciones.

Los Sistemas Embebidos son sistemas de cómputo que se diseñan para una aplicación específica. Generalmente están basados en un microprocesador o un microcontrolador donde el Hardware y software están optimizados para resolver una tarea.

Una de las aplicaciones que tienen los Sistemas Embebidos es el control digital de tiempo real [1], el cual consiste en que el tiempo de procesamiento del sistema sea suficiente para controlar la planta antes de tomar la segunda muestra para no afectar el resultado.

En este trabajo se presenta el desarrollo de una plataforma del control de un motor de Corriente Directa, basado en un sistema embebido usando un FPGA y las herramientas de Xilinx EDK.

Un FPGA (Field Programmable Gate Array - arreglo de compuertas programables por efecto de campo) es un circuito integrado que consta de arreglos lógicos que se interconectan por medio de una matriz programable. La compañía Xilinx cuenta con soluciones para sistemas embebidos, la solución que se usa en este proyecto consiste en el uso de las herramientas EDK 10.1.

EDK (Embedded Development kit). EL kit de desarrollo de sistemas embebidos, permite la creación dentro del FPGA, de microprocesadores de 32 bits, como PPC, AMR y Microblaze. El Microprocesador Microblaze es una propiedad intelectual de Xilinx que consiste en un procesador de 32 bits, tipo RISC el cual se utiliza para el desarrollo de este trabajo.

(10)

2

2. ANTECEDENTES TEÓRICOS.

En este capítulo se presentan los fundamentos teóricos y conceptuales del Hardware que involucra a los sistemas embebidos basados en FPGA´s, tales como la Arquitectura del FPGA y Arquitectura de un sistema Embebido.

2.1 FPGA´s.

Un FPGA (Field programmable gate array) es un dispositivo lógico que contiene 2 dimensiones de arreglos de celdas lógicas genéricas y switches programables [2]. La estructura general de

un FPGA es mostrada en la Figura (1).

Figura (1) Estructura general de un FPGA.

2.2 SISTEMAS EMBEBIDOS BASADOS EN FPGA.

Una jerarquía de interconexiones programables permite a los bloques lógicos de un FPGA ser interconectados según la necesidad del diseñador del sistema, al go parecido a un “breadboard” - placa de uso genérico reutilizable o semipermanente - programable. Estos bloques lógicos e interconexiones pueden ser programados después del proceso de manufactura por el usuario/diseñador, así que el FPGA puede desempeñar cualquier función lógica necesaria.

Una tendencia reciente ha sido combinar los bloques lógicos e interconexiones de los FPGA con microprocesadores y periféricos relacionados para formar un Sistema programable en un chip. Ejemplo de tales tecnologías híbridas pueden ser encontradas en los dispositivos Virtex -II PRO y Virtex-4 de Xilinx, los cuales incluyen uno o más procesadores PowerPC embebidos junto con la lógica del FPGA. El FPSLIC de Atmel es otro dispositivo similar, el cual usa un procesador AVR en combinación con la arquitectura lógica programable de Atmel. Otra alternativa es hacer uso de núcleos de procesadores implementados haciendo uso de la lógica del FPGA. Esos núcleos incluyen los procesadores MicroBlaze y PicoBlaze de Xlinx, Nios y Nios II de Altera, y los procesadores de código abierto LatticeMicro32 y LatticeMicro8.

(11)

3 En este trabajo se implementa el procesador Microblaze para el control de motores, el cual se ha elegido como base del Sistema Embebido debido a su simplicidad y flexibilidad.

(12)

4

3. DESCRIPCIÓN DEL SISTEMA.

El objetivo de este trabajo es controlar la velocidad de un motor de corriente directa usando un sistema inmerso desarrollado por la compañía Xilinx.

En general el sistema está conformado por un motor de CD, un Encode r para determinar su velocidad, un CPU en este caso MICROBLAZE, una unidad de PWM y una unidad de CAPTURA para controlar al motor como se muestra en la Figura (2).

Figura (2) Diagrama a Bloques del Sistema.

3.1 CARACTERÍSTICAS DE LOS DISPOSITIVOS.

El sistema está conformado por varios subsistemas que realizan diferentes tareas.

El subsistema de sensado comienza en el encoder seguido de un Timer IPCORE de Xilinx configurado en modo “Capture”. La información del “Capture” es leída por el CPU Microblaze y con base al valor del “capture” genera una señal PWM basado en otro Timer IPCORE configurado como PWM.

3.2 TIMER IPCORE.

El TC (Timer counter) es un módulo temporizador de 32 bits que se conecta al OPB (On-chip-peripheral Bus).

(13)

5 El TC está conformado por dos módulos de “Timer” idénticos. Cada módulo “Timer” tiene un registro asociado “Load Register” (Registro de Carga), usado para almacenar el valor del Contador dependiendo del modo en que se encuentre configurado el “Timer”.

El diagrama a bloques de TC se muestra en la Figura (3).

Figura (3) Diagrama a Bloques del TC [3].

El valor “generate” es usado para generar una interrupción cuando expira un intervalo de tiempo o una serie continua de interrupciones con un intervalo programable. El valor de captura es el valor del timer que ha sido almacenado en la detección de un evento externo.

MODOS DE CONFIGURACIÓN DEL TC.

Se puede usar el modo “generate”, el modo “capture” y el modo PWM con dos módulos de TC.

MODO GENERADOR.

En el modo “generate” el registro de carga es almacenado en el registro contador y el contador comienza contar a partir del valor que contenga el registro de carga.

(14)

6

CARACTERÍSTICAS.

EL valor que contenga el registro de carga es llamado valor de “generate”. Cuando el contador está configurado como contador descendente. El Intervalo de tiempo = ( TLRx + 2 ) × OPB_CLOCK_PERIOD.

Cuando el contador está configurado como contador ascendente, el Intervalo de tiempo = (MAX_COUNT – TLRx + 2) × OPB_CLOCK_PERIOD.

El valor máximo del Contador es 0xFFFFFFFF, le corresponde al mayor valor de un registro de 32bits.

MODO DE CAPTURA.

En el modo de captura el valor del contador es almacenado en el regi stro de carga cuando se presenta la señal externa de captura, cuando el bit TINT del registro TCSR descrito más adelante está activado. El contador puede configurarse como contador ascendente o descendente cuando se activa el bit UDT del TCSR.

Características:

La señal de captura puede ser configurada como verdadera o falsa.

La señal de captura es muestreada dentro del TC con el reloj del OPB. El evento de captura es definido como la transición de la señal muestreada al estado de definición. Por ejemplo si la señal de captura está definida como verdadera en alto, entonces el evento de captura es cuando la señal muestreada - sincronizada con el reloj del bus OPB- tiene una transición de ´0´ a ´1´.

Cuando el evento de captura ocurre, el valor del contador e s escrito en el registro de carga (Load Register). Este valor es llamado valor de captura.

Cuando el bit ARHT (Auto Reload-hold) esta puesto a ´0´ y el evento de captura ocurre, el valor de captura es escrito en el registro de carga. El registro de carga mantendrá el valor de captura hasta que el registro de carga sea leído. Si el registro de carga no es leído cuando el evento de captura ocurra, el registro de carga no se actualizará y se perderá el dato.

Cuando el bit ARHT es puesto a ´1´ y el evento de captura ocurre, el valor de captura es siempre escrito en el registro de carga. Posteriormente el evento de captura actualizará el registro de carga y sobrescribirá al valor previo, se haya o no leído el valor previo [4].

MODO PWM.

En modo PWM ambos Timers el timer1 y el timer2 deben de estar configurados como modo generador es decir el bit MDT del TCSR debe ponerse a 1 lógico.

(15)

7 El bit PWMA0 en TCSR0 y el bit PWMB0 en TCSR1 debe tener el valor '1' lógico para habilitar modo PWM.

Las señales de GenerateOut deben de estar habilitadas a ´1´ para ambos Timers con el bit GENT del registro TCSR1 y el bit GENT del TCSR2.

DESCRIPCIÓN DE REGISTROS.

Load Register.- Registro de 32 bits que es usado para almacenar el valor del TC (Registro contador).

Timer counter Register.- es un registro de 32 bits, el cual se configura como Timer ó como contador de eventos capture.

Control/Status Register.- es el registro que controla y configura el Timer IPcore.

CPU MICROBLAZE.

Características generales.

Microblaze es un Procesador de 32 bits tipo RICS.

32 bits de Palabra de instrucción con tres operandos y dos modos de direccionamiento. 32 registros de 32 bits.

Arquitectura Harvard.

(16)

8

Figura (4) Arquitectura interna de Microblaze.

3.3 FLUJO DE DISEÑO EDK.

El diseño usando las herramientas EDK consiste en el desarrollo del Hardware, software, verificación y síntesis, a continuación se presenta cada etapa de diseño.

3.3.1 DESARROLLO DEL HARDWARE.

La tecnología Xilinx FPGA permite adecuar la lógica reconfigurable de hardware en un sistema embebido. Esta adecuación no es posible usando los microprocesadores o controladores de uso genérico.

El desarrollo del hardware usando la plataforma EDK consiste en conectar uno o más procesadores y periféricos con el controlador de buses. La información del Hardware se encuentra contenida en el archivo MHS.

3.3.2 DESARROLLO DEL SOFTWARE.

El desarrollo del software consiste soló en el uso de funciones de la biblioteca de Xilinx para desarrollar la aplicación del sistema embebido. La información relacionada al Software se encuentra contenida en el archivo MSS.

3.3.3 VALIDACIÓN.

La validación de hardware consiste en la simulación de lenguajes de descripción de hardware como ModelSim y ChipScop y la validación de software se realiza con la depuración clásica del programa.

En la Figura (5) se presenta el flujo de diseño EDK del software y hardware para formar un archivo de extensión Bit el cual será cargado en el FPGA.

(17)

9

(18)

10

4. DESARROLLO.

En este capítulo se detalla el desarrollo técnico del proyecto dividido en dos partes, el desarrollo del Hardware y el desarrollo del Software.

4.1 HARDWARE.

La parte de diseño de hardware consiste en agregar las propiedades intelectuales necesarias para desarrollar el proyecto como “Timers”, CPU’s etc. En este trabajo se requiere agregar tres “Timers” uno para la captura, uno para generar una interrupción y uno para generar una señal PWM.

Para agregar un Timer y adaptarlo al proyecto usando las herramientas XST se requiere de la siguiente secuencia de pasos.

1. Agregar los IP necesarios.

En este paso se agregan todos los IP’s que van a ser utilizados como IP’s para comunicación de datos como I2C, SPI, UART, etc.

Figura (6) Agregar IP.

1. Conectar los IP al bus PLB (Processor Local Bus). Para que se puedan comunicar con el CPU Microblaze.

(19)

11

Figura (7) Conexiones de PLB.

2. Configurar las conexiones externas e interrupciones físicas al sistema inmerso.

En este proyecto se usan dos terminales externas, el PWM de salida y el Trigger de captura como entrada y una interrupción por desbordamiento de Timer.

(20)

12 En la Figura (9) se observa que las señales PWM0 y CaptureTrig están configuradas como señales externas.

Figura (9) Señales Externas.

3. Generar una dirección para cada IP Timer.

Con la dirección generada, el CPU puede comunicarse con el IP Timer a través del PLB.

(21)

13

4. Modificar el Archivo UCF.

En este paso se le asigna al FPGA las entradas y salidas físicas de la tarjeta.

Figura (11) Archivo UCF.

En la tabla (1) se presenta el resumen de configuración de los IP “Timers” descrito a detalle en el Capítulo 2.

Nombre del IP. Pin externo. Uso. UCF

Timer 0 Trig0 Captura D7

Timer 1 PWM0 PWM F8

Timer 2 Interrupción por

desbordamiento.

(22)

14

4.2 CONFIGURACIÓN DE REGISTROS.

Para el funcionamiento de los Timer IPcores se deben de escribir los siguientes números en formato Hexadecimal, en el registro de estado del IPcore descrito en el capítulo anterior. La función utilizada para configurar el Registro de Estado.

XTmrCtr_mWriteReg(Numero en Hexadecimal); Esta función se encuentra contenida en la biblioteca. #include "xtmrctr_l.h"

4.2.1- CONFIGURACIÓN PWM.

Configuración para modo “Generic”. XTmrCtr_mWriteReg(0x00000206); TC= 1000000110

4.2.2- CONFIGURACIÓN PARA CAPTURA.¡ERROR! MARCADOR NO DEFINIDO. Configuración para modo Capture

XTmrCtr_mWriteReg(0x00000089); TC= 10001001.

4.3- PROGRAMACIÓN.

La programación del proyecto se encuentra desarrolladla en lenguaje C para sistemas embebidos de Xilinx y consiste en generar un programa para cada “IPCORE” en el cual se presente la configuración del mismo y las funciones necesarias para su uso.

4.3.1.- PROGRAMA PARA GENERAR UN PWM.

El programa de PWM está conformado por 2 funciones una para la configuración y otra para el manejo del ancho de pulso.

En la función Void configurar_pwm() consta de la función de inicialización XTmrCtr_Initialize la cual

inicializa el timer1 que será usado como PWM. La función XTmrCtr_mSetLoadReg se encarga de

cargarle un valor a cada registro de Carga del Timer para controlar el periodo y ancho del pulso. La función XTmrCtr_mWriteReg configura el Timer en modo PWM y activa el conteo del Timer.

void configurar_pwm(void) {

(23)

15 XTmrCtr_mSetLoadReg(InstanciaPWM->BaseAddress,0,50000); XTmrCtr_mSetLoadReg(InstanciaPWM->BaseAddress,1,0); XTmrCtr_mWriteReg(InstanciaPWM->BaseAddress,0,XTC_TCSR_OFFSET,0x00000206); XTmrCtr_mWriteReg(InstanciaPWM->BaseAddress,1,XTC_TCSR_OFFSET,0x00000606); }

void valorpwm(int pwmval) {

pwmval=pwmval*500;

XTmrCtr_mSetLoadReg(InstanciaPWM -> BaseAddress, 1, pwmval); }

4.3.2.- PROGRAMA PARA REALIZAR UNA CAPTURA.

El programa para generar una captura consta de dos funciones una para configurar el Timer en modo “Capture” y otra para realizar la captura.

La función Void captura() se encarga de esperar a que el evento de captura ocurra, esto ocurre cuando el registro de estado del TIMER toma el valor de 0x189. Cuando el evento de captura ocurre se toma la muestra del Timer o el valor de Captura y se repite el proceso tomando otra muestra para realizar la diferencia de tiempo entre los dos eventos de captura, para determinar el periodo de la función que estamos muestreando.

void configurar_capture(void) { XTmrCtr_Initialize(InstanciaTimer,XPAR_XPS_TIMER_0_DEVICE_ID); XTmrCtr_mWriteReg(InstanciaTimer-BaseAddress,0,XTC_TCSR_OFFSET,0x00000089);//capture } void captura(void) { aux=XTmrCtr_mGetControlStatusReg(XPAR_XPS_TIMER_0_BASEADDR,0); while(aux == 0x00000089){ aux=XTmrCtr_mGetControlStatusReg(XPAR_XPS_TIMER_0_BASEADDR,0); Value1 = XTmrCtr_mGetLoadReg(0x83C00000,0); } Value2 = XTmrCtr_mGetLoadReg(0x83C00000,0); aux2 = Value2 - Value1 ; }

(24)

16

4.3.3. PROGRAMA PARA REALIZAR UNA INTERRUPCIÓN.

El programa para realizar una interrupción se utiliza para mantener un intervalo de captura periódico. Los comentarios del programa describen cada función.

void configuraTimer(void) {

/*Inicializa la direccion del timer 0*/

XTmrCtr_Initialize(TmrTimerInstancePtr,XPAR_XPS_TIMER_2_DEVICE_ID);

/*Inicializa el modulo de interrupciones generales*/

XIntc_Initialize(&InterruptController,XPAR_XPS_INTC_0_DEVICE_ID);

/*Conecta la interrupcion del timer al controlador de interrupciones*/

XIntc_Connect(&InterruptController,XPAR_XPS_INTC_0_XPS_TIMER_2_INTERRUPT_INTR, (XInterruptHandler)XTmrCtr_InterruptHandler,

(void *)TmrTimerInstancePtr);

/*Inicia las interrupciones en tiempo real*/

XIntc_Start(&InterruptController,XIN_REAL_MODE);

/*Habilita las interrupciones del timer 0*/

XIntc_Enable(&InterruptController,XPAR_XPS_INTC_0_XPS_TIMER_2_INTERRUPT_INTR); microblaze_enable_interrupts();

/*Registra el handler del contador*/

XTmrCtr_SetHandler(TmrTimerInstancePtr, TimerCounterHandler, TmrTimerInstancePtr);

/*Configura las opciones del timer 0 en autorecarga, y modo de interrupcion*/

XTmrCtr_SetOptions(TmrTimerInstancePtr, 0,XTC_INT_MODE_OPTION | XTC_AUTO_RELOAD_OPTION);

/*Inicializa el valor de default del contador despues del desbordamiento */

XTmrCtr_SetResetValue(TmrTimerInstancePtr,0,RESET_VALUE);

/*Inicia el conteo*/

XTmrCtr_Start(TmrTimerInstancePtr,0); }

(25)

17

5. RESULTADOS.

En las Figuras 12 y 13 se pueden observar las señales de PWM para controlar el motor.

En el PWM se puede modificar la frecuencia de operación y el ancho del pulso adecuado al motor que se pretenda controlar.

Se observa que el sistema embebido está operando según lo esperado y puede ser usado como una plataforma para controlar motores de CD.

Figura (12) Resultados (a).

(26)

18

6. CONCLUSIONES Y TRABAJOS FUTUROS.

En este proyecto no se logro alcanzar el objetivo de controlar el motor, sin embargo se presentan las herramientas necesarias para realizarlo.

Con este trabajo se puede concluir que el desarrollo de sistemas embebidos basados en FPGA’s presenta una buena alternativa para el diseño y desarrollo de proyectos basados en procesadores y sistemas embebidos. Sin embargo con la experiencia adquirida al realizar este proyecto se resalta la inestabilidad del software EDK, ya en que algunas ocasiones el programa no respondía como debería de hacerlo, por ejemplo entraba a rutinas a las cuales no debería entrar.

También es importante comentar que en el tiempo de síntesis del Hardware en ocasiones llega a tardar hasta 30 minutos, lo que es incomodo para el desarrollador.

Una conclusión personal es que al trabajar a nivel de sistema embebido usando las herramientas EDK, no te permite el uso optimo del sistema ya que tanto el Hardware como software se encuentran desarrollados y el desarrollador trabaja un poco más abajo que el usuario, eso impide hacer modificaciones a los IPCORES y a las funciones que controlan los IPCORES, lo que ocasiona una gran demanda de tiempo cuando el desarrollador se encuentra en aprendizaje. Después del periodo de aprendizaje el proceso de desarrollo se automatiza.

Algunos de los trabajos futuros podrían ser los siguientes:

Implementar un sistema operativo de tiempo real en el FPGA usando las herramientas EDK. Insertar más procesadores dentro del FPGA como Microblaze, ARM, etc.

Realizar aplicaciones para empresas de Tijuana basadas en FPGA’s.

Como opinión personal sería más importante desarrollar nuestros propios IPCORESy competir con países desarrollados con esta tecnología, en la cual solo necesitamos una computadora para desarrollar nuevos “CORES”.

(27)

19

7. ACRÓNIMOS

EDK

Xilinx Embedded Development Kit.

FPGA

Field Programmable Gate Array.

HDL

Hardware Description Language.

LMB

Local Memory Bus. A low latency synchronous bus primarily used to access on-chip block RAM. The MicroBlaze processor contains an instruction LMB bus and a data LMB bus.

MHS file

Microprocessor Hardware Specification file. The MHS file defines the configuration of the embedded processor system including

buses,peripherals, processors, connectivity, and address space.

MSS file

Microprocessor Software Specification file.

OPB

On-chip Peripheral Bus.

PLB

Processor Local Bus.

VHDL

VHSIC Hardware Description Language.

XPS

Xilinx Platform Studio. The GUI environment in which you can develop your embedded design.

(28)

20

8. REFERENCIAS.

[1] A. Gambier Real-time Control Systems: A Tutorial University of Mannheim 2007. [2] Pong P. Chu FPGA prototyping by VHDL examples John Wiley and Sons 2008. [3] Xilinx MicroBlaze Processor Reference Guide 2008.

[4] Xilinx MicroBlaze Hardware Reference Guide 2008. [5] Xilinx EDK Concepts, Tools, and Techniques 2009. [6] Xilinx Embedded System Tools Reference Guide 2009.

[7] Jari Nurmi Processor Design System-on-Chip Computing for ASICs and FPGAs Springer 2007. [8] Scott Hauck and Adré DeHon Reconfigurable computing the theory and practice of FPGA-based computation Hardcove 2008.

Referencias

Documento similar

En estos últimos años, he tenido el privilegio, durante varias prolongadas visitas al extranjero, de hacer investigaciones sobre el teatro, y muchas veces he tenido la ocasión

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

En esta sección se tratan las características que debe tener un compresor de secuencias biológicas para poder ser usado como herramienta en la construcción de los árboles de

 Tejidos de origen humano o sus derivados que sean inviables o hayan sido transformados en inviables con una función accesoria..  Células de origen humano o sus derivados que

En cada antecedente debe considerarse como mínimo: Autor, Nombre de la Investigación, año de la investigación, objetivo, metodología de la investigación,

El rango de valores de una variable float es mucho ma- yor, y si el valor de la variable es mayor que el valor máximo del do- minio de los enteros de 4 bytes, entonces el resultado

Hoy en día estamos en un momento donde el desarrollo de sistemas embebidos basados en FPGAs ya está plenamente asentado, y ahora el reto está en cómo sacar el máximo partido a

En primer lugar, como ya se ha señalado, debe precisarse que ambas categorías acce- den a sus puestos de trabajo a través de cauces más flexibles que el personal permanente, pero