INFORME_3

30
Tabla de Contenido 1. PLANTEAMIENTO DEL PROBLEMA......................................4 2. OBJETIVOS.......................................................4 2.1. Objetivo general............................................ 4 2.2. Objetivos específicos.......................................4 3. MARCO TEORICO...................................................5 3.1. PICOBLAZE................................................... 5 3.1.1. Módulos HDL para PicoBlaze...............................5 3.2. El Núcleo KCPSM3............................................ 5 3.2.1. Beneficios............................................... 6 3.2.2. Características básicas..................................6 3.2.3. Puertos I/O.............................................. 6 3.2.4. Instrucciones............................................ 8 3.4. Proceso para la creación de un proyecto en vhdl con picoblaze 10 3.4.1. Descargar PicoBlaze:....................................10 3.4.2. Copiar archivos.........................................10 3.4.3. Montaje de códigos de idiomas...........................10 3.4.4. Ejecutar el ensamblador.................................11 3.4.5. Navegador de proyectos..................................15 3.5. Arduino DUE................................................ 18 3.5.1. ADC en Arduino DUE (analogReadResolution)...............19 3.5.2. DigitalWrite............................................ 19 4. DIAGRAMAS......................................................20 4.1. Diagrama de Bloques..........................................20 4.2. Diagrama digital........................................... 20 4.3. Diagrama de bloques........................................20 5. LISTA DE COMPONENTES...........................................20 6. MAPA DE VARIABLES..............................................21 6.1. ADC.vhd.................................................... 21 6.2. KCPSM3..................................................... 21 1

Transcript of INFORME_3

Page 1: INFORME_3

Tabla de Contenido1. PLANTEAMIENTO DEL PROBLEMA.......................................................................................4

2. OBJETIVOS...................................................................................................................................4

2.1. Objetivo general.....................................................................................................................4

2.2. Objetivos específicos..............................................................................................................4

3. MARCO TEORICO.......................................................................................................................5

3.1. PICOBLAZE..........................................................................................................................5

3.1.1. Módulos HDL para PicoBlaze........................................................................................5

3.2. El Núcleo KCPSM3................................................................................................................5

3.2.1. Beneficios.......................................................................................................................6

3.2.2. Características básicas....................................................................................................6

3.2.3. Puertos I/O......................................................................................................................6

3.2.4. Instrucciones...................................................................................................................8

3.4. Proceso para la creación de un proyecto en vhdl con picoblaze............................................10

3.4.1. Descargar PicoBlaze:....................................................................................................10

3.4.2. Copiar archivos.............................................................................................................10

3.4.3. Montaje de códigos de idiomas.....................................................................................10

3.4.4. Ejecutar el ensamblador................................................................................................11

3.4.5. Navegador de proyectos................................................................................................15

3.5. Arduino DUE.......................................................................................................................18

3.5.1. ADC en Arduino DUE (analogReadResolution)..........................................................19

3.5.2. DigitalWrite..................................................................................................................19

4. DIAGRAMAS..............................................................................................................................20

4.1. Diagrama de Bloques................................................................................................................20

4.2. Diagrama digital...................................................................................................................20

4.3. Diagrama de bloques............................................................................................................20

5. LISTA DE COMPONENTES......................................................................................................20

6. MAPA DE VARIABLES.............................................................................................................21

6.1. ADC.vhd..............................................................................................................................21

6.2. KCPSM3..............................................................................................................................21

6.3. ArduinoDUE........................................................................................................................22

7. DESCRIPCION DE PRERREQUISITOS Y CONFIGURACION..............................................23

8. CONCLUSIONES........................................................................................................................24

9. RECOMENDACIONES..............................................................................................................24

1

Page 2: INFORME_3

10. APLICACIONES.....................................................................................................................24

11. CRONOGRAMA.....................................................................................................................25

12. BIBLIOGRAFÍA......................................................................................................................25

13. ANEXOS..................................................................................................................................26

13.1. Manual de usuario............................................................................................................26

13.2. Resultados del Programa Antiplagio.................................................................................26

