16 votos

¿Por qué implementar el microcontrolador en FPGA?

Actualmente estoy "investigando" los FPGAs, qué pueden hacer, cómo lo hacen, etc.

En más de un lugar (por ejemplo aquí) he visto proyectos que implementen un simple microcontrolador con FPGA.

Así que mi pregunta:
Me gustaría saber, ¿cuál es el propósito de hacer implementaciones? ¿Por qué utilizar un microcontrolador implementado en la FPGA, en lugar de tener un micro en la junta? ¿Cuáles son los beneficios? Y tal vez también lo son los inconvenientes?

26voto

user4245 Puntos 324

Si el proyecto se va a utilizar un FPGA para el trabajo pesado, y tiene la capacidad de sobra, ¿por qué tendría que ir a la costa de un chip adicional cuando se puede implementar en la FPGA?

Para muchos de procedimiento de control de entornos puede ser considerablemente más fácil de implementar la configuración necesaria en un lenguaje como C que tratando de hacerlo en VHDL o Verilog. Añadiendo el microcontrolador en la FPGA, usted obtiene lo mejor de ambos mundos - el poder de la VHDL / Verilog, etc, para la lógica y la interconexión de los sistemas, y la sencillez de un lenguaje procedimental para el núcleo de los sistemas de control y gestión.

26voto

Dror Puntos 745

Beneficios:

  • asombrosamente rápida de la interfaz entre el microcontrolador y personalizados de la interfaz de e/S o de la lógica en el chip.
  • personalizable procesador y la depuración de las interfaces
  • también, a menudo más fácil de la lógica de control que escribir el código de control, por ejemplo, con VHDL

Desventajas:

  • Posiblemente más caro de la FPGA es necesario para que se adapten tanto el microcontrolador y la lógica personalizada, en comparación con sólo tener la costumbre de lógica en la FPGA
  • Posiblemente la más difícil de implementar, sobre todo con los recuerdos y si el núcleo es complejo, de un ready-made microcontrolador en un chip.

13voto

Paebbels Puntos 1646

En la extensión de las respuestas de Majenko y PkP:

Esta tendencia a la incrustación de una CPU en el diseño de FPGA ha dado lugar a varios sistemas heterogéneos como:

  • Xilinx' Zynq-7000 familia
  • Altera la Arria/Zyklon/Stratix SoC FPGAs
  • MicroSemi del SmartFusion FPGAs

También hay un procesador Intel Atom + Altera chip FPGA en el mercado: http://www.altera.com/devices/processor/intel/e6xx/proc-e6x5c.html

La mayoría de los libres micro controladores para FPGA sufren de una mala cadena de herramientas de apoyo. Incrustado CPUs ARM vienen con traza de depuración de apoyo, los compiladores gcc (herramienta de la cadena) y el soporte de linux. Aquí está una encuesta presentada en FPL 2014: http://dx.doi.org/10.1109/FPL.2014.6927482

Edit 1:
También existe la clase de PSoC (Programmable System on Chip) de los dispositivos de Ciprés. Estos dispositivos incluyen un micro controlador (M8C, 8051, ARM Cortex M0 o Cortex M3) y clásico SoC integrado de e/S o de controladores de dispositivos (I2C, SPI, Temporizador, PUEDE, DAC, ADC, Operacional, ...) y una parte programable. Esta parte no es tan grano fino programables clásicos de los FPGAs, pero puede ser utilizado para implementar la adición de controladores de e/S o construido aceleradores de hardware. PSoC permite el uso de componentes analógicos en su diseño.
http://www.cypress.com/psoc/?source=CY-ENG-HEADER

PSoC resumen: PSoC

9voto

Steven Leibson Puntos 91

Hay varias razones válidas para crear instancias de un microprocesador o microcontrolador en un FPGA. Aquí son tres:

  1. Usted quiere aprender sobre el funcionamiento de un procesador. Los FPGAs darle infinidad de formas para investigar lo que está sucediendo en el interior del procesador a medida que se ejecuta el código. Esto es sólo para el aprendizaje.

  2. Se implementa un sistema de gran tamaño que requiere el nivel de hardware de velocidades de un FPGA (más rápido que el software que se ejecuta en un microprocesador), pero su diseño requiere de una compleja máquina de estado, que es más fácil de implementar el uso de software que se ejecuta en un simple procesador como el Xilinx PicoBlaze que en un hardware de FSM. Tenga en cuenta que un PicoBlaze puede correr tan rápido como 240MHz en la última FPGA de tecnologías de proceso y de que el PicoBlaze procesador ejecuta una instrucción cada dos ciclos de reloj, por lo que obtener un rápido y constante de la máquina de estado que es fácil de programar en el software.

  3. La expansión en (2), se necesita una máquina de estado que puede manejar las interrupciones. Los procesadores son muy buenos para esto, porque ellos ya saben que la forma más segura de guardar y restaurar el estado antes y después de atender la interrupción.

Aquí está una advertencia: Si usted desea un procesador rápido con un estándar de conjunto de instrucciones y un gran desarrollo de los ecosistemas, a continuación, usted desea un rápido, duro-procesador de núcleo como los dos ARM Cortex-A9s en una Xilinx Zynq SoC. La FPGA de la tela en la Zynq SoC permite crear instancias de más núcleos de procesador en la lógica programable, pero el ARM Cortex-A9s se puede ejecutar estándar de los sistemas operativos tales como Linux y estándar IDEs como Android.

Entre el ARM Cortex-A9 y PicoBlaze, hay muchos suave procesadores puede implementar con lógica programable disponible de muchas fuentes. Algunas personas, como a rodar sus propios procesadores y eso es una gran actividad educativa. Sin embargo, los microprocesadores necesidad de herramientas de desarrollo de software y la creación/depuración de esas herramientas requiere de órdenes de magnitud más esfuerzo que el de crear el propio procesador. Usted siempre debe compensar el posible beneficio de una costumbre microprocesador contra el tiempo y el esfuerzo necesarios para crear y/o depuración del núcleo del procesador y de las herramientas.

La divulgación completa: yo trabajo para Xilinx, pero estoy bastante seguro de que no he estado de que los FPGAs son siempre la solución. Si una de 50 centavos microcontrolador puede hacer el trabajo, es mejor que use. Los FPGAs y Zynq SoCs son para proyectos que requieren levantar objetos pesados más allá de las habilidades de los microcontroladores.

2voto

Flory Puntos 1911

A veces puede usar una FPGA porque hay software que se ejecuta en un procesador físico obsoleto de largo y de carácter que se quiere resucitar. Mientras que no pin-compatible (aunque soportes DIP-estilo se han visto) esto le permite ser ciclo exacto. Una emulación del software puro en un microprocesador de materia es probable que sea así. Por ejemplo apple2fpga

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X