Autor Tema: la frontera entre Microcontrolador y FPGA  (Leído 4816 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
la frontera entre Microcontrolador y FPGA
« en: 25 de Agosto de 2018, 10:44:10 »
Buenas a todos. Llevo algo más de 10 días leyendo sobre FPGA y CPLD..y la verdad me tiene muy motivado el tema, y más viendo como van las herramientas libres como Apio, ÏceStudio ..y vamos que es muy tentador querer meterse en este mundo, es que es lo que le hace falta a los microcontroladores, trabajar en paralelo sin tanta parafernalia en el código...
Como llevo poco viendo esto me surgen varias preguntas :
Cuál es la frontera entre los FPGA y los Microcontroladores? ..se que para cosas muy especificas usarás uno o el otro, pero de ahí me surde otra pregunta :
Existen FPGA de baja gama. digamos como los PIC16F o PIC12F..gama media como los 18F o los Atmega16?..entiendo que los FPGA no tienen tantos periféricos como los microcontroladores por eso hay que agregar al circuito más chips extras, pero ahora con eso de arduino uno ya consigue todo eso armado y no habría problema...por eso son muy tentadores para mi los FPGA :mrgreen:  ..y Podría decirse que los CPLD son el intermedio entre ellos?

Disculpen tanto texto y gracias por sus comentarios.

Saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7741
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #1 en: 26 de Agosto de 2018, 09:44:44 »
Citar
trabajar en paralelo sin tanta parafernalia en el código...

Pero no es lo mismo, ademas la finalidad es distinta. Y sobre el codigo lo que vas a pelear tambien escribiendo el hardware y luego enfrentandote a posibles condiciones de carrera, es lo mismo que haces con el microcontrolador.

Citar
Cuál es la frontera entre los FPGA y los Microcontroladores? ..se que para cosas muy especificas usarás uno o el otro

No se a que te referis con frontera. Pero el uso va a depender del destino.
Por ejemplo un CPLD lo usaria para reemplazar varios integrados con compuertas lógicas, o en caso de necesitar muchas compuertas logicas me iria por un CPLD ( tal ves con una GAL/PAL te sobre ).
Una FPGA lo buscaria usar cuando necesite algo rapido y repetitivo, y obviamente que sea mucho mas rapido de lo que me permita un microcontrolador. Que como decis, me permite hacer una cosa mientras se esta haciendo otra. Muestreo mientras se filtra y envia, etc.
Y bueno el microcontrolador para todo lo demas. Y microcropocesador en casos un poco mas extremos.

Citar
Existen FPGA de baja gama. digamos como los PIC16F o PIC12F..gama media como los 18F o los Atmega16?

Si existen, pero aun asi los gama bajas son relativamente "caros" respecto a los microcontroladores, ya que no solamente es el chip FPGA, sino que necesitas agregarle un clock en la mayoria de los casos ( creo que algunos ya vienen con oscilador interno), reguladores de distinta tension algunos ejemplos: 1.2V para el core, 1.5V a 3.3V para los I/O, 2.5V para la memoria, para el PLL digital y analogico, ADC si tiene, etc.
Sobre "perifericos" algunos ya poseen un hardware dedicado especialmente (SPI/I2C/LIN/etc), e imagino que son aquellos de gama baja, asi poder aprovechar mejor el espacio programable, pero en los FPGA grandes si existen tambien algunas cosas de esas, pero el hardware lo terminas haciendo vos, o si proveen el IP con el bloque ya realizado te lo ahorras de realizarlo pero ocupa espacio. Ademas que ya si te vas a un "poquito" grande son todos BGA y aca es donde morimos los hobbystas.

Por ejemplo el Spartan II de Xilinx es un 100-VQFP pero sale casi 10 dolares en digikey.
Otro pequeño seria el ICE40HX1K de Lattice, tambien 100-LQFP a 4.5 dolares

Y si no para "probar" tenes algunas placas que ya vienen con todo (excepto el programador y la fuente) que estan entre los 15 a 100 dolares (y hay de mucho mas tambien) la placa dependiendo de lo que posean.

manwewe tiene experiencia en las FPGA y seguramente el te pueda dar una mejor descripcion de tus dudas, solo espero que lo vea :P

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #2 en: 27 de Agosto de 2018, 18:14:19 »
muchas gracias Killerjc..creo que me has aclarado un poco más...seguiré investigando, eso si ,si el tiempo me da ..que ahora en el trabajo estoy bastante atareado

Saludos

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 737
    • https://electronicaaficion.wordpress.com/
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #3 en: 30 de Septiembre de 2019, 13:53:21 »
Hola sé que es viejo el tema pero tenía estas mismas dudas y alguna que otra más.
No tengo ni idea de como funcionan los FPGA, yo estoy acostumbrado a los microcontroladores y dentro tienen  muchos periféricos para poder conectar ese micro con otras cosas, como memorias por medio de protocolos I2C y SPI utilizando el módulo interno del micro MSSP, así como un gran repertorio de timers, USART, bueno en fin muchos módulos asociados y por supuesto un gran repertorio de librerías para poder manejar los.
Comentado esto, no sé si los FPGA disponen de módulos de este tipo para poder conectar el dispositivo a memorias, bus de datos o que, o si ya que es lógica programable tendremos nosotros que fabricar esos módulos internos utilizando las puertas lógicas del FPGA o si hay librerías ya diseñadas para que se creen este tipo de módulos internamente o si tendremos que utilizar dispositivos externos para realizar esto o si ya vienen integrado estos módulos como los actuales micros y tan solo los usamos con una librería específica.

Un ejemplo, imaginemos que quiero realizar un minero para minar criptomonedas y me hace falta una gran velocidad para explorar el código y así obtener las monedas, y quiero conectar el dispositivo que estoy ideando al puerto PCI express de mi PC.
¿Tendría que fabricar internamente a través de VHDL o Verilog u otro lenguaje el módulo de comunicación con la PCI express, el módulo para comunicar con la memoria DDR4 a parte del código de desencriptación o ya hay librerías específicas para crear esto módulos?, estoy más perdido que un pulpo en un garaje.
Gracias por la ayuda
Más códigos y desarrollos en https://electronicaaficion.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 902
    • Mexchip
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #4 en: 30 de Septiembre de 2019, 18:15:05 »
Comentado esto, no sé si los FPGA disponen de módulos de este tipo para poder conectar el dispositivo a memorias, bus de datos o que, o si ya que es lógica programable tendremos nosotros que fabricar esos módulos internos utilizando las puertas lógicas del FPGA o si hay librerías ya diseñadas para que se creen este tipo de módulos internamente o si tendremos que utilizar dispositivos externos para realizar esto o si ya vienen integrado estos módulos como los actuales micros y tan solo los usamos con una librería específica.
Todas las que dijiste :). Quien diseña decide qué utilizar, tomando en cuenta su experiencia, el costo o tiempo de desarrollo.

  • Es lógica programable, puedes "fabricar" por completo todos los módulos que necesitas utilizando los recursos del FPGA.
  • Hay módulos disponibles para no tener que hacer todo de 0, estos te los puede ofrecer el mismo fabricante (que gralmente. puedes utilizar de forma gratuita mientras uses los FPGA que ellos fabrican) o algún tercero (de pago, propietarios o de código abierto como en https://opencores.org/)
  • También hay cosas para las que puedes (o debes) utilizar algún componente externo (como convertidores ADC)
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 737
    • https://electronicaaficion.wordpress.com/
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #5 en: 30 de Septiembre de 2019, 18:40:17 »
Hola, gracias por tu respuesta, pues estoy viendo que esto será el futuro de la programación ya que te permite ser muy creativo y diseñar casi tus propios micros, pero lo veo muy muy difícil casi diseñar de 0 un módulo, me imagino que también tiene sistemas para proteger lo que inventes y que no te puedan sacar tu código leyendo el FPGA, igual que los fuses de los micros ¿no?.

Me esta atrayendo mucho esta tecnología,  ¿que pcb de desarrollo comprar?, veo todavía muy caro todo.. he estado viendo una PCB con un spartan-7 lo que no sé si será una buena compra para practicar. es esta:
Xlinx Spartan-7

O si me recomiendan otra que vean que es mejor lo agradezco.
Más códigos y desarrollos en https://electronicaaficion.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7741
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #6 en: 30 de Septiembre de 2019, 19:07:06 »
Son dos cosas distinta uno y otro. No es el futuro, por eso no se reemplazan directamente.

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 737
    • https://electronicaaficion.wordpress.com/
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #7 en: 30 de Septiembre de 2019, 19:28:02 »
Son dos cosas distinta uno y otro. No es el futuro, por eso no se reemplazan directamente.

Ahora no, pero dale tiempo, a saber que futuro nos espera ;)
Más códigos y desarrollos en https://electronicaaficion.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #8 en: 30 de Septiembre de 2019, 22:05:49 »
 