13.3. Hojas técnicas...................................................................................................................26

Tabla de ilustraciones

Ilustración 1Conexión del núcleo KCPSM3 con su memoria de código.................................................5Ilustración 2Esquema de movimiento de datos en los puertos I/O..........................................................7Ilustración 3Montaje de códigos de idiomas.........................................................................................11Ilustración 4Ejecutar el ensamblador....................................................................................................12Ilustración 5Procedimiento para 32 bits:cd..........................................................................................12Ilustración 6Procedimiento para 32 bits: ADC.psm KCPSM3..............................................................12Ilustración 7Procedimiento para 32 bits:KCPSM3 completo...............................................................13Ilustración 8Directorio de trabajo.........................................................................................................13Ilustración 9Procedimiento para 64 bits...............................................................................................13Ilustración 10Software DOSbox.............................................................................................................14Ilustración 11Comando c, se utiliza para cambiar el directorio...........................................................14Ilustración 12Introducir el comando KCPSM3 ADC.psm.....................................................................15Ilustración 13Navegador de proyectos en este caso Xilinx ISE Design................................................15Ilustración 14Crear un proyecto en Xilinx ISE Design.........................................................................16Ilustración 15Configurara las características de la FPGA...................................................................16Ilustración 16Añadir los archivos de código fuente..............................................................................17Ilustración 17Añadir ADC.VHD y kcpsm3.vhd.....................................................................................17Ilustración 18Muestra los dos archivos seleccionados se añadan al proyecto.....................................18Ilustración 19Añadir los archivos al proyecto.......................................................................................18Ilustración 20Arduino DUE...................................................................................................................18Ilustración 21Diagrama de Bloques......................................................................................................20Ilustración 22Logo de Windows 7..........................................................................................................23Ilustración 23DOSBox...........................................................................................................................23Ilustración 24FPGA SPARTAN 3E-500.................................................................................................23Ilustración 25ArduinoDue......................................................................................................................24Ilustración 26Cronograma de Actividades............................................................................................25Ilustración 27Due-pinout.......................................................................................................................26

2

Page 3: INFORME_3

Tablas

Tabla 1 Repertorio de instrucciones......................................................................................................................8Tabla 2 Directivas de ensambladores para PicoBlaze............................................................................................8Tabla 3 Diferencias entre nemónicos del ensamblador para PicoBlaze..................................................................9Tabla 4.Lista de Componentes.............................................................................................................................20Tabla 5Entradas:ADC.vhd....................................................................................................................................20Tabla 65Salidas:ADC.vhd.....................................................................................................................................20Tabla 7Entradas: KCPSM3....................................................................................................................................20Tabla 8Salidas de kcpsm3....................................................................................................................................21Tabla 9Entradas de top_level...............................................................................................................................21Tabla 10Salidas de top_level................................................................................................................................21Tabla 11Signals de top_level................................................................................................................................21Tabla 12ArduinoDUE............................................................................................................................................21

1. PLANTEAMIENTO DEL PROBLEMA

3

Page 4: INFORME_3

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 generalDesarrollar 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.

3. MARCO TEORICO3.1.PICOBLAZE

4

Page 5: INFORME_3

3.1.1.Módulos HDL para PicoBlazeEstá 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.

3.2.1. Beneficios

5

PICOBLAZE

Es un microcontrolador

de 8 bits, compacto y de

distribución libre

Está diseñado para ser

empotrado en dispositivos

FPGA

Se provee como soft core, y puede sintetizarse con el resto de la lógica.

Está optimizado y ocupa solo 200

celdas lógicas. (5% de los recursos)

Page 6: INFORME_3

3.2.2.Características básicas

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:

Proceso de entrada de datos

6

Es u n re cu rso q u e se p re se n ta co m o có d igo V H D L y q u e p u e d e se r s in te ti zad o en a lgú n FP G A

El n ú cle o p u e d e e m igrarse a fu tu ras arq u ite ctu ras d e FP G A s

Se e lim in a e l r iesgo d e q u e la ap licació n q u ed e o b so leta , d eb id o a n u e vas ge n e racio n es d e FP G A s.

