Xilinx XC2C64A CPLD - Que es? y para que sirve?

Bueno pedí un modulo bluetooth y cuando voy abrirlo ilusionado me encuentro con esto: El chip es Xilinx XC2C64A

Datasheet: http://www.xilinx.com/support/documentation/data_sheets/ds311.pdf

Tras una búsqueda exhaustiva encontré que el chip es un CPLD, sale algo en dangerous prototypes pero no me aclara nada, se que son algo como puertas lógicas programables, también he visto que la utilizan para piratear la XBOX360 cosa que no me interesa, pero a partir de hay ya no he encontrado nada más, ni como programarla (se conecta con 6PIN JTAG), ni lenguaje :~

Agradecería si alguien sabe algo acerca de estos chips, para que sirven o que pueden llegar hacer, como se programan, o algo más de información?

Un saludo y gracias de antemano!

Una CPLD es plastilina de hardware, puedes programar 'hardware' en lenguaje VHDL, Verilog o en esquemático usando puertas lógicas básicas (multiplexores, and, or, contadores, etc...) con el programa ISE WebPack (que es gratuito aunque limitado). http://www.xilinx.com/support/download/index.htm

Lo bueno que al ser hardware la salida/respuesta es casi instantánea y puedes realizar varias operaciones en paralelo y que al ser hardware definido por software, puedes arreglar bugs con una simple actualización.

Como bien dices se programan por JTAG, por lo que puedes usar programadores OpenOCD, BusBlaster, BusPirate y muchos más.

Yo tengo una pcb para ese mismo chip esperando a que algún día tenga que hacer algún pedido a Mouser...

Gracias chiva por la información, investigare un poco más haber si consigo averiguar todo su funcionamiento.