A veces, hay cosas que todavía se pueden hacer con un microcontrolador sin necesidad de pasarse a un FPGA. Para eso hay que saber usar bien el DMA, se hacen maravillas, y más ahora con los ARM Cortex M7 a 500Mhz.

No he utilizado todavía los FPGA, por ahora me arreglo muy bien con micros ARM de última generación, los mencionados Cortex M7 a 500Mhz, y echando mano del DMA.

Para los FPGA, hace tiempo me recomendaron programarlos en Verilog porque se parece más al C, pero da mucha pereza empezar con algo nuevo que además parece bastante complejo. Si puedes hacerlo con un microcontrolador potente en C, mejor

Desconectado uZYNQ

  • PIC12
  • **
  • Mensajes: 66
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #9 en: 30 de Septiembre de 2019, 23:58:06 »
yo también estoy en esa carrera tratando de acercarme a las FPGA. Pero es que cada dia son mas complejas! antes solo tenias las GAL y PLD que programabas con ABEL o un simple esquematico, Luego las CPLD y FPGA que tenian solamente Lookup tables (LUT) y despues empezaron a meterle mas bloques dedicados (Multiplicadores, DSP, Memoria RAM). Se tenia que aprender VHDL y/o Verilog para  programar tu hardware. Pero hoy en dia tienes todo un PSoC (Programable System on Chip), en el que tienes un Procesador o varios dentro del integrado junto con la lógica programable con todos sus bloques dedicados. Como por ejemplo el Zynq de Xilinx que tiene dos cortex-A9 o los zynq ultrascale MPSoC que tienen 2 cortex-A53 y 2 cortex-R5 mas la lógica.  (Intel/altera tambièn los tiene similares)
 Por supuesto, configurar esto requiere incluso grupos de trabajo especializados tanto en Software como en Hardware. Por lo que si uno a nivel de hobista quiere meterse con estos dispositivos tiene hacer todo y por lo tanto saber tanto de programaciòn del procesador como de la lógica. Por esta complejidad los fabricantes estan ofreciendo software de sintesis de alto nivel (HLS) que ayudan a generar el hardware a partir de lenguajes de alto nivel como el C sin necesidad de utilizar el VHDL/verilog. Con esto se puede crear coprocesadores en la lógica que aceleran el software que corre en el procesador. Esto aplicable sobretodo en machine learning y todas estas aplicaciones de inteligencia artificial de reconocimiento de imagenes, incluso a nivel de centro de datos para acelerar los procesos de busquedas. En estos grandes centros de datos donde si vale la pena la inversión de estos dispositivos tan complejos, sobretodo por el mejor aprovechamiento del silicio con el uso de la lógica programable y por ende un menor consumo energetico. Mas eficiente que los procesadores y gpu.
 Les dejo un link interesante que lo resume muy bien. http://sedici.unlp.edu.ar/bitstream/handle/10915/64231/Documento_completo.pdf-PDFA.pdf?sequence=1&isAllowed=y

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 737
    • https://electronicaaficion.wordpress.com/
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #10 en: 01 de Octubre de 2019, 04:17:26 »
Hola, pues ya veo que no es sencillo para nada y para colmo se le suma el precio que no es barato sobre todo si te vas a los ultraScale que su precio es prohibitivo, en fin creo que me voy a quedar donde estoy y seguir con los ARM hasta que bajen los precios, me imagino que esos precios tan altos será por que hay poca competencia.