C o m o e l K C P SM 3 q u e d a in tegrad o e n e l FP G A d e u n a tarje ta d e d e sarro llo , red u ce la n ecesid ad d e e sp acio fí sico e xtern o .

Es p o sib le s in teti zar m ás d e u n n ú cleo d e n tro d e u n FP G A .

Datos CPU de 8-bits

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)

256 puertos de entrada y 256

puertos de salida

PORT_ID

provee la dirección del

puerto.

IN_PORT

Bus de entrada.

OUT_PORT

Bus de salida.

READ_STROBE

Activación de una

operación de lectura.

WRITE_STROBE

Activación de una

operación de escritura.

Page 7: INFORME_3

Proceso de salida de datos

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

3.2.4. Instrucciones

7

Se realiza con la instrucción INPUT

El PicoBlaze coloca en PORT_ID la dirección a

leer

Genera un pulso en READ_STROBE por un

ciclo de reloj

Lee el dato del bus IN_PORT y lo

transfiere a un registro especificado.

Se tiene a la instrucción

OUTPUT

El PicoBlaze coloca en

PORT_ID la dirección a

escribir

Coloca un dato en el bus

OUT_PORT proveniente de

un registro especificado

Genera un pulso en

WRITE_STROBE por un ciclo de

reloj.

Page 8: INFORME_3

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

1024 posiciones de memoria de instrucciones

(dirección de 10-bits)

Page 9: INFORME_3

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 rango 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 ensambladorLas 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 alfanumé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

Page 10: INFORME_3

Tabla 3 Diferencias entre nemónicos del ensamblador para PicoBlaze

3.3. DOSBox

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

10

DOSBox es un emulador que recrea un entorno

similar al sistema DOS

Su objetivo es poder ejecutar programas originalmente escritos

para el sistema operativo MS-DOS 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. 

Page 11: INFORME_3

• 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 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.

11

Page 12: INFORME_3

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.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

12

Page 13: INFORME_3

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.

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.

13

Page 14: INFORME_3

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 <letra_unidad> <directorio>

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

Page 15: INFORME_3

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

Page 16: INFORME_3

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

Page 17: INFORME_3

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

Page 18: INFORME_3

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

18

Figura 21Arduino DUE

Arduino Due

Es una placa electrónica

basada en la CPU

Atmel SAM3X8E ARM Cortex-M3

Es la primera placa Arduino basado en un microcontrola

dor núcleo ARM de 32

bits

Lleva 54 entradas /

salidas digitales

I/O 12 se pueden utilizar

como salidas PWM)

4 UARTs 

Un reloj de 84 MHz

Cuenta con una conexión capaz USB OTG, 2

DAC (de digital a analógico)

Ilustración 20Arduino DUE

Page 19: INFORME_3

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

Page 20: INFORME_3

4.1. Diagrama de Bloques

4.2. Diagrama digital

4.3. Diagrama de bloques

5. LISTA DE COMPONENTES

COMPONENTES UTILIDAD

Camtasia Studio 8.0

Prezi

Viper

ISE Desing Suite 14.1

Xilins PlanAhead 14.1

PBlazeIDE

DOSBox

FPGA SPARTAN 3E-500

Capturar videos directamente mientras se trabaja en pantalla.

Permite realizar presentaciones de trabajo para la exposición del mismo.

Software antiplagio.

Software para programar en VHDL

Software para grabar el programa en VHDL en la FPGA.

Programar el procesador PicoBlaze en ensamblador.

Es un emulador que recrea un entorno similar al sistema DOS con el objetivo de poder ejecutar programas

Field Programmable Gate Array Dispositivo es un dispositivosemiconductor que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada 

20

8 bits de salida (digital)

8 bits de entrada

Salida digital 8 bitsADC

Entrada analógica

Figura 22Diagrama de BloquesIlustración 21Diagrama de Bloques

Page 21: INFORME_3

Arduino DUE Es una placa electrónica que permite la conversión análoga digital

Tabla 4.Lista de Componentes

