Autor Tema: ¿Qué has hecho con un dispositivo programable?  (Leído 8396 veces)

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

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
¿Qué has hecho con un dispositivo programable?
« en: 30 de Mayo de 2010, 10:28:14 »
Hola

He utilizado VHDL para simular un núcleo de microcontrolador y en general considero que volver a diseñar un microprocesador, existiendo ya infinidad de micros a distintas velocidades y capacidades de procesamiento, es innecesario.

Es por eso que me gustaría conocer la opinión de los entusiastas de los dispositivos programables (VHDL, Pal, GAL, ASIC, FPGA).

- ¿Qué problema has resuelto con tu dispositivo?

- ¿Se podría haber resuelto con un microprocesador o microcontrolador ya existentes en el mercado?

- Con el mismo problema a resolver en mente y pensando hace 5 años, ¿se habría solucionado con los microcontroladores del mercado en ese entonces o habría sido obligatorio hacerlo con un dispositivo programable?

Gracias por sus opiniones.

Desconectado Tisco

  • PIC16
  • ***
  • Mensajes: 108
Re: ¿Qué has hecho con un dispositivo programable?
« Respuesta #1 en: 30 de Mayo de 2010, 11:24:05 »
Muy buenas,
No puedo decir que sea un entusiasta de dispositivos hardware (FPGAs) ni software (uCs) pero como trabajo con ambos te expondre mis experiencias.

1- Problemas resueltos son multiples, generalmente las FPGAs tienen mayor aplicacion en campos donde necesitamos dispositivos reconfigurables o necesitamos mayores prestaciones. Algunos dispositivos son procesadores de señales a alta velocidad, generadores de imagen, audio, etc.

2- Actualmente si se emplea una FPGA suele ser porque los uC (hasta los mejores) son muy limitados para esas aplicaciones (estas limitaciones son casi siempre de velocidad, tando de procesado como de calculo). Yo el unico motivo por el cual empleo FPGAs es porque no hay ningun uC que me funcione en esas circunstancias, pues el coste tanto de la FPGA como del desarrollo son mayores que el de un uC.

3- Pues hace unos 5 años aun estaba comenzando la carrera y no puedo opinar mucho, pero por lo que los profesores y compañeros mas veteranos dicen, las FPGAs vienen resultando rentables desde hace mas o menos unos 6-7 años y cada dia salen mucho mas rentables y el coste de su desarrollo tambien sale mas reducido gracias a la cantidad de IDEs, Cores, etc. que a dia de hoy se encuentran.

Espero haberte servido de ayuda en algo, si necesitas que comente algo mas estare encando de hacerlo siempre y cuando sepa hacerlo xD
Saludos!

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: ¿Qué has hecho con un dispositivo programable?
« Respuesta #2 en: 30 de Mayo de 2010, 13:43:52 »
Muy buen post !, me lo agendo. Es que algun dia quiero meterme con esto de las FPGA pero todavia no encontre con que.

Saludos !

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: ¿Qué has hecho con un dispositivo programable?
« Respuesta #3 en: 30 de Mayo de 2010, 17:02:39 »
Gracias por tu réplica Tisco. Seguramente las aplicaciones que he hecho con micros son muy triviales y por eso no me ha hecho falta un FPGA.

Pero por ejemplo, un dsPIC corriendo a 120MHz me parece que puede resolver casi cualquier cosa en cuanto a procesamiento digital de señales. ¿Hace falta crear un núcleo dentro de un FPGA para tareas DSP?

Desconectado Tisco

  • PIC16
  • ***
  • Mensajes: 108
Re: ¿Qué has hecho con un dispositivo programable?
« Respuesta #4 en: 31 de Mayo de 2010, 06:09:46 »
Gracias por tu réplica Tisco. Seguramente las aplicaciones que he hecho con micros son muy triviales y por eso no me ha hecho falta un FPGA.

Pero por ejemplo, un dsPIC corriendo a 120MHz me parece que puede resolver casi cualquier cosa en cuanto a procesamiento digital de señales. ¿Hace falta crear un núcleo dentro de un FPGA para tareas DSP?

buenas!

Pues aqui es donde entra el dilema al que a todos nos ha costado acostumbrarnos:
Un uC se basa en la programacion de software, que como ya sabras se ejecuta de manera secuencial, es decir, una instruccion despues de la otra.
Una FPGA se basa en hardware, eres tu quien diseña el dispositivo, por lo tanto las aplicaciones se ejecutan de manera concurrente, es decir, todas en un ciclo de reloj (suponiendo sistemas sincronos) por lo que la velocidad es muy superior aunque funcione tambien a 120Mhz. Es por esto que desarrollar este tipo de sistemas supone lo que se denomina un gran coste hardware, pues hacer todo de manera concurrente ocupa demasiados recursos de la FPGA.
Esto se ve claramente en un ejemplo, uno de los mas sencillos y que me llamo la atencion en su dia fue el controlar una LCD, pues algo que en un microcontrolador no nos ocupa casi memoria, en un dispositivo hardware no te imaginas lo que llega a ocupar en comparacion.
Es por esto que normalmente se le suele añadir a los dispositivos basados en FPGAs sistemas secuenciales; y la manera mas sencilla de hacerlo es empotrando un pequeño (o gran) uC que se encargue de controlar todo el sistema. De esta manera nos evitamos un gran gasto de recursos y no perdemos prestaciones gracias a que los procesos que asi lo requieren seguiran ejecutandose de manera concurrente.
Asi pues, respondiendo a tu pregunta y dejandome de cuentos, no es necesario crear un nucleo (uC, sistema de estados, etc.) dentro de las FPGAs para tareas de DSP, puedes perfectamente tener a tu dispositivo DSP funcionando totalmente independiente del resto de la FPGA. Ademas hoy en dia hay FPGAs que ya incluyen sobre todo sistemas MAC y memorias especiales para procesado de señal o algunas que ya traen uno o varios uCs internos.
« Última modificación: 31 de Mayo de 2010, 06:12:18 por Tisco »

