Field Programmable Gate Array - a sea of gates, where you have look up tables, or LUTs or macrocells that contain a set if 'gates' and support like an ALU, memory elements, etc. Timing is not predictable, since the routing can be all over the place unless you define parameters, etc. New devices have built in clock synthesis and management (back when I did my first FPGA, nothing like that was available). Complex Programmable Logic Device - came from the old PAL and PLDs, sort of a combination of the two in some ways. Most if not all are flash based, moved away from OTP, EEPROM and PEEL except for legacy and some rad hard devices. Timing is predictable since the routing channels are more fixed than a FPGA. CPLDs are great for replacing glue logic or doing simple functions, but they really don't do math other than building your own ALU internally. Small CPLDs are pretty cheap, and run very low power (at low frequencies...read the fine print on the coolrunner devices) for the smaller devices. As you increase in density and I/O count, the FPGA becomes a suitable subsitute since the price increases to the point of smallish FPGA's. FPGA's can do anything a CPLD can do, other than predictable timing, but the same is generally not true for the CPLD. But remember you might need external memory for the FPGA, depending on your choice of device. New devices from the major players are putting the programming flash internal to the FPGA for both speed of programming and security (no bitstream to capture). Some have had those internal for some time (Actel). Lattice is new in the game of FPGA's having taken what was once the ORCA line of devices, but has always been a major player in the CPLD arena. In fact, they may be the last one doing the good old 22V10. You can also run both hard and soft cores inside the larger FPGA's. Softcores are homegrown processors, that you build within the toolkits. Altera has the NEOS, Xilinx has the microblaze. Both (I know Xilinx for sure) are 32 bit processors, and you can add mostly free perphrials such as I2C, SPI, UARTs, memory controllers or even create your own. Hard cores include ARM, PowerPC and 8051 like devices. There are also PIC cores running around as well. --------------------------------- Everyone is raving about the all-new Yahoo! Mail beta. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist