Atualmente, estou trabalhando no Super OSD - um projeto de exibição na tela. http://code.google.com/p/super-osd possui todos os detalhes.
No momento, estou usando um dsPIC MCU para fazer o trabalho. Este é um DSP muito poderoso (40 MIPS a 80 MHz, operações de ciclo único de três registros e uma unidade MAC) e, mais importante, ele vem em um pacote DIP (porque estou usando uma placa de ensaio para prototipá-lo.) estou realmente obtendo todo o desempenho da execução do OSD - o chip tem cerca de 200ns ou 10 ciclos por pixel no estágio de saída, portanto o código precisa ser muito otimizado nesta parte (por esse motivo, ele sempre será escrito em montagem.)
Agora eu estava pensando em usar um FPGA para isso porque, devido à arquitetura paralela de um chip, é possível ter um programa lógico simples executando o OSD. Coisas como desenhar linhas e código algorítmico seriam tratadas por um MCU, mas a saída real seria feita com um FPGA. E algumas coisas simples, como definir pixels ou desenhar linhas horizontais e verticais que eu gostaria de integrar ao FPGA, para melhorar a velocidade.
Eu tenho algumas questões:
- Custará significativamente mais? Os FPGA mais baratos que encontrei foram ~ 5 libras cada e o dsPIC é 3 libras cada. Então, vai custar mais, mas por quanto?
- O dsPIC se encaixa em um pacote SO28. Eu não gostaria de ir além do SO28 ou TQFP44. A maioria dos FPGAs que vi vêm em pacotes BGA ou TQFP> 100, que não são uma opção no momento, devido ao tamanho do cisalhamento e à dificuldade de soldá-los.
- Quanta corrente é usada por um FPGA? Atualmente, a solução dsPIC consome cerca de 55mA +/- 10mA, o que está bom no momento. Um FPGA consumiria mais ou menos? É variável ou é praticamente estática, como o dsPIC?
- Preciso de pelo menos 12 KB de memória gráfica para armazenar os gráficos OSD. Os FPGAs têm esse tipo de memória disponível no chip ou está disponível apenas com chips externos?