Diseño para una FPGA requiere de un Lenguaje de Descripción de Hardware (HDL). Las hdl son absolutamente nada como C. Considerando que un programa en C es una serie secuencial de instrucciones y deben retorcer sí mismo para lograr la ejecución en paralelo, un nivel de HDL describe un concurrente de circuito y debe retorcer sí mismo para lograr una ejecución secuencial. Es un mundo muy diferente, y si se intenta construir un circuito en una FPGA mientras pensando como un desarrollador de software que va a doler.
Un MCU es por tiempo limitado. Con el fin de lograr más trabajo, usted necesita más ciclos de procesador. Los relojes tienen muy real, los límites a sus frecuencias, por lo que es fácil de golpear un computacional de la pared. Sin embargo, un FPGA es un espacio limitado. Con el fin de lograr más trabajo, que se limita a añadir más circuitos. Si su FPGA no es lo suficientemente grande, puedes comprar uno más grande. Es muy difícil construir un circuito que no puede caber en el más grande de la FPGA, e incluso si hay app de notas que se describe cómo conectar en cadena FPGAs juntos.
Los FPGAs se centran más en la ejecución en paralelo. A veces usted tiene que preocuparse acerca de cuánto tiempo su MCU del ISR lleva al servicio de la interrupción, y si vas a ser capaz de lograr su disco en tiempo real de los límites. Sin embargo, en la FPGA hay un montón de Máquinas de Estado Finito (FSM) que se ejecuta todo el tiempo. Son como "femto-controladores", como las nubes de la lógica de control. Todos ellos están ejecutando de forma simultánea, por lo que no hay que preocuparse por la falta de una interrupción. Usted podría tener una FSM a la interfaz para un ADC, otro FSM a la interfaz de un microcontrolador de la dirección/bus de datos, otro de la FSM para transmitir datos a un codec estéreo, sin embargo, otro FSM para amortiguar el flujo de datos desde el ADC para el códec...necesita utilizar un simulador para asegurarse de que todas las FSMs cantar en armonía. Si cualquier lógica de control es incluso un solo ciclo de reloj (y esos errores son fáciles de hacer), a continuación, usted recibirá una cacofonía de fracaso.
Los FPGAs son un diseño de la PCB del diseñador de los sueños húmedos. Son muy configurable. Usted puede tener diferentes interfaces de lógica (LVTTL, LVCMOS, LVDS, etc), de diferentes voltajes e incluso conducir fortalezas (por lo que no necesita de la serie de resistencias de terminación). Las patillas son intercambiables; ¿alguna vez has visto un MCU bus de direcciones donde los pines estaban esparcidos alrededor de la viruta? Su diseñador de PCB probablemente tiene que caer un montón de vias sólo para atar todas las señales correctamente. Con un FPGA, el diseñador de PCB puede, a continuación, ejecute las señales en el chip en casi cualquier orden que sea conveniente y, a continuación, el diseño se puede volver anotados para el FPGA conjunto de herramientas.
Los FPGAs también tienen un montón de bonitos, elegantes juguetes. Uno de mis favoritos es el Reloj Digital Manager en Xilinx fichas. Que se alimentan de una señal de reloj, y puede derivar cuatro más de ella, usando una amplia variedad de frecuencia de los multiplicadores y divisores, todos con prístina 50% de ciclo de trabajo y el 100% en la fase...y puede que incluso cuenta para el sesgo del reloj que surge de retardos de propagación externa al chip!
EDITAR (respuesta a la adición):
Usted puede colocar un "núcleo blando" en un FPGA. Estás literalmente cableado juntos un microcontrolador circuito, o más bien usted está probablemente caída de alguien circuito en su diseño, como Xilinx del PicoBlaze o MicroBlaze o Altera los Nios. Pero como la C->VHDL compiladores, estos núcleos tienden a ser un poco hinchado y lento en comparación con el uso de FSM y datapath, o un microcontrolador. Las herramientas de desarrollo también puede agregar una complejidad significativa en el proceso de diseño, que puede ser una cosa mala cuando los FPGAs son ya muy complejo fichas.
También hay algunos FPGAs que tienen "núcleos duros" incrustados en ellos, como Xilinx del Virtex4 series que tienen un real, dedicado IBM PowerPC con FPGA de la tela a su alrededor.
EDIT2 (respuesta para el comentario):
Creo que voy a ver ahora...usted está preguntando acerca de la conexión de un discreto MCU para un FPGA, es decir, independiente de dos chips. Hay buenas razones para ello; la FPGA que han duro núcleos y los que son lo suficientemente grandes como para apoyar decente suave núcleos generalmente son monstruos con muchos cientos de alfileres que acaba requiriendo un paquete BGA, que fácilmente se aumenta la dificultad de diseñar un PCB por un factor de 10.
C es mucho más fácil, aunque, por lo Mcu sin duda tienen su lugar de trabajo en tándem con un FPGA. Ya que es más fácil escribir C, usted puede escribir el "cerebro" o el algoritmo central en el MCU, mientras que la FPGA puede implementar sub-algoritmos que pueden necesitar acelerado. Tratar de poner las cosas que cambiar en el código de C, porque es más fácil cambiar y salir de la FPGA, para ser más dedicado el tipo de cosas que no cambian con frecuencia.
MCU herramientas de diseño son también más fáciles de utilizar. Tarda varios minutos para el diseño de herramientas para construir la FPGA bits de archivo, incluso para algo diseños simples, pero complejo MCU programas suelen tardar unos segundos. Hay mucho, mucho menos a ir mal con el MCU, por lo que también es más fácil de depurar...no puedo subestimar lo complejo de los FPGAs pueden ser. Usted realmente necesita para obtener la hoja de datos para el que usted tiene, y usted debe tratar de leer cada página. Lo sé, es un par de cientos de páginas...a hacer de todos modos.
La mejor manera de conectar con ellos es el uso de un MCU con una dirección externa y el bus de datos. A continuación, puede simplemente mapa de memoria los circuitos FPGA en el MCU, y añadir su propio "registros" que cada uno tiene su propia dirección. Ahora la FPGA puede agregar periféricos, como una de 32-bit de temporizador que puede pestillo de todos los 4 bytes a la vez cuando el primer byte es leer para evitar desbordamientos de entre 8-bit lee. También se puede utilizar como pegamento lógica para el mapa de memoria más periféricos de otros chips, como un independiente ADC.
Por último, algunos Mcu están diseñados para su uso con un "maestro externo" como un FPGA. Cypress hace un par de USB Mcu que tienen un 8051 en el interior, pero la intención es que el USB de datos para ser producidos/consumidos por ejemplo en un FPGA.