Desconectado esteban_68

  • PIC12
  • **
  • Mensajes: 86
Re: ¿Qué has hecho con un dispositivo programable?
« Respuesta #5 en: 23 de Febrero de 2011, 07:51:25 »
Transcribo un mensaje de un ex forero que está vetado del foro de TodoPIC:

Excelente pregunta del moderador migsantiago.

Lo único que me ha dado resultados (y por ende ingresos económicos muy decentes) es la aplicación de drivers de LEDs con PWM con corrección de gamma para pantallas de LEDs. El código es muy sencillo y no requiere de mayor explicación. Simplemente basta un buen diseño ya sea en CPLDs o FPGAs (de los más comunes, no se ocupan grandes recursos). Basta con señalar la diferencia entre las tres frecuencias que entran en juego para diseñar una pantalla de LEDs de video:

- Frecuencia de frame
- Frecuencia de multiplexeo (o puede ser estática).
- Frecuencia del PWM

Cada una va en cascada de cada contador previo, y por supuesto quien hace el reset es la corrección de gamma. Es por eso que un PWM de 8 bits (por ejemplo) no corresponden como mucha gente piensa a 256 "tonos" de color.

Transcribo esta respuesta por si a alguien le es de utilidad.
Un saludo.
Dr. Esteban




Desconectado Chipcon

  • PIC12
  • **
  • Mensajes: 63
Re: ¿Qué has hecho con un dispositivo programable?
« Respuesta #6 en: 23 de Febrero de 2011, 12:11:14 »
Que tal uniéndome al tema yo también comparto experiencias con el Dr. Esteban una de las aplicaciones idóneas de los cpld's o fpgas es para el desarrollo sobre pantallas full color ó RGB
en mi caso y ya realizado en la practica imagínate que requieres generar 256 tonos por cada pixel esto multiplicado por una resolución por ejemplo; digamos 240 x 320 = 76800 pixeles.
Mientras que un dspic puede trabajar a 120MHZ no se si es la misma arquitectura que la de un pic la frecuencia real sera de 40MHZ, sin embargo un fpga trabaja realmente a 120MHZ ademas una de las
grandes ventajas en su arquitectura es la concurrencia es decir realizar múltiples procesos en paralelo cosa que un microcontrolador no puede realizar.

Entonces retomando al tema de la pantalla imagínate que requieres recibir datos con una taza de transferencia moderada 100mbps, ademas requerimos de una memoria que guarde un cuadro ó una imagen de esta pantalla con una velocidad de 20ns por escritura y lectura, y ademas cargar los datos a los drivers ya sean los del tipo con PWM integrado ó los de corriente constante que para lograr la tonalidad se utiliza el sistema de tramas; es decir para 256 tonos se transmiten 256 veces en un periodo de tiempo.

La utilización de un FPGA depende obviamente de la aplicación muchas tareas claro que se pueden realizar con microcontroladores de hecho utilizar un FPGA como CORE de un microcontrolador creo que es desperdiciar muchos recursos y capacidad del mismo.

Yo trabajo con micros de microchip y de atmel y son suficientes para la mayoría de proyectos, pero un FPGA es lo máximo dentro de sus aplicaciones.
Saludos Cordiales
 

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: ¿Qué has hecho con un dispositivo programable?
« Respuesta #7 en: 23 de Febrero de 2011, 12:16:24 »
En mi caso, solo como ejercicios de un curso, fue trabajar con VGA a 640x480 o 800x600, haciendo varias cosas. Con un micro nunca se hubiera podido. Espero este año adquerir más experiencia con ellos  :?


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado elflaco

  • PIC10
  • *
  • Mensajes: 1
Re: ¿Qué has hecho con un dispositivo programable?
« Respuesta #8 en: 09 de Mayo de 2013, 00:31:09 »
Hola! tengo un proyecto de dispositivos programables trabajo con vhdl y utilizo una fpga mi proyecto es hacer un tablero de basketball de dos marcadores, que tenga incrementos en 1, 2 y 3 que serian los puntos, que tenga capacidad descendente en 1 y cada que ocurra un cambio en el marcador lo envie a la pc pero no tengo ni idea de como hacerlo...
si alguien pudiera darme una idea de como realizarlo por favor gracias!!!

Desconectado CompSystems

  • PIC18
  • ****
  • Mensajes: 488
    • Home Page
Re: ¿Qué has hecho con un dispositivo programable?
« Respuesta #9 en: 09 de Mayo de 2013, 01:17:45 »
Se podría recrear un hardware viejo (super emulacion)


https://sites.google.com/site/olivier2smet2/hpseries80/fpga-hp85b



« Última modificación: 09 de Mayo de 2013, 01:20:12 por CompSystems »
Desde Colombia


 

anything