Can someone recommend me a FPGA (CPLD?) to play with for my needs? - Page 1
Forum section: electronics / general

author: Corporate666
author_rank: Unknown
timestamp: January 10, 2013, 11:08:36 am
content: So I started working with Atmel parts about 4-5 years ago, and in the last couple of years I have upgraded to Cypress PSoC, which I really like. Most of the stuff I do is in LED lighting/color mixing, measuring signals and driving displays (stepper motor gauge, LCD, LED, etc). But I am getting into some higher end stuff like robotics and motion control.I had one project where I used a PSoC3 to generate 27 independently controllable PWM signals to drive a bank of LED's to do various things, and I've used the PSoC for some measurement projects where I measure several signals and communicate with an LCD with I2C or with another device maybe with a UART, etc.I know what FPGA's (and CPLD's) are from a technical standpoint, but it wasn't until someone suggested my 27-PWM project could have also been done with an CPLD that I thought I should play around with these types of chips and get to learn them a bit.I've never used any before... can someone recommend a good starting point? I am pretty well familiar with the PSoC functionality from Cypress, so I understand about "creating hardware in the chip" and such. Since my uses are wide open, it seems maybe FPGA's are more powerful and configurable and would offer better variety of uses. I've gotten marketing brochures and stuff from Xilinx and Altera and stuff, but I really don't know anything about the market and which companies and families are the most popular and/or easiest to use. I'm also hoping to keep my investment under a few hundred $$ to begin with including software and whatever programmers/dev boards would be required.Any suggestions?EDIT:I should add that I mostly work with 2 layer boards, so I don't want to deal with BGA's. Also, the budget for a processor/main chip for most of our products is under $10 in 1000 unit quantities... so I am looking for the best bang for the buck, and ease of use, in that range.

author: mrflibble
author_rank: Super Contributor
timestamp: January 10, 2013, 11:41:28 am
content: Coolrunner-II cpld's spring to mind for this.For example this board:http://digilentinc.com/Products/Detail.cfm?NavPath=2,400,1000&Prod=CR2-STARTERIt depends a bit on how many FFs you're going to need for your 27 channels of PWM. If you require lots of FFs for whatever PWM scheme you are intending then an fpga may be a better fit.

author: Kremmen
author_rank: Super Contributor
timestamp: January 10, 2013, 12:04:13 pm
content: +1 for CoolRunners.CPLDs have the advantage of persistent configuration storage so you don't need an EPROM or MCU to load the program into RAM like you do with FPGAs. Having said that, i am at the moment messing around with a Spartan 6 FPGA which seems to be a nice chip as well. Not Xilinx top of the line by any means but it has plenty more oomph than any CPLD, is reasonably priced and comes in QFP packs if you don't want BGAs. I am preparing to try home cooked 2 sided PCBs with the 256 ball BGA. No guarantee of success but there are those who say it is no big deal. We'll see.

author: tinhead
author_rank: Super Contributor
timestamp: January 10, 2013, 01:14:44 pm
content: MachXO or MAchXO2 from latticesemi.com are cheap (under 5usd/1k pcs), they are in principle smal FPGAs(this is why they listed as CPLD and FPGA).If you wish to combine µC and FPGA in one part, maybe Microsemi FPGAs are good option, e.g. M1A3P25 with Cortex M1 core.

author: nctnico
author_rank: Super Contributor
timestamp: January 12, 2013, 11:55:50 am
content: I've used the XC9500 CPLD series from Xilinx in a few projects. The single supply voltage (3.3V), 5V input tolerance and PLCC & QFP packages make it easy to use. A Xilinx USB programmer clone is dirt cheap from Ebay.

author: Marco
author_rank: Super Contributor
timestamp: January 13, 2013, 06:26:28 pm
content: Anyone have some experience with the ICE40?It seems unbeatable if you need a decent number of I/Os in flatpack. For instance for 100 I/Os you pay 5.86$ in singles ... can't even find a CPLD to compete with that.

