I've narrowed down my introductory search to three FPGA/CPLD references; is any one of these especially superior to the others? (Rodney Zaks tends to be the go-to author for 6502 material; I'm just wondering if there's a similar name in the FPGA/CPLD field?)
Digital Systems Design with FPGAs and CPLDs (Ian Grout)
http://www.amazon.com/Digital-Systems-D ... 392&sr=1-3
Designing with FPGAs and CPLDs (Bob Zeidman)
http://www.amazon.com/Designing-FPGAs-C ... 214&sr=1-4
Digital Fundamentals: Experiments and Concepts with CPLDs (Leo Chartrand)
http://www.amazon.com/Digital-Fundament ... 214&sr=1-5
It really depends on what your trying to do there are pros and cons to each.
CPLD:
-usually cheaper
-less capable: meaning it would be good if you're just trying to make up a decent amount of gates or flipflops. Good for replacing a handfull of discrete logic chips. The limit of these is somewhere around the equivalent of a MMC3, if you choose a big enough CPLD. You couldn't do soemthing like a MMC5 or NES on a chip with a CPLD.
-EEPROM on board configuration (see below)
-programmer is cheap
FPGA:
-generally more expensive
-very capable: You could easily get an FPGA to perform as an MMC5 or Nes on a chip.
-SRAM on board configuration.
-programmer is expensive and propreitary assuming you don't buy a chinese knock off.
Configuration of the CLPD/FPGA is one of the biggest differences besides capability. See your the configuration you brew up in the IDE needs to be stored on the chip somehow. CPLD's use EEPROM so it stays configured when the power is off. You could program it once and it'd perform for life, or course you can reprogram the EEPROM but if you do this ALOT one might be concerned about cell failure. You can fairly easily program the chip with a low cost CPLD programmer.
FPGAs are a bit more trickey because they use SRAM. So you have to configure the chip everytime you power up. You don't have the lifespan limits on reprograms because it's SRAM not EEPROM though. When your developing if you buy the proprietary programmer it ain't cheap couple hundred bucks, you could resort to the chinese version though. When you go to actually implement the FPGA you have to have something configure the SRAM everysingle time... Manufactures offer specific chips to do this, otherwise you'll have to do it with a microcontroller or something like the NES in the case of the Powerpak if I'm not mistaken.
If you're new to the whole programmable logic idea I recommend starting by learning on some basic circuits designed on a CPLD. If you went with an FPGA to start off you would DEFINETLY want to invest in a development board ~$200 it will help you get the process started and take care of the configuration issues. The main problem though is there aren't any 5V dev boards out there anymore so you'd have to level shift everything for the NES.
Don't forget about the 5V capability when shopping for an FPGA/CPLD you'd rather not level shift to and from 3.3V if you didn't have to.