Recomendaría encarecidamente ir con un tablero de CPLD primero (algo como este ), o un Igloo Nano basado en flash de Actel, o algo pequeño como eso. Los grandes FPGA pueden ser un poco abrumadores, y tienen tantos pines que lleva bastante tiempo engancharse bien. Además, tan pronto como desee integrar uno en su diseño, se dará cuenta de que vienen en paquetes muy grandes, con docenas de pines de alimentación. La mayoría de ellos requieren varios voltajes para operar, sin mencionar que la mayoría de los FPGA están basados en SRAM y no en flash, por lo que tan pronto como desconecta la alimentación, pierden su diseño. Por lo tanto, debe tener al menos un chip de memoria flash serie activa conectado, pero muchas personas usan CPLD o microcontroladores de sidecar para cargar diseños en el FPGA.
Todo es muy abrumador. CPLDs, por otro lado, son grandes! Por lo general, son operaciones de un solo suministro, y si desea cumplir con 5V, todavía puede comprar chips Altera MAX 7000 más antiguos. Además, tienen memoria flash incorporada, por lo que no necesitan otros componentes para arrancarlos. Y los CPLD funcionan más o menos igual que los FPGA, por lo que los programa al escribir VHDL / Verilog o mediante un editor de esquemas. El mismo jazz sobre el reloj (¡recuerda usar OSCILADORES de cristal, no cristales!), Y la misma manera de programar sobre JTAG. Los CPLD tienen muchos menos elementos lógicos que los FPGA, por lo que no puede lanzarles procesadores de software ni hacer nada demasiado loco. Pero si solo se está yendo, definitivamente son el camino a seguir, y cuestan un par de dólares cada uno y vienen en paquetes lo suficientemente grandes que pueden soldarse a mano, lo que los hace prácticos para integrarlos en pequeños proyectos puede tener en su escritorio.
Otra opción son los FPGA de gama baja basados en Flash creados por Actel. Recientemente estuve jugando con el kit de iniciación Igloo Nano, que cuesta alrededor de $ 100. Estos dispositivos son lo suficientemente grandes para adaptarse a un núcleo 8051 junto con cierta lógica digital personalizada, por lo que son una excelente opción cuando se mezclan estados de flujo de programas con lógica personalizada.