author: AndyC_772
author_rank: Super Contributor
timestamp: January 13, 2013, 07:30:59 pm
content: If you want 27 PWM channels, or projects of similar complexity, you'll run out of logic in a CPLD very quickly. Besides, they're expensive for what you get, and IMHO you're much better off using an FPGA together with a separate configuration EEPROM. Hook them together and they behave just the same as a CPLD - not least because that's exactly what many CPLDs contain.I have one of these:http://www.ebay.co.uk/itm/Altera-CycloneII-EP2C5T144-FPGA-Board-USB-Blaster-JTAG-/190501213198?pt=LH_DefaultDomain_0&hash=item2c5ac1d40eIt's a Cyclone II FPGA with EEPROM on a board, plus a programming adapter which you can use with the free Quartus software to program any compatible CPLD or FPGA.To be fair, the quality of the USB connector on the programmer isn't that great, and IIRC the pinout diagram on the label is wrong - but the unit itself works perfectly well, and neither problem is exactly insurmountable!

author: miceuz
author_rank: Frequent Contributor
timestamp: January 14, 2013, 01:23:20 pm
content: I was considering a CPLD for exactly the same purpose - generating hardware PWM.Could someone enlighten me - how do I calculate the aproximate amount of macrocells neded for one PWM channel?Suppose I have a big shift register of say 24bits and an 8-bit timer which uses 8-bit chunks of shift register as compare match registers to output PWM on 3 channels. How much cells are needed for that?

author: mrflibble
author_rank: Super Contributor
timestamp: January 14, 2013, 04:03:03 pm
content: The limiting factor with CPLD's for this sort of thing is the number of FFs. So with 1 FF per macrocell I think you can work it out.You can probably reduce the number of bits in your shift register if you update those 8-bit pwm compare registers one at a time. Just mean you have 2 external select pins. Or if you don't like that shift in 10 bits, where the 2 MSBs are the pwm register address. That costs you 10 FFs instead of 24 to do your register updates. So assuming you do that it's 10 FFs for shifting, 3*8 for compare, 8 for the counter ==> 42 FFs, so fits in a 64 macrocell cpld. Hell, even the 24 bit shift register will fit in 64 macrocells.Oh yeah, and if you want to make sure you can always download the free software from the vendor of your choice and synthesize your design. That way you will know for sure if your design will fit in a specific cpld part number or not.

author: os40la
author_rank: Regular Contributor
timestamp: January 14, 2013, 05:20:14 pm
content: Quote from: AndyC_772 on January 13, 2013, 07:30:59 pmHey! I have that one too.FYI don't give it 9v. If you do, one of the tantaliums will POP.. Do you recall which pinout(s) on the label are wrong?I think it is the  and  labels are reversed. Is that right?. This is a great starter board

author: AndyC_772
author_rank: Super Contributor
timestamp: January 14, 2013, 08:27:12 pm
content: Quote from: os40la on January 14, 2013, 05:20:14 pmYes, I think that's right. Kept me scratching my head for a while, that did!

author: smackaay
author_rank: Regular Contributor
timestamp: January 15, 2013, 08:32:04 pm
content: I've been toying around with the Mercury, and implementation of a Xilinx spartan whichs plugs straight into a breadboard. Pretty low pin count but it's been fun so far.http://micro-nova.com/mercury

author: andy1
author_rank: Contributor
timestamp: January 20, 2013, 12:30:44 am
content: Quote from: tinhead on January 10, 2013, 01:14:44 pmI just built a project using MachXO2 and the -HC parts are really nice since they need only one power supply rail if your IO is good with 3.3V. The single supply rail really helps with layout on 2-layer board, it is also available in 100 and 144 pin packages that are solderable by hand. Also the internal configuration memory is nice so no need for external chip for configuration.Maybe one of the best things is that the IDE supports plain ftdi2232 based jtag adapters so no need for extra programs or programmers if you have one.Also the old xilinx XC9500XL series are nice glue logic since they are cheap and 5V tolerance is nice for interfacing with different systems.

author: jeffreyprinzie
author_rank: Newbie
timestamp: January 30, 2013, 07:11:01 pm
content: If you start with FPGA, buy a board from xilinx (spartan..) => expensive, but soldering FPGA is not easyIf you want to use it in a own project, x9500 series do good. They have PLCC package which can be soldered easy.Digilent has cheap ($45) jtag programmers.