EDITADO:.. Al parecer la comunidad está desarrollando algo parecido al proyecto arduino a ver como avanza esto y si se abaratan los precios de los FPGA.
FPGA Libre
« Última modificación: 01 de Octubre de 2019, 04:50:04 por Thulsa Doom »
Más códigos y desarrollos en https://electronicaaficion.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 737
    • https://electronicaaficion.wordpress.com/
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #11 en: 04 de Octubre de 2019, 07:58:09 »
Hola de nuevo, ¿y que opinión tienen del proyecto FPGA Libre? al parecer este proyecto es diferente al enlace que he puesto en el mensaje anterior.

FPGAwars
Más códigos y desarrollos en https://electronicaaficion.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado uZYNQ

  • PIC12
  • **
  • Mensajes: 66
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #12 en: 04 de Octubre de 2019, 11:10:13 »
El projecto de las FPGA Libres surgio porque Clifford Wolf desenmascaró la Lattice iCE40, Por lo que únicamente hay herramientas libres de programación para un modelo de FPGA hasta ahora. Para aprender me parece excelente porque no estas atado a las herramientas del fabricante sino que todo el proceso esta libre para esa FPGA, y con ello han surgido varios software para esa FPGA. Pero estas limitado a esa FPGA que cada dia que pasa se queda atras comparada con las nuevas que estan hoy en dia del mismo fabricante o de los otros.

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 737
    • https://electronicaaficion.wordpress.com/
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #13 en: 04 de Octubre de 2019, 11:27:58 »
Yo lo decía para aprender ya que los demás fabricantes no te dejan el software totalmente libre o eso creo ya que Xlinx lo tienes libre hasta un límite, y el precio de los FPGA es caro, si te vas a un spartan-7, la pcb entrenadora te sale una pasta. O yo lo entoy leyendo mal y estoy equivocado.
Más códigos y desarrollos en https://electronicaaficion.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado uZYNQ

  • PIC12
  • **
  • Mensajes: 66
