Pues para empezar, tendrías que saber qué dimensión (en complejidad) tiene el proyecto que quieres acometer con FPGA.
Si quieres hacer un pequeño procesador, inventado por ti, con algunos periféricos, y quizás, una salida de video VGA, te puede bastar con una placa Basys2 de Digilent que usa una Spartan 3E-100
Para trabajar con cosas relacionadas con el procesado digital de señal, necesitas una FPGA con módulos DSP, por ejemplo cualquiera basada en Spartan 6, como la Nexys-3, también de Digilent.
Te pongo dos ejemplos de placas de Digilent por dos razones:
- Ambas son baratas (sobre todo la Basys2)
- Ambas llevan el programador incorporado en la placa y sólo necesitan para alimentación y programación un cable USB a un PC, con lo que te ahorras el tener que comprarte el programador JTAG aparte.
- Ambas usan FPGA's de Xilinx, que es el mayor fabricante (y referencia) de FPGA's, con lo que por tanto sus aparatos son los que tienen más apoyo y material de enseñanza asociados (tutoriales, utilidades, etc)
- Son aún más baratas si te acoges al descuento por estudiante o docente universitario. En este caso tienes que enviarles por e-mail (email de la universidad, no uno tuyo privado tipo gmail o hotmail) un escaneado de tu carné de estudiante. Probablemente tu tutor de proyecto también tenga que enviar algún escrito justificando la adquisición de la placa con fines docentes.
- El entorno de desarrollo tiene licencia gratuita para su versión básica y está disponible para Windows y Linux.
También puedes echarle un ojo a las placas entrenadoras de Altera, como las de Terasic, que también ofrecen descuento a estudiantes. Con ese descuento compré hace un par de años una DE2-115 con una pedazo de FPGA y un montón de dispositivos y periféricos acopladas a ella. También con programador incorporado.
-- Actualizado 30 Oct 2014, 14:55 --
Dustin escribió:Y tampoco tengo claro donde acaba la fpga y empieza el kit de desarrollo
EL kit de desarrollo es una placa que incluye una FPGA, conectada a una serie de dispositivos y periféricos, tales como pulsadores, leds, displays de 7 segmentos, memoria, conectores VGA y PS/2, etc. Se les suele denominar "placas entrenadoras" o simplemente "entrenadoras".
Para que te hagas una idea, con la Basys2 que hablaba antes he podido diseñar un par de microprocesadores: uno de ellos es de 8 bits y recuerda en algunas cosas al 6502. El otro es un microprocesador de 16 bits cuya descripción es la que ofrezco en este documento (es la práctica de curso que los alumnos tienen que hacer durante el curso en mi asignatura):
http://www.atc.us.es/asignaturas/infele ... 4-2015.pdfTambién con la Basys2 he descrito una sencilla controladora VGA con su juego de caracteres incorporado. Lo hice con idea de "enchufarlo" al segundo de los microprocesadores que escribí, pero al final se me fue el tiempo en otra cosa y aquel microprocesador se quedó únicamente con periféricos simples como pulsadores y leds.
También he usado la Basys2 para escribir un pequeño juego de ping-pong en el que pueden jugar dos personas, una persona contra la máquina, o la máquina contra sí misma. La gracia de este pong es que no usa ningún microprocesador, ni siquiera existe memoria de pantalla. Es todo lógica electrónica.
Si tu proyecto requiere el uso de alguno de los microcontroladores "oficiales" que se pueden implementar en Xilinx, tal como el PicoBlaze o el MicroBlaze (este último soporta Linux), entonces necesitas FPGA's un poco más potentes que la que trae la Basys2, y me imagino que también una licencia de pago del software de Xilinx. En las FPGAs de Altera también se pueden usar microcontroladores como IP cores: el que se soporta en los chips de Altera se llama NIOS.
La ventaja de usar estos microcontroladores "embebidos" en el chip es que el fabricante te da ya el toolchain para que escribas programas para ellos en C.
Sea una cosa u otra, lo primero es determinar el alcance de tu proyecto. Tu tutor te podrá decir qué FPGA es la que mejor te conviene (en número de LUTs o número de slices) según el proyecto que quieras hacer, y partiendo de eso, es cosa de buscar una entrenadora que contenga todo lo que necesitarás en el proyecto (p. ej, si el proyecto implica la adquisición de audio para procesarlo con DSP, pues tu entrenadora necesita disponer de un conversor A/D conectado a la FPGA)