FPGA significa Field Programmable Gate Arrays. Por lo poco que sé de
ellos, son la evolución de los MPGA (Mask-Programmable Gate Array). Los
MPGA son matrices de puertas lógicas AND y OR, que a nivel de fábrica
puedes definir cómo han de ir conectadas entre ellas. Lo que consigues
es "programar" el chip, de forma que realice una función concreta. FPGA va
un paso más allá, permitiendo que sea el usuario el que defina la
programación del chip. De esta forma, se podría programar un circuito FPGA
para que se comportara exactamente de la misma forma que, por ejemplo, un
V9938, sin que nadie fuera capaz de notar la diferencia. Por poner un
ejemplo, aquí tienes un Z80 "programado" usando chips
FPGA: http://www.io.com/~guccione/HW_list.html#VZ80
Bueno aunque no siy un experto en ese tema si puedo hablar algo del mismo.
Hay dos tipos de FPGA, uno que se construye a partir de antifusibles, y
que por tanto es programable por el usuario, pero no es programable por el
sistema, y hay otro tipo (que yo creo que es el que nos interesaria a
nosotros) en el cual el estado de las conexiones (vamos el gate de todos
los transistores que funcionan como interruptores) esta controlado por una
especie de memoria, por lo que al arrancar el sistema es necesario cargar
en ella el estado de las conexiones. Alguno se habra podido dar cuenta de
que eso significa tener un chip el cual varie su funcion en tiempo de
ejecucion mediante un programa. Si no recuerdo mal CIEL tenia pensado
hacer algo asi, para compatibilizar su EDUCA con los MSX.
Pos nada, espero haber aclarado alguna duda a alguien.
Roberto.