viernes, 16 de septiembre de 2011

Tutorial emulación/simulación de Arduino en FPGA - Índice y Conclusiones


Este tutorial se ha creado como complemento a la charla titulada Codiseño y cosimulación basado en FPGAs para plataforma Arduino del Open Source Hardware Convention 2011.

Tiene seis partes:



Conclusiones*:
  1. Emular el microcontrolador de Arduino o cualquier otro en una FPGA permite personalizar ancho de buses, número y tipo de salidas y entradas, frecuencias de reloj, tamaño de memoria o puertos de comunicación e inhabilitar los recursos que no sean utilizados para optimizar y adaptar el hardware al proyecto (y no viceversa).
  2. Simular el proyecto completo, hardware y software, a nivel de señal desde un PC sin necesidad de programación en una FPGA es una ventaja tremenda hasta para proyectos básicos de Arduino.
  3. Existen otras ventajas de utilizar hardware reconfigurable como son la capacidad de procesado o la protección de obsolescencia pero no son tan importantes en el ámbito DIY/Hardware Libre.
 
Trabajos futuros:
  1. Crear una herramienta open-source que permita configurar un sistema completo, añadir módulos con funcionalidades, comunicaciones, co-procesamiento, etc. El prototipo se llama Oruga y está escrito en Javascript: http://oruga.tk
  2. Crear módulos en HDL (VHDL, Verilog...) administrados desde Arduino, independientes de ellas o conectados a otros módulos como, por ejemplo:
    1. Salida PWM con frecuencia configurable.
    2. Entrada RC-PPM de varios canales desde una misma señal.
    3. Salida VGA.
    4. Memoria externa.
    5. Generadores de ondas.
    6. Entrada analógica.
    7. Comunicación genérica de protocolos serie como I2C o SPI.
    8. Generación y mezcla de sonido y otras funciones DSP.
    9. Módulos de coprocesamiento.
*Las conclusiones se ponen junto al índice porque son un buen resumen.