6. MAPA DE VARIABLES6.1. ADC.vhd

Entradas de ADC.vhdTipo Nombre Descripción Dimensión Asignación

STD_LOGIC_VECTOR address Dirección de la Instrucción 10 addressSTD_LOGIC clk reloj 1 clk

Tabla 5Entradas:ADC.vhd

Salidas de ADC.vhdTipo Nombre Descripción Dimensión Asignación

STD_LOGIC_VECTOR instruction instrucción 18 instructionTabla 65Salidas:ADC.vhd

6.2. KCPSM3

Entradas de kcpsm3Tipo Nombre Descripción Dimensión Asignación

STD_LOGIC_VECTOR

instruction

instrucción 18 instruction

STD_LOGIC_VECTOR

in_port puerto de entrada 8 in_port

STD_LOGIC interrupt generar un evento de alarma al afirmar 1 interruptesta entrada de alta durante al menos dos

CLK STD_LOGIC clk reloj 1 clkSTD_LOGIC reset reset 1 reset

Tabla 7Entradas: KCPSM3

Salidas de kcpsm3Tipo Nombre Descripción Dimensió

nAsignación

STD_LOGIC_VECTOR

address   10 address

STD_LOGIC_VECTOR

port_id Contiene la dirección del puerto durante 2 ciclos

8 port_id

STD_LOGIC write_strobe Valida los datos de salida del puerto 1 write_strobeSTD_LOGIC read_storbe Indica que los datos de entrada fueron

capturados1 read_storbe

STD_LOGIC_VECTOR

out_port Datos de salida aparece durante dos ciclos

8 out_port

STD_LOGIC interrupt_ack

reconoce que se ha producido un evento de interrupción

1 interrupt_ack

Tabla 8Salidas de kcpsm3

21

Page 22: INFORME_3

Entradas de top_level Tipo Nombre Descripción Dimensión

STD_LOGIC_VECTOR switches entrada de la señal del arduino 8STD_LOGIC clk reloj 1

Tabla 9Entradas de top_level

Salidas de top_levelTipo Nombre Descripción Dimensión

STD_LOGIC_VECTOR LEDs muestra la conversión A/D 8Tabla 10Salidas de top_level

Signals de top_levelTipo Nombre Dimensión

STD_LOGIC_VECTOR address 10STD_LOGIC_VECTOR instruction 18STD_LOGIC_VECTOR port_id 8STD_LOGIC_VECTOR out_port 8STD_LOGIC_VECTOR in_port 8

STD_LOGIC write_storbe 1STD_LOGIC read_storbe 1STD_LOGIC interrupt_ack 1STD_LOGIC reset 1STD_LOGIC interrupt 1

Tabla 11Signals de top_level

6.3. ArduinoDUE

Variables del Arduino Tipo Nombre Descripciónint sensor Almacena el valor de la

conversión A/Dbyte num Almacena el valor de la

conversión A/D en 1byteTabla 12ArduinoDUE

7. DESCRIPCION DE PRERREQUISITOS Y CONFIGURACION

Computadora con Windows 7 para instalar el programa ISE Desing Suite 14.1

22

Page 23: INFORME_3

Ilustración 22Logo de Windows 7

Programa ISE Desing Suite 14.1 para programar en VHDL Programa Xilins PlanAhead 14.1 para grabar el programa en la FPGA. Programa DOSBox

Ilustración 23DOSBox

FPGA SPARTAN 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

23

Figura 1FPGA SPARTAN 3E-500Ilustración 24FPGA SPARTAN 3E-500

Page 24: INFORME_3

ArduinoDue

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.

24

Ilustración 24ArduinoDue

Page 25: INFORME_3

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 puede ser usada para disparar una interrupción en el procesador principal.

11.CRONOGRAMA

Ilustración 25Cronograma de Actividades

12.BIBLIOGRAFÍA

13. ANEXOS 13.1. Manual de usuario

25

Page 26: INFORME_3

13.2. Resultados del Programa Antiplagio

13.3. Hojas técnicas

13.3.1. Due-pinout

Ilustración 26Due-pinout

26