Joshua Shriver wrote: > Thanks for the info, this is just a personal hobby project and wanted > to keep it as low as possible. I like the FPGA idea. You mentioned > getting FPGA chips for $10, do you recommend a place to get them? Can > you program a FPGA chip kinda like you can a PIC chip? Then put the > FPGA chip on a breadboard? FPGAs are usually RAM-based, so you need to program them every time they are turned on. This can be done by an external microcontroller (such as a PIC!) coupled with some flash memory, by using JTAG (this is good for prototyping and debugging, as you avoid the slow flashing process and just load the design into RAM), or by using an external flash. The available options depend on the FPGA. Some newer models have the configuration Flash built in. FPGAs tend to come in BGA format for most recent devices. You can also find them in more prototyping-friendly surface mount formats like TQFP and the like, but you won't find them in breadboardable DIP format. Bear in mind that FPGAs tend to be more like CPUs to drive and usually require two or three regulated supply voltages. It is by no means impossible or even hard to design a circuit yourself using a bare FPGA, but your best bet for prototyping is to get a prototyping board. I recommend the Spartan-3E Starter Kit by Digilent. For $150 you get a 500k gate Spartan-3E, PlatformFlash to hold the design, 16MB of NOR flash for program ROM/whatever you want, 64MB of DDR RAM, an Ethernet transceiver, two serial ports, a PS/2 keyboard/mouse port, a built-in USB JTAG programmer, an assortment of LEDs, buttons, switches, and knobs, a HD44780-based alphanumeric LCD, ADCs and DACs, SPI flash, one-wire flash, a 3-bit VGA port, a CPLD to control the FPGA bootup and other things (if you want), an expansion port, and all sorts of other goodies I'm probably forgetting about. The clock is 50Mhz (or you can plug in your own canned oscillator instead of the built-in one), but the FPGA has PLL modules to turn the clock into whatever you want. It also has several 18x18 multipliers and really fast dual-ported RAM built in. The development tools are free. You may want to get the matching breadboard with it ($30-40ish I believe?) which breaks out the Hirose expansion port to .1" headers next to a breadboard. The Spartan-3E FPGA is more than large enough to hold a decent CPU, and has no trouble doing things such as an entire re-creation of the PacMan arcade system, including the ROM (all in the FPGA, not using the external Flash): http://youtube.com/watch?v=MNmp4prf-WQ You should be able to put a more modern RISC CPU in, though a full-fledged system with MMU and the likes is pushing it. It should be doable (you might even be able to run Linux on the thing), but it wouldn't leave much space for anything else and I'm not too sure about what clock speeds you can expect from it. Check out opencores.org for all sorts of pluggable modules you can use. If you want something like an FPGA but simpler and more PIC-like, I suggest a CPLD. They are the little brothers of the FPGA and are programmed much like you would program a PIC (except using a JTAG programmer, which can be as simple as a couple resistors connected to a parallel port), and they contain their own Flash. You program them in Verilog and VHDL as well, but they are more limited in the amount of logic you can throw in. Don't expect to put a CPU in there, but a bunch of state machines and logic should be perfectly fine. CPLDs come in smaller sizes and run on 5V or (more commonly nowadays) 3.3V, single supply. Packaging is usually TQFP or similar, but I believe there are a few DIP models out there, if you can find them. -- Hector Martin (hector@marcansoft.com) Public Key: http://www.marcansoft.com/marcan.asc -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist