Tabla de Contenido
1.
....................................................................................... 4 PLANTEAMIENTO PLANTEAMIENTO DEL PROBLEMA ........................................................................................
2.
................................................................................................................................... ................ 4 OBJETIVOS ....................................................................................................................
2.1.
...................................................................................................................... ..... 4 Objetivo general .................................................................................................................
2.2.
.............................................................................................................. 4 Objetivos específicos ...............................................................................................................
3.
........................................................................................................................ ........................... 5 MARCO TEORICO .............................................................................................
3.1.
........................................................................................................................... ...................................... 5 PICOBLAZE .....................................................................................
3.1.1. 3.2.
El Núcleo KCPSM3 ................................................................................................................ 5
3.2.1.
....................................................................................................................... 6 Beneficios ........................................................................................................................
3.2.2.
..................................................................................................... ........................... 6 Características básicas ..........................................................................
3.2.3.
...................................................................................................................... ..... 6 Puertos I/O ..................................................................................................................
3.2.4.
................................................................................................................... .. 8 Instrucciones ..................................................................................................................
3.4.
Proceso para la creación de un proyecto en vhdl con picoblaze............................................ 10
3.4.1.
..................................................................................................... .................................... 10 Descargar PicoBlaze:.................................................................
3.4.2.
............................................................................................................. 10 Copiar archivos ..............................................................................................................
3.4.3.
..................................................................................... ... 10 Montaje de códigos de idiomas ..................................................................................
3.4.4.
................................................................................................ .................................... 11 Ejecutar el ensamblador ............................................................
3.4.5.
Navegador de proyectos ................................................................................................ 15
3.5.
4.
........................................................................................ ..... 5 Módulos HDL para PicoBlaze ....................................................................................
........................................................................................................................ ........................................................... 18 Arduino DUE .............................................................
3.5.1.
.......................................................... 19 ADC en Arduino DUE (analogReadResolution) ( analogReadResolution) ...........................................................
3.5.2.
.................................................................................................................. 19 DigitalWrite ...................................................................................................................
.............................................................................................................................. 19 DIAGRAMAS ...............................................................................................................................
4.1.
................................................................................................................ ............................................... 20 Diagrama de Bloques .................................................................
4.2.
.................................................................................................................... ......................... 20 Diagrama digital ...........................................................................................
4.3.
............................................................................................................. ......................... 20 Diagrama de bloques ....................................................................................
5.
...................................................................................................... 20 LISTA DE COMPONENTES COMPONENTES .......................................................................................................
6.
............................................................................................................. 21 MAPA DE VARIABLES ..............................................................................................................
6.1.
................................................................................................................................ .......................................................... 21 ADC.vhd......................................................................
6.2.
............................................................................................................................... .......................................................... 21 KCPSM3 .....................................................................
6.3.
......................................................................................................................... ........................................................... 22 ArduinoDUE ..............................................................
7.
DESCRIPCION DE PRERREQUISITOS Y CONFIGURACION CONFIGURACION .............................................. 22
8.
........................................................................................................................ .............. 24 CONCLUSIONES ...........................................................................................................
9.
RECOMENDACIONES ............................................................................................................... 24 1
10.
...................................................................................................................... .............. 24 APLICACIONES ........................................................................................................
11.
...................................................................................................................... .............. 25 CRONOGRAMA ........................................................................................................
12.
...................................................................................................................... 25 BIBLIOGRAFÍA .......................................................................................................................
13.
.................................................................................................................................. 25 ANEXOS ...................................................................................................................................
13.1.
Manual de usuario ............................................................................................................. 25
13.2.
................................................................................. ........... 25 Resultados del Programa Antiplagio ......................................................................
13.3.
................................................................................................................... 25 Hojas técnicas ....................................................................................................................
Tabla de ilustraciones Ilustración 1Conexión 1Conexión del núcleo núcleo KCPSM3 con su memoria de código............................................... código................................................. .. 5 Ilustración 2Esquema 2Esquema de movimiento movimiento de datos en en los puertos I/O ......................................................... 7 Ilustración 3Montaje de códigos de idiomas................................................................ ......................................................................................... ......................... 11 Ilustración 4Ejecutar 4Ejecutar el ensamblador ensamblador .............................................................. ................................................................................................... ..................................... 11 Ilustración 5Procedimiento 5Procedimiento para 32 bits:cd................................................................. .......................................................................................... ......................... 12 Ilustración 6Procedimiento 6Procedimiento para 32 bits: ADC.psm KCPSM3 .......................................................... ............................................................. ... 12 Ilustración 7Procedimiento 7Procedimiento para 32 bits:KCPSM3 completo completo............................................................ ............................................................... ... 12 Ilustración 8Directorio 8Directorio de trabajo ........................................................ ........................................................................................................ ................................................ 13 Ilustración 9Procedimiento 9Procedimiento para 64 bits. .......................................................... .............................................................................................. .................................... 13 Ilustración 10Software 10Software DOSbox............................................................ ............................................................................................................ ................................................ 14 Ilustración 11Comando 11Comando c, se utiliza para cambiar cambiar el directorio. directorio. ......................................................... 14 Ilustración 12Introducir 12Introducir el comando KCPSM3 KCPSM3 ADC.psm ADC.psm .................................................................... 15 Ilustración 13Navegador 13Navegador de proyectos proyectos en este caso Xilinx ISE Design................................................ 15 Ilustración 14Crear 14Crear un proyecto proyecto en Xilinx ISE Design Design........................................................... ......................................................................... .............. 16 Ilustración 15Configurara 15Configurara las características características de la FPGA FPGA ............................................................... .................................................................. ... 16 Ilustración 16Añadir 16Añadir los archivos de código fuente fuente................................................................... .............................................................................. ........... 17 Ilustración 17Añadir 17Añadir ADC.VHD y kcpsm3.vhd. kcpsm3.vhd. ........................................................... .................................................................................... ......................... 17 Ilustración 18Muestra 18Muestra los dos archivos archivos seleccionados seleccionados se añadan añadan al proyecto proyecto..................................... 18 Ilustración 19Añadir 19Añadir los archivos al proyecto ............................................................. ...................................................................................... ......................... 18 Ilustración 20Arduino 20Arduino DUE ................................................................... .................................................................................................................. ............................................... 18 Ilustración 21Diagrama 21Diagrama de Bloques Bloques ..................................................................................................... ..................................................................................................... 20 Ilustración 22Logo de Windows 7 ......................................................... ......................................................................................................... ................................................ 22 Ilustración 23DOSBox 23DOSBox ...................................................................................... .......................................................................................................................... .................................... 23 Ilustración 24FPGA 24FPGA SPARTAN SPARTAN 3E-500 ............................................................ ................................................................................................ .................................... 23 Ilustración 25ArduinoDue 25ArduinoDue...................................................................... ..................................................................................................................... ............................................... 23 Ilustración 26Cronograma 26Cronograma de Actividades Actividades ............................................................................. ........................................................................................... .............. 25 Ilustración 27Due-pinout 27Due-pinout ........................................................... ...................................................................................................................... ........................................................... 26
2
Tablas Tabla 1 Repertorio de instrucciones ................................................................ ....................................................... 9 Tabla 2 Directivas de ensambladores para PicoBlaze ............................................................................................. 9 Tabla 3 Diferencias entre nemónicos del ensamblador para PicoBlaze ................................................................ 10 Tabla 4.Lista de Componentes .............................................................................................................................. 21 Tabla 5Entradas:ADC.vhd ..................................................................................................................................... 21 Tabla 65Salidas:ADC.vhd....................................................................................................................................... 21 Tabla 7Entradas: KCPSM3 ..................................................................................................................................... 21 Tabla 8Salidas de kcpsm3 ..................................................................................................................................... 21 Tabla 9Entradas de top_level ..................................................... ................................................................. .......... 22 Tabla 10Salidas de top_level ...................................................... ................................................................. .......... 22 Tabla 11Signals de top_level ...................................................... ................................................................. .......... 22 Tabla 12ArduinoDUE ............................................................................................................................................. 22
3
1. PLANTEAMIENTO DEL PROBLEMA En la actualidad debido al avance tecnológico se han creado las FPGA Arreglo de compuertas lógicas programables que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada mediante un lenguaje de descripción especializado. Si bien es cierto el diseño y desarrollo de nuevas tecnologías aplicadas a la investigación avanza lentamente debido a las pocas aplicaciones que se realizan con base a estas tecnologías; son desarrollos que hasta el momento están comenzando a ser explorados con mayor profundidad, por este motivo se planteó la elaboración de la una aplicación con el micro PicoBlaze que obtenga datos de un ADC y que su valor se despliegue en una serie de leds segun el valor digitalizado, desde la manipulación de la tarjeta de desarrollo Spartan 3E con sus módulos incorporados y todo el tratamiento digital que esto implica. Con base a lo anterior, este proyecto se estructura en cuatro fases de desarrollo. Una primera fase de investigación sobre el desarrollo de FPGA como nueva tecnología aplicada al procesamiento de señales ; una segunda etapa ya enfocada en la implementación que implica el procesamiento previo y conversión a símbolos analógicos ; una tercera etapa del bloque de programación con la FPGA para el procesamiento, y por último la conversión de estos símbolos.
2. OBJETIVOS 2.1.Objetivo general Desarrollar e implementar una aplicación con el micro PicoBlaze que obtenga datos de un ADC, en una tarjeta FPGA Xilinx Spartan 3E.
2.2.Objetivos específicos Detallar el procedimiento necesario para implementar una aplicación con el micro PicoBlaze. Investigar el marco teórico del módulo PicoBlaze, el cual incluye funcionalidad, lenguaje e instrucciones y conexión del módulo con la FPGA. Incluir el módulo de PicoBlaze en el programa principal y sintetizar el sistema entero en la FPGA en el software específico de Xilinx. Representar los datos obtenidos del ADC en una serie de leds segùn el valor digitalizado.
4
3. MARCO TEORICO 3.1. PICOBLAZE Es un microcontrolador de 8 bits, compacto y de distribución libre
Está optimizado y ocupa solo 200 celdas lógicas. (5% de los recursos)
PICOBLAZE
Está diseñado para ser empotrado en dispositivos FPGA
Se provee como soft core, y puede sintetizarse con el resto de la lógica.
3.1.1.Módulos HDL para PicoBlaze Está organizado en dos módulos: KCPSM3 es el procesador (constant (K) coded programmable state machine). El otro módulo es para la memoria de instrucciones. Allí se almacena el código ensamblado.
Ilustración 1Conexión del núcleo KCPSM3 con su memoria de código.
3.2. El Núcleo KCPSM3 El núcleo requiere de un bloque de RAM, en el que es posible almacenar un programa de hasta 1024 instrucciones, que se cargan automáticamente durante la configuración del FPGA. El microprocesador es flexible, no requiere recursos externos. Su funcionalidad básica puede ser extendida conectándole puertos de entrada y salida u otros recursos, realizados con lógica del FPGA.
5
3.2.1. Beneficios
Es un recurso que se presenta como código VHDL y que puede ser sintetizado en algún FPGA
El núcleo puede emigrarse a futuras arquitecturas de FPGAs
Se elimina el riesgo de que la aplicación quede obsoleta, debido a nuevas generaciones de FPGAs. Como el KCPSM3 queda integrado en el FPGA de una tarjeta de desarrollo, reduce la necesidad de espacio físico externo.
Es posible sintetizar más de un núcleo dentro de un FPGA.
3.2.2.Características básicas
Datos CPU de 8 bits 256 puertos de entrada y 256 puertos de salida
16 registros de datos
64 posiciones de memoria de datos (dirección de 6-bit)
ALU de 8-bits con flags C (carry) y Z (zero)
3.2.3. Puertos I/O Los puertos de entrada/salida permiten conectar al microprocesador a otros módulos o a los periféricos del FPGA. El microprocesador admite manejar 256 puertos de entrada y 256 puertos de salida, utilizando las siguientes señales: PORT_ID provee la dirección del puerto.
IN_PORT
Bus de entrada.
OUT_PORT
READ_STROBE
WRITE_STROBE
Bus de salida.
Activación de una operación de lectura.
Activación de una operación de escritura.
6
Proceso de entrada de datos Genera un pulso en READ_STROBE por un ciclo de reloj
Se realiza con la instrucción INPUT
El PicoBlaze coloca en PORT_ID la dirección a leer
Lee el dato del bus IN_PORT y lo transfiere a un registro especificado.
Proceso de salida de datos Coloca un dato en el bus OUT_PORT proveniente de un registro especificado
El PicoBlaze coloca en PORT_ID la dirección a escribir
Se tiene a la instrucción OUTPUT
Genera un pulso en WRITE_STROBE por un ciclo de reloj.
Las señales PORT_ID, READ_STROBE y WRITE_STROBE son utilizadas para la decodificación de hardware externo, haciendo posible que diferentes recursos de hardware sean mapeados en diferentes direcciones. PORT_ID es válido por dos ciclos del reloj proporcionando tiempo adicional para decodificación lógica externa. READ_ STROBE y WRITE_ STROBE se proveen en el segundo ciclo de reloj.
Movimiento de datos
Ilustración 2Esquema de movimiento de datos en los puertos I/O
7
3.2.4. Instrucciones 1024 posiciones de memoria de instrucciones (dirección de 10bits)
El repertorio de instrucciones del núcleo KCPSM3 se muestra en la tabla 1 y se compone de 57 instrucciones, que de acuerdo con su función, se organizan en 7 grupos.
8
Tabla 1 Repertorio de instrucciones
La notación empleada para los operandos es: sX Uno de los 16 registros entre el rango de s0 a sF. sY Uno de los 16 registros entre el rango de s0 a sF. „kk‟ representa un valor constante en el rango de 00 a FF. „aaa‟ representa una dirección en el ra ngo de 000 a 3FF. „pp‟ representa la dirección de un puerto en el rango de 00 a FF „ss‟ Representa una dirección de almacenamiento interno en el rango de 00 a 3F
3.2.5. Directivas del ensamblador Las directivas son órdenes para el ensamblador y no tienen traducción a código máquina. Para los dos ensambladores principales tenemos:
Tabla 2 Directivas de ensambladores para PicoBlaze
3.2.6. Nemónicos del Ensamblador •El lenguaje ensamblador trabaja con nemónicos, que son grupos de caracteres alf anuméricos que
simbolizan las órdenes o tareas a realizar. •La traducción de los nemónicos a código máquina la lleva a cabo un programa ensamblador.
9
Tabla 3 Diferencias entre nemónicos del ensamblador para PicoBlaze
3.3. DOSBox
DOSBox es un emulador que recrea un entorno similar al sistema DOS
Su objetivo es poder ejecutar programas originalmente escritos para el sistema operativo MSDOS deMicrosoft en ordenadores más modernos o en diferentes arquitecturas
DOSBox es software libre
Está disponible para muchos sistemas operativos, como Linux, FreeBSD, Windows, Mac OS X, OS/2 y BeOS.
3.4. Proceso para la creación de un proyecto en vhdl con picoblaze 3.4.1. Descargar PicoBlaze: Descargar el archivo desde KCPSM3.zip http://www.xilinx.com/. La versión del software para la familia Spartan-3 debe ser elegida.
3.4.2. Copiar archivos Cree un directorio llamado ADC, en este se almacenará todos los archivos del proyecto. Copiar los siguientes archivos del directorio de ensamblador en ADC. KCPSM3.EXE ROM_form.coe ROM_form.v ROM_form.vhd Copiar el archivo siguiente del directorio VHDL en ADC. kcpsm3.vhd • • • •
•
3.4.3. Montaje de códigos de idiomas
10
Abrir un editor de texto (Bloc de notas o Wordpad) y escriba el texto que se muestra en la figura. El texto consta de un programa escrito en el lenguaje ensamblador KCPSM3.
Ilustración 3Montaje de códigos de idiomas
El programa se ejecuta en un bucle infinito: Lee el contenido de un puerto de entrada a la dirección 00h (conectada a los interruptores) en un registro, Escribe el contenido de este registro a un puerto de salida en la dirección de 80h (conectado a los LED). Después guardar el archivo en ADC.psm, en el directorio ADC. •
•
•
Nota: Si se utiliza el Bloc de notas, tener cuidado de no guardar el archivo como tutorial.psm.txt. El nombre del archivo debe ser restringido a 8 caracteres. Los caracteres que aparecen después de un ";" en cada línea son comentarios.
3.4.4. Ejecutar el ensamblador El ensamblador toma el archivo .psm como entrada, así como tres plantillas de inicialización del bloque de memoria RAM. Se producen quince archivos de salida diferentes. El archivo de salida es .vhd.
Ilustración 4Ejecutar el ensamblador
El ensamblador es un archivo ejecutable de DOS, KCPSM3.exe, que se puede ejecutar en una ventana del símbolo del sistema DOS. 11
Para sistemas operativos de 32 bits se puede realizar el siguiente procedimiento en cmd, para 64 bits se especificará más adelante.
Procedimiento para 32 bits: Abrir una ventana del símbolo del sistema DOS seleccionando: Inicio → Todos los programas → Prompt Accesorios → Símbolo
Utilice el comando cd para cambiar al directorio del trabajo ADC, como se muestra en la figura:
Ilustración 5Procedimiento para 32 bits:cd
Escribir el comando ADC.psm KCPSM3, como se muestra en la figura:
Ilustración 6Procedimiento para 32 bits: ADC.psm KCPSM3
Después de introducir el comando KCPSM3 ADC.psm, aparecerá en la pantalla varios mensajes que termina con "KCPSM3 éxitoso. KCPSM3 completo.”
Ilustración 7Procedimiento para 32 bits:KCPSM3 completo
Después de que el ensamblador se ha ejecutado correctamente, el directorio de trabajo debe contener muchos más archivos.
12
Ilustración 8Directorio de trabajo
Procedimiento para 64 bits. En un sistema de 64 bits al realizar el procedimiento aparecerá el mensaje de error como se muestra en la figura:
Ilustración 9Procedimiento para 64 bits.
Para poder implementarlo se debe utilizar el software DOSbox, que se puede descargar desde http://www.dosbox.com/.
Descarguar y ejecutar DOSBox. Montar el directorio de trabajo y el cambio en este directorio. Al ejecutar el DOSbox aparece una ventana de comandos que se asemeja a la ventana del símbolo del sistema DOS pero primero es necesario montar el directorio de trabajo a una letra de unidad antes de poder entrar en este directorio y ejecutar programas. Esto se realiza con el comando mount: mount
13
Ilustración 10Software DOSbox
El comando c: se utiliza para cambiar en este directorio.
Ilustración 11Comando c, se utiliza para cambiar el directorio.
Después de introducir el comando KCPSM3 ADC.psm, se podrá configurar como que fuera un sistema de 32 bits como se muestra en la figura.
14
Ilustración 12Introducir el comando KCPSM3 ADC.psm
3.4.5. Navegador de proyectos Inicie el software Navegador de proyectos en este caso Xilinx ISE Design y creamos un nuevo proyecto:
Ilustración 13Navegador de proyectos en este caso Xilinx ISE Design
15
Ilustración 14Crear un proyecto en Xilinx ISE Design
Ilustración 15Configurara las características de la FPGA
Luego añadimos los archivos de código fuente como se muestra en la figura:
16
Ilustración 16Añadir los archivos de código fuente
Seleccionar ADC.VHD y kcpsm3.vhd.
Ilustración 17Añadir ADC.VHD y kcpsm3.vhd.
Nos aparecerá la ventana que aparece en la siguiente figura que muestra los dos archivos seleccionados se añadan al proyecto y hacemos clic en Aceptar.
17
Ilustración 18Muestra los dos archivos seleccionados se añadan al proyecto
Podemos observar que se añadieron los archivos a nuestro proyecto.
Ilustración 19Añadir los archivos al proyecto
Y luego configuramos en un programa principal los puertos por los cuales va a funcionar el programa implementado el PicoBlaze.
3.5. Arduino DUE
Cuenta con una conexión capaz USB OTG, 2 DAC (de digital a analógico)
Es una placa electrónica basada en la CPU Atmel SAM3 X8E ARM Cortex-M3
Arduino Due
Es la primera placa Arduino basado en un microcontrola dor núcleo ARM de 32 bits
Ilustración Figura 1Arduino 20Arduino DUE DUE
Un reloj de 84 MHz
4 UARTs
I/O 12 se 18 pueden utilizar como salidas PWM)
Lleva 54 entradas / salidas digitales
3.5.1. ADC en Arduino DUE (analogReadResolution) Descripción analogReadResolution () es una extensión de la API analógica para el Arduino Due. Define el tamaño (en bits) del valor devuelto por analogRead (). Por defecto es 10 bits (devuelve valores entre 0-1023) para la compatibilidad con placas basadas AVR. El Due tiene capacidades de ADC de 12 bits que se puede acceder al cambiar la resolución a 12. Esto devolverá los valores de analogRead () entre 0 y 4095. Sintaxis analogReadResolution (bits)
3.5.2. DigitalWrite Descripción Escribe un valor HIGH o LOW hacia un pin digital. Si el pin ha sido configurado como OUTPUT con pinMode(), su voltaje será establecido al correspondiente valor: 5V ( o 3.3V en tarjetas de 3.3V) para HIGH, 0V (tierra) para LOW. Si el pin es configurado como INPUT, escribir un valor de HIGH con digitalWrite() habilitará una resistencia interna de 20K conectada en pullup (ver el tutorial de pines digitales). Escribir LOW invalidará la resistencia. La resistencia es sufuciente para hacer brillar un LED de forma opaca, si los LEDs aparentan funcionar, pero no muy iluminados, esta puede ser la causa. La solución es establecer el pin como salida con la función pinMode(). Sintaxis digitalWrite(pin, valor)
4. DIAGRAMAS 19
4.1. Diagrama de Bloques
8 bits de salida
Entrada analógica
(digital)
Salida digital ADC
8 bits 8 bits de entrada
Ilustración Figura 2Diagrama 21Diagrama de de Bloques Bloques
4.2. Diagrama digital 4.3. Diagrama de bloques
5. LISTA DE COMPONENTES COMPONENTES
UTILIDAD
Camtasia Studio 8.0
Capturar videos directamente mientras se trabaja en pantalla.
Prezi
Permite realizar presentaciones de trabajo para la exposición del mismo.
Viper
Software antiplagio.
ISE Desing Suite 14.1
Software para programar en VHDL
Xilins PlanAhead 14.1
Software para grabar el programa en VHDL en la FPGA.
PBlazeIDE
Programar el procesador PicoBlaze en ensamblador.
DOSBox
Es un emulador que recrea un entorno similar al sistema DOS con el objetivo de poder ejecutar programas
FPGA SPARTAN 3E-500
Field Programmable Gate Array Dispositivo es un dispositivosemiconductor que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada
20
Es una placa electrónica que permite la conversión análoga digital
Arduino DUE
Tabla 4.Lista de C omponentes
6. MAPA DE VARIABLES 6.1. ADC.vhd Entradas de ADC.vhd
Tipo STD_LOGIC_VECTOR STD_LOGIC
Nombre address clk
Descripción Dirección de la Instrucción reloj
Dimensión 10 1
Asignación address clk
Tabla 5Entradas:ADC.vhd
Salidas de ADC.vhd Nombre Descripción instruction instrucción
Tipo STD_LOGIC_VECTOR
Dimensión 18
Asignación instruction
Tabla 65Salidas:ADC.vhd
6.2. KCPSM3 Tipo STD_LOGIC_VECTOR STD_LOGIC_VECTOR STD_LOGIC
Nombre instruction in_port interrupt
STD_LOGIC STD_LOGIC
clk reset
Entradas de kcpsm3 Descripción instrucción puerto de entrada generar un evento de alarma al afirmar esta entrada de alta durante al menos dos CLK reloj reset
Dimensión 18 8 1
Asignación instruction in_port interrupt
1 1
clk reset
Tabla 7Entradas: KCPSM3
Tipo STD_LOGIC_VECTOR STD_LOGIC_VECTOR
Nombre address port_id
STD_LOGIC STD_LOGIC
write_strobe read_storbe
out_port STD_LOGIC_VECTOR interrupt_ack STD_LOGIC
Salidas de kcpsm3 Descripción
Dimensión 10 Contiene la dirección del puerto durante 2 8 ciclos Valida los datos de salida del puerto 1 Indica que los datos de entrada fueron 1 capturados Datos de salida aparece durante dos ciclos 8 reconoce que se ha producido un evento 1 de interrupción
Asignación address port_id write_strobe read_storbe out_port interrupt_ack
Tabla 8Salidas de kcpsm3
Tipo STD_LOGIC_VECTOR STD_LOGIC
Entradas de top_level Nombre Descripción switches entrada de la señal del arduino clk reloj 21
Dimensión 8 1
Tabla 9Entradas de top_level
Tipo STD_LOGIC_VECTOR
Salidas de top_level Nombre Descripción LEDs muestra la conversión A/D
Dimensión 8
Tabla 10Salidas de top_level
Signals de top_level Tipo Nombre address STD_LOGIC_VECTOR instruction STD_LOGIC_VECTOR port_id STD_LOGIC_VECTOR out_port STD_LOGIC_VECTOR in_port STD_LOGIC_VECTOR write_storbe STD_LOGIC read_storbe STD_LOGIC interrupt_ack STD_LOGIC reset STD_LOGIC interrupt STD_LOGIC
Dimensión 10 18 8 8 8 1 1 1 1 1
Tabla 11Signals de top_level
6.3. ArduinoDUE Tipo int
Nombre sensor
byte
num
Variables del Arduino Descripción Almacena el valor de la conversión A/D Almacena el valor de la conversión A/D en 1byte Tabla 12ArduinoDUE
7. DESCRIPCION DE PRERREQUISITOS Y CONFIGURACION
Computadora con Windows 7 para instalar el programa ISE Desing Suite 14.1
Ilustración 22Logo de Windows 7
Programa ISE Desing Suite 14.1 para programar en VHDL 22
Programa Xilins PlanAhead 14.1 para grabar el programa en la FPGA. Programa DOSBox
Ilustración 23DOSBox
FPGA SPARTAN 3E-500
Ilustración 24FPGA Figura 3FPGA SPARTAN SPARTAN 3E-500 3E-500
Tener conocimiento básico de programación en VHDL. Instalar el PBlazeIDE, el cual se puede descargar de la página de mediatronix. Programa Arduino 1.5.5, para programar el ArduinoDue ArduinoDue
Ilustración 25ArduinoDue
23
8. CONCLUSIONES PicoBlaze tiene dos módulos principales, el primero es el núcleo kcpsm3 que tiene las características y arquitectura generales de cualquier microprocesador, posee registros e instrucciones en lenguaje ensamblador y señales de entrada y salida. El segundo es la memoria de instrucciones donde se almacena el código ensamblador del programa, esto permite configurarlo como una ROM en HDL. Los FPGAs son eficaces para la implementación de algoritmos o el prototipado de circuitos y sistemas digitales, sumado a la ventaja de emplear lenguajes de alto nivel en la especificación de los diseños. Al contar con un microprocesador empotrado, se amplía la gama de aplicaciones que con estos dispositivos pueden desarrollarse. El microprocesador PicoBlaze permite realizar programas en lenguaje de bajo nivel, mediante ensambladores propios de este microprocesador se los puede incluir como módulos vhdl en un sistema embebido con una aplicación específica.
9. RECOMENDACIONES Encender primero la tarjeta de desarrollo, y posteriormente conectar el puerto USB de programación desde la PC a la tarjeta, para evitar posibles daños. Verificar que las especificaciones de la tarjeta de desarrollo ingresadas al momento de crear el proyecto corresponden con las especificaciones de la tarjeta que se va a utilizar. Se recomienda agregar el archivo de origen vho al proyecto para ser compilado correctamente en el diseño durante la síntesis y aplicación. Para realizar el montaje de códigos de idiomas si se utiliza el Bloc de notas, tener cuidado de no guardar el archivo como tutorial.psm.txt. El nombre del archivo debe ser restringido a 8 caracteres. Los caracteres que aparecen después de un ";" en cada línea son comentarios.
10.APLICACIONES Al momento de hablar de aplicaciones el módulo PicoBlaze compite con una máquina de estados FSMD. A diferencia de FSMD que podría completar en un único estado (ciclo de reloj) una operación compleja, el PicoBlaze puede realizar una operación prediseñada en un ciclo. Puede requerir muchas instrucciones para realizar la misma tarea que el FSMD. Debido a que el desarrollo de software es generalmente más fácil que crear hardware personalizado, la opción microprocesador es generalmente preferible para aplicaciones de tiempo no crítico. Existen varios proyectos y aplicaciones realizadas con este módulo: Contador ascendente-descendente utilizando el procesador empotrado Picoblaze. A partir de su repertorio de instrucciones se crea un código ensamblador que programa un contador. Cronómetro digital con precisión de centésimas de segundos, utilizando el PicoBlaze, se decodifican los números hexadecimales para poder ser mostrados en un display de 7 segmentos. Diseño de un reloj que mide el tiempo en horas, minutos y segundos junto la posibilidad de programar una alarma. El diseño contiene un módulo UART para establecer comunicación serial y se utiliza para observar y/o programar el tiempo y la alarma a través de comandos simples y mensajes; para ello se utiliza el HyperTerminal de Windows. La señal de alarma
24
puede ser usada para disparar una interrupción en el procesador principal.
11.CRONOGRAMA
Ilustración 26Cronograma de Actividades
12.BIBLIOGRAFÍA
13. ANEXOS 13.1.
Manual de usuario
13.2.
Resultados del Programa Antiplagio
13.3.
Hojas técnicas
13.3.1. Due-pinout
25
Ilustración 27Due-pinout
26