Re:la frontera entre Microcontrolador y FPGA
« Respuesta #14 en: 04 de Octubre de 2019, 12:08:57 »
Todo depende de lo que se quiere aprender! si es diseñar sistemas digitales básicos cualquiera te sirve, incluso hay entornos de esos libres que facilitan el diseño por medio de esquematicos, la mayoria lo hace con Verilog que es el toolchain disponible para las FPGA libres. También se pueden diseñar sistemas con softcore sencillos tipos clones de AVR, etc. Pero si requieres aprender sistemas mas complejos con SoC con memoria DDR y linux corriendo en el softcore o hardcore ya obviamente se requiere una FPGA con mas capacidad. De Xilinx estan las Spartan-7, Artix-7, o Zynq. Por ejemplo las tarjetas de digilent son muy empleadas por sus soporte y tienes la Arty-S7 para la spartan-7 (99$) https://store.digilentinc.com/arty-s7-spartan-7-fpga-board-for-hobbyists-and-makers/, la Arty-A7 para la Artix-7 (129$) https://store.digilentinc.com/arty-a7-artix-7-fpga-development-board-for-makers-and-hobbyists/ y tambièn tienen varias para la zynq, como la  Arty-Z7 con dos hardcore cortex-A9 ($169) https://store.digilentinc.com/arty-z7-apsoc-zynq-7000-development-board-for-makers-and-hobbyists/, la Cora-Z7, una zynq con un solo cortex-A9 ($99)https://store.digilentinc.com/cora-z7-zynq-7000-single-core-and-dual-core-options-for-arm-fpga-soc-development/  y tienes una mas economica la MiniZED de avnet similar a la Cora-Z7 con una cortex-A9 (89$) http://www.zedboard.org/product/minized


 

anything