On Tue, 2006-05-16 at 03:10 -0700, kravnus wolf wrote: > Are any of you guys into FPGA development? What are > the main applications do you use it for? I will be > entering into FPGA once I have cleared my other > development, counting 2 major PIC projects. Done it both in the hobbyist space and professionally. FPGAs are great fun, but the learning curve can be steep depending on your level of familiarity with digital logic. First off you'll want to decide on what language you want to use. The main contenders are VHDL and Verilog. VHDL is the "oldie", and has the benefit of TONS of code out there. Verilog is newer, but it is the future. Most companies are switching to only use Verilog in new designs. Personally I prefer Verilog. I've learned both, but my "way of thinking" matched more closely with how Verilog structures are written. VHDL is a more "strict" language. Since Verilog is becoming the standard I would recommend you go with Verilog. Notice I don't even mention "schematic" design methods. Many of the packages out there allow you to design logic using schematic symbols, i.e. an adder, a latch, a shift register. While very easy to learn, it's also EXTREMELY limiting (if you don't have a schematic symbol for a 12bit multiplier, but you need one, you're out of luck), and debugging becomes nearly impossible since you won't have any understanding on how the gate level code works. As for software, that really depends on which vendor you go for since the software is usually tied to the brand of chip. There are several big players out there. Most of my experience has been with Xilinx, ranging from their CPLDs to their Virtex4 parts. In the case of Xilinx they offer something called the "ISE Webpack" which is basically there "full featured" tool limited to FPGAs below a certain size. For a hobbyist it's perfect. The integration is very good and it's a pretty easy tool to learn. I'm sure the other vendors offer similar packages. As for FPGAs themselves, generally they only come in "hobbyist unfriendly" packages, so a devel board is a good idea. Most FGPAs are programmable through JTAG, but usually you'll still have to get the programming tool for your brand of FPGA. I don't know how familiar you are with FPGAs, so I'll give a few pointers. First off the configuration in an FPGA is usually volatile (stored in SRAM), when the power goes, so does the config. That means you have to program the FPGA each time you power up. During development that is fine since you'll have your programmer connected. However, to get standalone you'll need to add "FPGA PROMs" to the board. They are basically special EEPROMs that will program the FPGA on powerup. There are some newer FPGAs that have internal FLASH to store the config, but they are not yet very common. The size of FPGA is important, but going too big is not a good idea if speed is important. The reason is the larger the FPGA, the larger the routing delays between pins. There are cases where the same design will run much slower in a larger part simply because the tool has to route a net across the whole device. Well, that's about all I can think of right now. Hope this helped. TTYL -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist