Author Topic: Advice on fpga, cpld or psoc. The next step  (Read 18698 times)

0 Members and 1 Guest are viewing this topic.

Offline hneveTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: no
    • http://www.neve.nu/
Advice on fpga, cpld or psoc. The next step
« on: June 23, 2015, 08:01:05 am »
I'm going out of my mind, I'm looking for something new to play with and have been thinking about fpga's then I found cpld's that's much cheaper and now I look at psoc and I get swamped.

I want something that has a lot of possibilities that doesn't cost the shirt of my back to play with. I'm a hobbyist with a ee degree 20yrs since that never got any use before I started with arduino a few years back. Now I would like a new challenge but I get so frustrated, there is so much to choose from and I'm kinda lost.
Can we have a discussion about which of these technologies would be a "natural" step up from uC.
And I'm not thinking of arm uC's ;)

A though about price v.s performance and abilities wouldn't hurt I guess.
73 de LB4NH
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19493
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Advice on fpga, cpld or psoc. The next step
« Reply #1 on: June 23, 2015, 08:21:40 am »
I'm going out of my mind, I'm looking for something new to play with and have been thinking about fpga's then I found cpld's that's much cheaper and now I look at psoc and I get swamped.

I want something that has a lot of possibilities that doesn't cost the shirt of my back to play with. I'm a hobbyist with a ee degree 20yrs since that never got any use before I started with arduino a few years back. Now I would like a new challenge but I get so frustrated, there is so much to choose from and I'm kinda lost.
Can we have a discussion about which of these technologies would be a "natural" step up from uC.
And I'm not thinking of arm uC's ;)

A though about price v.s performance and abilities wouldn't hurt I guess.

When you are buying any board, look carefully at the GND (and VCC) pins. The outputs are so fast and powerful that ground bounce and reflections are real problems. Try to get a board where there is a GND (or VCC) for every 2-3 signals, and they are well interspersed between the signals, not grouped together at one end.

To oversimplify, FPGAs have more registers each with fewer combinatorial blocks; CPLDs have fewer registers each with larger combinatorial blocks. Routing is more of an issue with FPGAs.

All FPGA tools are very complex and completely proprietary. They will run, and be able to mix-and-match, Verilog and VHDL source.

On the Xilinx side there are two: ISE (for older simpler devices up to and including Spartan 6, and won't be developed further) and Vivado (for newer bigger devices including those that also contain dual-core ARMs). They (seem to) run better on Linux, and there are cost-free versions available for the smaller devices.

I don't know about Altera. I haven't used CPLDs for 20 years, so I'm out of date.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline mian2zi3

  • Contributor
  • Posts: 34
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #2 on: June 23, 2015, 08:30:17 am »
All FPGA tools are very complex and completely proprietary.

Not true anymore!  There is a purely open source toolchain for the Lattice iCE40 family of FPGAs.  It has been reversed engineered as part of the icestorm project.  Yosys is an open source Verilog synthesis tool and place and route is done by arachne-pnr.  Some links:

https://github.com/cseed/arachne-pnr
http://www.clifford.at/yosys/
http://www.clifford.at/icestorm/

There is also a $21 iCE40HX1K USB stick/development board:

http://latticesemi.com/iCEstick

I'm author of arachne-pnr.  Feedback welcome if you try out the tools!
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19493
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Advice on fpga, cpld or psoc. The next step
« Reply #3 on: June 23, 2015, 11:02:37 am »
All FPGA tools are very complex and completely proprietary.
Not true anymore!  There is a purely open source toolchain for the Lattice iCE40 family of FPGAs.  It has been reversed engineered as part of the icestorm project.  Yosys is an open source Verilog synthesis tool and place and route is done by arachne-pnr.

Maybe, maybe not. Maybe they have managed to correctly route designs. Have they correctly assigned wire delays and gate delays, and optimised placement?

If you want to go that route it does have one significant advantage: you have to ignore most devices and boards on the market, which drastically simplifies the search space and your choices.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline AndyC_772

  • Super Contributor
  • ***
  • Posts: 4228
  • Country: gb
  • Professional design engineer
    • Cawte Engineering | Reliable Electronics
Re: Advice on fpga, cpld or psoc. The next step
« Reply #4 on: June 23, 2015, 11:18:40 am »
Surely the purpose of an open-source tool is to provide something which is either free of charge, or which does something that existing tools won't do?

So what, exactly, would be the reason to use an open-source FPGA tool, when FPGA tools (for small to medium devices, at least) are generally already free of charge and support all the chips' features?

Seems to me like it's an academic exercise, something which is done 'because we can', not because there's an objective need.

Personally I'd pick up a board like this one, download a version of Quartus that supports the Cyclone 1 family (that would be 11.0sp1, see here), and learn VHDL.

Offline mian2zi3

  • Contributor
  • Posts: 34
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #5 on: June 23, 2015, 11:32:23 am »
All FPGA tools are very complex and completely proprietary.
Not true anymore!  There is a purely open source toolchain for the Lattice iCE40 family of FPGAs.  It has been reversed engineered as part of the icestorm project.  Yosys is an open source Verilog synthesis tool and place and route is done by arachne-pnr.

Maybe, maybe not. Maybe they have managed to correctly route designs. Have they correctly assigned wire delays and gate delays, and optimised placement?

True, it is a work in progress.  It is possible to reverse engineer the timing information for these devices, but the icestorm project hasn't finished yet.  It is my intention to support timing-driven place and route when that is done.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: Advice on fpga, cpld or psoc. The next step
« Reply #6 on: June 23, 2015, 11:46:32 am »
Surely the purpose of an open-source tool is to provide something which is either free of charge, or which does something that existing tools won't do?

So what, exactly, would be the reason to use an open-source FPGA tool, when FPGA tools (for small to medium devices, at least) are generally already free of charge and support all the chips' features?
'Because the free tools from FPGA vendors suck' is one of the reasons that pops into my mind. Xilinx ISE for example is nothing more than a crappy IDE around a couple of command line tools. It is easy for a beginner to get started with but it is a far cry from a professional tool.

@mian2zi3: what would be a great idea for your project is to somehow make it work with Eclipse. Maybe start with an error parser so Eclipse can annotate coding errors in the source code.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline mian2zi3

  • Contributor
  • Posts: 34
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #7 on: June 23, 2015, 11:51:30 am »
Surely the purpose of an open-source tool is to provide something which is either free of charge, or which does something that existing tools won't do?

So what, exactly, would be the reason to use an open-source FPGA tool, when FPGA tools (for small to medium devices, at least) are generally already free of charge and support all the chips' features?

Seems to me like it's an academic exercise, something which is done 'because we can', not because there's an objective need.

Personally I'd pick up a board like this one, download a version of Quartus that supports the Cyclone 1 family (that would be 11.0sp1, see here), and learn VHDL.

Surely those can't be the only reasons?  As you say yourself, maybe the purpose is an academic exercise or "because we can"?  I can think of another reason: freedom.  I refer you to Stallman's four freedoms: freedom to run, study, distribute and improve.

https://www.gnu.org/philosophy/free-sw.en.html

No-cost proprietary software only grants one of those freedoms (to run).  hneve didn't say why he's looking for "something new to play with", but to study and improve might well be on his list, no?  My electronics projects (this one included) are primarily about self-education.  I can't be alone in that here.

Finally, this software is only a few weeks old, but I'm already aware of two ideas that aren't possible with vendor tools: running the toolchain on an Raspberry Pi to reprogram a RPi FPGA HAT in the field and using it to place/route asynchronous designs (although the latter may depend on timing information still in progress). 
 

Offline mian2zi3

  • Contributor
  • Posts: 34
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #8 on: June 23, 2015, 11:54:39 am »
@mian2zi3: what would be a great idea for your project is to somehow make it work with Eclipse. Maybe start with an error parser so Eclipse can annotate coding errors in the source code.

Hi nctnico, thanks for the suggestion!  I'll add it to the list.  In the short term, we're focusing on functionality.  I'm currently working on supporting PLLs and the 8K variant.  For larger designs, the latter is going to need some algorithmic improvements including probably analytic placement (currently we use simulated annealing).
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: Advice on fpga, cpld or psoc. The next step
« Reply #9 on: June 23, 2015, 12:26:42 pm »
@mian2zi3: what would be a great idea for your project is to somehow make it work with Eclipse. Maybe start with an error parser so Eclipse can annotate coding errors in the source code.

Hi nctnico, thanks for the suggestion!  I'll add it to the list.  In the short term, we're focusing on functionality.  I'm currently working on supporting PLLs and the 8K variant.  For larger designs, the latter is going to need some algorithmic improvements including probably analytic placement (currently we use simulated annealing).
Maybe you could somehow use the veditor project. This is an open source plugin for Eclipse for Verilog and VHDL.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19493
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Advice on fpga, cpld or psoc. The next step
« Reply #10 on: June 23, 2015, 03:26:53 pm »
All FPGA tools are very complex and completely proprietary.
Not true anymore!  There is a purely open source toolchain for the Lattice iCE40 family of FPGAs.  It has been reversed engineered as part of the icestorm project.  Yosys is an open source Verilog synthesis tool and place and route is done by arachne-pnr.

Maybe, maybe not. Maybe they have managed to correctly route designs. Have they correctly assigned wire delays and gate delays, and optimised placement?

True, it is a work in progress.  It is possible to reverse engineer the timing information for these devices, but the icestorm project hasn't finished yet.  It is my intention to support timing-driven place and route when that is done.

And when the manufacturer tweaks their process or drops/introduces a device, start all over again. It will always be a work in progress, and several years/decades behind the times. Sorry.

And when a user finds something doesn't work in the way they expected, they will be left wondering whether is it their design or your toolchain - and won't have any way of sorting it out. Having said that, I recognise that manufacturer's tool chains aren't bugfree - but manufacturers have a very strong incentive and the information to sort it out.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline hneveTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: no
    • http://www.neve.nu/
Re: Advice on fpga, cpld or psoc. The next step
« Reply #11 on: June 23, 2015, 07:00:41 pm »
@tggzzz: I will take a good look at power distribution and see if I spot signal problems when i decide on a dev board, thank you :)

@AndyC_772: Thank you for your suggestion, i might look into that fpga board.

@mian2zi3: You a 100% correct, I'm looking into this because i feel the need to twist my mind around something new, its purely for my own development and just as i have long since taken away the training wheels of arduino wiring (for larger projects, lets not get stupid about how fast you can get stuff working with that ... ya ) and why i did that was also purely 'because i can/want to' so you're not alone doing things harder than necessary just to challenge yourselves.
 

this wasn't exactly the discussion i was hoping for, I hoped to get a few feelers about whether to look closer into one of those technologies, as mentioned i an only a humble hobbyist and would like to broaden my horizon, my biggest problem is time, I'm a full time taxidriver, husband, and father to two beautiful children that i love above all. So when it comes to my hobby I try not to waste time. So I hope some of you can help me shed some light on what is more a next step after mastering (cough) avr's
73 de LB4NH
 

Offline Rasz

  • Super Contributor
  • ***
  • Posts: 2616
  • Country: 00
    • My random blog.
Re: Advice on fpga, cpld or psoc. The next step
« Reply #12 on: June 23, 2015, 07:27:54 pm »
check out XMOS XCore, they make 8/16 core 500/1000MIPS chips for low level hard realtime GPIO manipulation. Power of fpga with ease of microcontroller programming.
Who logs in to gdm? Not I, said the duck.
My fireplace is on fire, but in all the wrong places.
 

Offline poorchava

  • Super Contributor
  • ***
  • Posts: 1672
  • Country: pl
  • Troll Cave Electronics!
Re: Advice on fpga, cpld or psoc. The next step
« Reply #13 on: June 23, 2015, 07:35:29 pm »
IMHO the difficulty goes like this PSoC < CPLD < FPGA. This is because there is almost a complete drag & drop IDE for PSoC, and CPLDs are simpler and have more deterministic timing that FPGAs.

On the other hand I think right now the border between CPLDs and FPGAs is pretty blur.

Sent from my HTC One M8s using Tapatalk

I love the smell of FR4 in the morning!
 

Offline suicidaleggroll

  • Super Contributor
  • ***
  • Posts: 1453
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #14 on: June 23, 2015, 07:40:32 pm »
this wasn't exactly the discussion i was hoping for, I hoped to get a few feelers about whether to look closer into one of those technologies, as mentioned i an only a humble hobbyist and would like to broaden my horizon, my biggest problem is time, I'm a full time taxidriver, husband, and father to two beautiful children that i love above all. So when it comes to my hobby I try not to waste time. So I hope some of you can help me shed some light on what is more a next step after mastering (cough) avr's

CPLDs and FPGAs are very, very similar; for many tasks they're interchangeable.  The difference is complexity.  CPLDs are for simple tasks, they don't have the resources to handle large, complicated jobs.  On the flip side, they're cheap and SUPER easy to implement on your board.  They're non-volatile, which means no flash memory is needed.  Just give them power and a clock and you're done.  Since CPLDs are relatively simple and don't have a lot of resources, they generally come in simple packages as well (eg: QFP), which makes board layout and fanout easy.

FPGAs are for designs that can't use CPLDs.  The CPLD code is generally reusable, just remap the pins, synthesize it for your new device, and you're done (that won't necessarily work the other direction though).  FPGAs have a LOT more resources than CPLDs do.  They often have block RAM built in, orders of magnitude more logic gates, dedicated interfaces for external RAM, etc.  They're also generally in much bigger packages, usually BGA with hundreds of pins.  This makes them more difficult to use in hobby applications.  You need more layers to get all of those pins out from under the BGA, you need tighter tolerances to squeeze vias in under the chip, etc.  Hobby PCB fab sites might not be able to do it, or the price may be much higher than you're used to due to the tolerances and layers required.  Even once you get the PCB made, you still have to populate it, which means solder stencils, paste, reflow oven, etc.  Most FPGAs are volatile as well, which means you'll need to add external flash to store the design.

In short, FPGAs are MUCH more flexible and MUCH more powerful than CPLDs, which can be very nice.  Rather than spending half your time in HDL just trying to re-write and optimize your code so it can fit on the CPLD, you can just slap it on an FPGA and be done with gobs of room to spare.  The tradeoff is they're generally much more difficult to design a board for due to the number of pins and package options, and populating that board can also be a pain.

If your design can use a CPLD (vs an FPGA), it probably should, but not all designs can fit on a CPLD.

If you want to buy a demo board to explore the world of HDL, you should get an FPGA.  The added room will give you a lot more flexibility in what kinds of designs you can implement.  Once you go to make a device to do a specific task though, you should at least explore whether or not your design will fit on a CPLD.  If it can, then it would simplify your life greatly.
« Last Edit: June 23, 2015, 07:43:34 pm by suicidaleggroll »
 

Offline hneveTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: no
    • http://www.neve.nu/
Re: Advice on fpga, cpld or psoc. The next step
« Reply #15 on: June 23, 2015, 07:58:00 pm »
IMHO the difficulty goes like this PSoC < CPLD < FPGA. This is because there is almost a complete drag & drop IDE for PSoC, and CPLDs are simpler and have more deterministic timing that FPGAs.

On the other hand I think right now the border between CPLDs and FPGAs is pretty blur.

Sent from my HTC One M8s using Tapatalk

yes i can belive that the border between cpld and fpga is blurred as i got somewhere some altera cpld is really a fpga in disguize but thats off the pinot , and thats maybe where my process of thought got muddled up.

as i understand fpga and cpld are pure digital, where psoc have analog capabilities.. (am i correct ?)
I saw a quick video of a psoc demo and get the drag&drop ide, it might be a bit awkward to get used to. At the moment im leaning towards psoc.

@suicidaleggroll:  That was exactly what I was unsure about regarding the difference between cpld and fpga. I understand that getting a fpga dev board is like getting a big enough bucket just in case, as should i make a project out of it I might be able to exchange it for a cheaper cpld. (could i say its like the difference between a atmega328 and a attiny28 ?)
73 de LB4NH
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19493
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Advice on fpga, cpld or psoc. The next step
« Reply #16 on: June 23, 2015, 08:13:05 pm »
check out XMOS XCore, they make 8/16 core 500/1000MIPS chips for low level hard realtime GPIO manipulation. Power of fpga with ease of microcontroller programming.

For some applications, yes. For many applications, no they can't replace FPGAs

XMOS excells at hard-realtime operation - the IDE tells you exactly how many cycles each operation, loop, function will take. So think of them, for they are a wide family available at DigiKey, as being realtime processors in the way that anything with a cache isn't.

I'm itching to find a project to use them, and my local HackSpace has just been give a couple of cheap devboards - thanks XMOS!
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline suicidaleggroll

  • Super Contributor
  • ***
  • Posts: 1453
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #17 on: June 23, 2015, 08:16:28 pm »
(could i say its like the difference between a atmega328 and a attiny28 ?)

Yeah kind of.
 

Offline Fsck

  • Super Contributor
  • ***
  • Posts: 1157
  • Country: ca
  • sleep deprived
Re: Advice on fpga, cpld or psoc. The next step
« Reply #18 on: June 23, 2015, 08:18:41 pm »
IMHO the difficulty goes like this PSoC < CPLD < FPGA. This is because there is almost a complete drag & drop IDE for PSoC, and CPLDs are simpler and have more deterministic timing that FPGAs.

On the other hand I think right now the border between CPLDs and FPGAs is pretty blur.

Sent from my HTC One M8s using Tapatalk

yes i can belive that the border between cpld and fpga is blurred as i got somewhere some altera cpld is really a fpga in disguize but thats off the pinot , and thats maybe where my process of thought got muddled up.

as i understand fpga and cpld are pure digital, where psoc have analog capabilities.. (am i correct ?)
I saw a quick video of a psoc demo and get the drag&drop ide, it might be a bit awkward to get used to. At the moment im leaning towards psoc.

@suicidaleggroll:  That was exactly what I was unsure about regarding the difference between cpld and fpga. I understand that getting a fpga dev board is like getting a big enough bucket just in case, as should i make a project out of it I might be able to exchange it for a cheaper cpld. (could i say its like the difference between a atmega328 and a attiny28 ?)

correct. psoc is a microcontroller with configurable analog parts. it's pretty unique and can easily simplify your designs. however, the analog components of the psoc are usually limited so if you need very specific specs, you probably won't find them.
"This is a one line proof...if we start sufficiently far to the left."
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19493
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: Advice on fpga, cpld or psoc. The next step
« Reply #19 on: June 23, 2015, 08:21:28 pm »
as i understand fpga and cpld are pure digital, where psoc have analog capabilities.. (am i correct ?)

Sort of - PSoC is a bit of a marketing term with different manufacturers having different definitions. In one definition, PSoCs are essentially processors plus programmable logic in the same IC. They may or may not have some analogue capability.

Xilinx Zynq devices are one example of a PSoC, and with external ADCs they are used in the Red Pitaya semi-sort-of-open-source programmable oscilloscope.

If you have an FPGA then is it perfectly possible to create your own processor from scratch in the programmable logic. All the manufacturers have their own range of such "softcore" processors, there are some open-source ones, and some which imitate old processors such as 6502 etc.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline jancumps

  • Supporter
  • ****
  • Posts: 1272
  • Country: be
  • New Low
Re: Advice on fpga, cpld or psoc. The next step
« Reply #20 on: June 23, 2015, 08:31:15 pm »
...this wasn't exactly the discussion i was hoping for, I hoped to get a few feelers about whether to look closer into one of those technologies, as mentioned i an only a humble hobbyist and would like to broaden my horizon, my biggest problem is time, I'm a full time taxidriver, husband, and father to two beautiful children that i love above all. So when it comes to my hobby I try not to waste time. So I hope some of you can help me shed some light on what is more a next step after mastering (cough) avr's

For me personally, understanding FPGA and VHDL was the biggest brain challenge. If you're looking for a challenge where you have to learn a new paradigm, the FPGA/CPLD road is worth trying.

Hamster, a member here on EEVblog forums, has written a nice tutorial. I'm using that together with a Papilio FPGA board.
Xess - from Dave Vandenbout - also has nice kits to get you started.
 

Offline bingo600

  • Super Contributor
  • ***
  • Posts: 1988
  • Country: dk
Re: Advice on fpga, cpld or psoc. The next step
« Reply #21 on: June 23, 2015, 08:44:26 pm »
To get started cheap

I have bought these

CPLD
http://www.ebay.com/itm/271159389579

FPGA
http://www.ebay.com/itm/400630255386

Programmer
http://www.ebay.com/itm/161597061343

But you'd have to do your own leds, etc ...
I have had much need for my Oscilloscope and a cheap Saleae logicanalyzer.

/Bingo

I also have a Spartan3E starterboard , but uses the Alteras more
 

Offline poorchava

  • Super Contributor
  • ***
  • Posts: 1672
  • Country: pl
  • Troll Cave Electronics!
Re: Advice on fpga, cpld or psoc. The next step
« Reply #22 on: June 23, 2015, 08:50:54 pm »
Right now Altera is bringing to market MAX10 series which unlike other MAX devices is and FPGA, not a CPLD, but is non-volatile (or rather volatile with on board flash) and has integrated ADC (similar specs to what you'd expect to find in a microcontroller - 12bit, 1Msps)

Sent from my HTC One M8s using Tapatalk

I love the smell of FR4 in the morning!
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 13745
  • Country: gb
    • Mike's Electric Stuff
Re: Advice on fpga, cpld or psoc. The next step
« Reply #23 on: June 23, 2015, 09:52:58 pm »
Pretty much the only reason to use a CPLD is to save cost in production where the functionality is simple. It is extremely easy to burst the capacity of a CPLD, and you sometimes need to get quite creative to fit things into the smaller devices.
For learning, use an FPGA (on a devboard) . You can ignore all the fancy stuff in FPGAs & start simple.

If you're doing something with a view to putting it on your own board, I'd reccommend looking at Lattice XO2, s it has a lot of the fiddly oddments built in - flash, voltage regs, and even a (not super accurate) oscillator. Lattice also do very cheap bare-bones breakout boards.
The range covers low-end simple devices up to bigger devices with block RAM and PLLs etc.
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #24 on: June 24, 2015, 02:12:38 am »
As much as I love PSoC, and how capable it is, it's a pretty unique environment, sure you can use Verilog or VHDL but most of the times you just use the components they offer and it will take you a while until you need a custom component that would require HDL.

Other limitations are that it only has one single PLL although you can create other frequencies by using frequency dividers.

As for FPGAs/CPLDs it's really not too difficult either, and it doesn't require you to learn VHDL or Verilog, or at least not much if you can work on schematic form, here is a simple tutorial on someone's question on how to make his logic gates work properly because his inputs where pulled high so pressing them was actually a 0 input when he expected a 1 (VCC)

https://www.eevblog.com/forum/microcontrollers/bemicro-cv-questions/msg524041/#msg524041

But a PSoC is still pretty capable as well to deal with a lot of tasks:
https://www.eevblog.com/forum/projects/make-use-of-an-old-cga-monitor/45/

of course one of my favourite links for PSoC (this relates to the PSoC 4 Pioneer kit) but their new PSoC 5LP prototype board can do so much more.
http://www.element14.com/community/thread/23736/l/100-projects-in-100-days?displayFullThread=true

Link to the PSoC 5LP prototype board
http://www.cypress.com/?rid=108038

But the problem is that even if all the examples can be ported, you just can't just do that from the get go, so going that route might require you to get a pioneer kit (no DMA and less resources) to get your feet wet.

Same goes with the BeMicro CV or the BeMicro MAX10, they are inexpensive but not too many examples:
http://www.alterawiki.com/wiki/BeMicro_Max_10

But Altera has a lot of free training videos but it will require a lot of ramp-up.

On the Xilinx front you could use the Papilio Pro or the newer Papilio Duo
http://papilio.cc/

But of course the older Pro has more examples than the Duo.
http://papilio.cc/index.php?n=Papilio.Learning
Including forum member hamster_nz "Intro to Spartan FPGA eBook"
http://forum.gadgetfactory.net/index.php?/page/articles.html/_/papilio/logicstart-megawing/intro-to-spartan-fpga-ebook-r34
(Btw, I shouldn't ask, but if you read this, is the new one going to happen or work took over that?)

So at the end it's pretty much what has more examples and available training to facilitate the ramp up.

Also it has to do on what you want to do, I bet the other suggestions are as good, you just have to jump into one and allow yourself time to get up to speed. But having sample code always helps to learn, although sometimes it doesn't because you just use the stuff without looking on why it works.

Last, Altera/Terasic has a new DE0-Nano_SoC, that has a dual core ARM Cortex A9. I have one but have not had time to dig into it. But it's way harder to use than the PSoC.

One thing that can be frustrating with Altera is getting a good understanding of their Avalon interconnect since most of their IP (intellectual property) components rely on that master slave, and their samples used the NIOS soft core and it acted as a black box. Maybe the new one with the ARM processor is easier to start with but it will require at least 4 months totally dedicated to it. That is needed if you want to access external components that need some initialization and even if the component would do it for you, it's tied to their proprietary IPs with no source to know how to use it in a different way.

Again, you have to define what you want to do, I think the PSoC is faster to learn and get going, but that doesn't prepare you much to graduate to CPLDs and FPGAs.

The Papilio is a cool concept and it does makes things a bit easy without the intricacies of Xilinx's ISE since it hides a lot from you.

Never used Lattice but I've seen what Mike can do with it so I bet it's a great starting point as well.

Another point will be that you might make a mistake wiring things and break the dev board (knock on wood since all of mine are still functional)

It's cool that there are so many choices but I can see why it can be frustrating, I have about 17 HDL capable dev boards, most of the PSoC but one Xilinx (papilio duo) and 8 Altera ones including one MAX 10 that it's borderline FPGA/CPLD.

Of all of them the PSoC takes the less space on installation. So the toolchain is another consideration.

My favorite go to, is still the original DE0-Nano (have two of them) but it's a bit spartan but has a lot of GPIOs, but the BeMicro MAX 10 is just $30 and the PSoC 5LP prototyping board is $10, $25 for the Pioneer and $4 for the PSoC 4 prototyping kit.

I wouldn't use the PSoC for anything higher than 40MHz or anything that needs a lot of different clocks that can't be derived from a single PLL.
 

Offline Corporate666

  • Supporter
  • ****
  • Posts: 2008
  • Country: us
  • Remember, you are unique, just like everybody else
Re: Advice on fpga, cpld or psoc. The next step
« Reply #25 on: June 24, 2015, 03:22:03 am »
A lot of talk about FPGA and CPLD which is great, but doesn't necessarily address the original question of what to use.

I would say that if you are starting with MCU experience, then PSoC is going to be the easiest and most productive for you.  I think the Cypress PSoC chips are phenomenal, and the dev kit that miguelvp posted, this one:

http://www.cypress.com/?rid=108038

has to be one of the most screaming deals in dev kit history.  It's a top-of-the-line 80Mhz ARM Cortex M3 processor with lots of programmable digital and analog logic.

Whereas a standard MCU will have 3 times, 2 PWM's, 5 interrupts, an ADC or whatever, the PSoC chip instead has a given number of 'blank pages' (programmable blocks).  You can put whatever you want on those pages... if you need 20 PWM's, you just keep adding PWM blocks - you can add as many as the chip has free blocks.  You could add 10 SPI channels, 8 timers, 20 interrupts, an LCD controller or whatever else you want.  There are also pre-built functions that you drag-and-drop into your project that do things most other chips can't do in hardware.  Things like quadrature decoding, fan speed control, LINbus, shift registers, switch debouncers, SDM modulators, or whatever.  There are also 3rd party components like those to drive WS2812 LED's or interface with unique LCD's.   You can also write your own stuff in Verilog/VHDL although it's not made to be easy as it would be with a dedicated FPGA tool.

Anyway, that board posted above is $10 and includes a programmer, just plug it in your USB port and that's all you need.
It's not always the most popular person who gets the job done.
 

Offline miguelvp

  • Super Contributor
  • ***
  • Posts: 5550
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #26 on: June 24, 2015, 03:35:22 am »
Agreed, but one thing to take into account is sample code, so even if the 5LP prototyping boards is a screaming deal I would start with the PSoC 4 Pioneer kit for $25 and check out the 100 projects in 100 days at element 14 on the link I posted before.

At least so you can get confident enough to move to the 5LP ($10 one) more powerful board, because starting with that one might be too frustrating to start with, without as many samples.

On top of nice examples (even via the IDE) you can watch some videos from their youtube channel.

https://www.youtube.com/channel/UCOPwgpx4mNwPULlfdCn1xiQ

I would not watch them until you get some projects running because the videos might not make a lot of sense or they'll be too fast paced if you haven't get your feet wet.

Edit: and again, if you need something that has to output over 40MHz (and that is stretching the timings a lot) even the 5LP might not cut it. So it would help to know what projects you have in mind.

« Last Edit: June 24, 2015, 03:40:10 am by miguelvp »
 

Offline hneveTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: no
    • http://www.neve.nu/
Re: Advice on fpga, cpld or psoc. The next step
« Reply #27 on: June 24, 2015, 07:29:11 am »
Ok a lot of good information here now,  as I understand a psoc can contain both a uC and some logic blocks making it a mix of both, while also having some analog possibilities.

As a hobbyist I then recon the most versatile must be a psoc. I might get both the 5lp and maybe also the pioneer kit,  I like a lot of examples and a bag of projects to try out.
73 de LB4NH
 

Offline neslekkim

  • Super Contributor
  • ***
  • Posts: 1305
  • Country: no
Re: Advice on fpga, cpld or psoc. The next step
« Reply #28 on: June 24, 2015, 11:45:15 am »
Ok a lot of good information here now,  as I understand a psoc can contain both a uC and some logic blocks making it a mix of both, while also having some analog possibilities.

As a hobbyist I then recon the most versatile must be a psoc. I might get both the 5lp and maybe also the pioneer kit,  I like a lot of examples and a bag of projects to try out.

If you order from cypress, make sure you get them to understand that shippingcosts need to be stated on the shippingpapers, otherwise you get a hell with FedEx.. (Unless you mange to get all the trackinnumbers early from cypress, and submitt the invoices to FedEx before you receive the stuff.. Cypress almost always divides the stuff into many packages, and FedEx calculates skyhigh shippingcosts to drive tax.. I'm still in this mess: http://www.dinside.no/933958/tollvesenet-vi-belastes-av-klager-paa-350-kronersgrensa )
 

Offline hneveTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: no
    • http://www.neve.nu/
Re: Advice on fpga, cpld or psoc. The next step
« Reply #29 on: June 24, 2015, 12:02:34 pm »
No worries, I use no.farnell.com or eBay mostly.
Just got to get them to get it for me.

350kr grensa suger fætt ja.....
73 de LB4NH
 

Offline bingo600

  • Super Contributor
  • ***
  • Posts: 1988
  • Country: dk
Re: Advice on fpga, cpld or psoc. The next step
« Reply #30 on: June 24, 2015, 01:00:32 pm »
No worries, I use no.farnell.com or eBay mostly.
Just got to get them to get it for me.

350kr grensa suger fætt ja.....

350 ville være fint  ;)
Det er 80dkk i Danmark  :--

/Bingo
 

Offline Muxr

  • Super Contributor
  • ***
  • Posts: 1369
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #31 on: June 24, 2015, 03:45:20 pm »
Pretty much the only reason to use a CPLD is to save cost in production where the functionality is simple. It is extremely easy to burst the capacity of a CPLD, and you sometimes need to get quite creative to fit things into the smaller devices.
For learning, use an FPGA (on a devboard) . You can ignore all the fancy stuff in FPGAs & start simple.

If you're doing something with a view to putting it on your own board, I'd reccommend looking at Lattice XO2, s it has a lot of the fiddly oddments built in - flash, voltage regs, and even a (not super accurate) oscillator. Lattice also do very cheap bare-bones breakout boards.
The range covers low-end simple devices up to bigger devices with block RAM and PLLs etc.
I second this advice. As someone who was in a similar boat as the original poster few months back, I went with the Lattice MachXO2. They are cheap and easy to use. Also they can take lots of flash writes (more than competing products), so you can reprogram them continuously as you're learning.

I should probably leverage simulation more, but I just find it easier to program and actually measure the signals I am working with in real life. FPGA/CPLD programming is something I am doing as aside, so for low commitment just another tool in the toolbox type of thing XO2 is perfect.

Diamond software is free, and while maybe not as powerful as competing products I found it pretty intuitive, once I went through all the options. The development board is about the cheapest dev. board you can get. At $26 a piece you can get a few of them, and experiment at will, without worrying about frying an expensive board.

Should you decide to use one in your design, the chips are easily obtainable and are pretty cheap. Mouser has them at less than $4 a piece for the smallest unit for low quantities.

And if you decide you're outgrown the CPLDs, you will have learned the fundamentals of FPGA programming that switching to a different vendor and chip should be pretty easy.
« Last Edit: June 24, 2015, 03:53:13 pm by Muxr »
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 13745
  • Country: gb
    • Mike's Electric Stuff
Re: Advice on fpga, cpld or psoc. The next step
« Reply #32 on: June 24, 2015, 04:04:16 pm »

I second this advice. As someone who was in a similar boat as the original poster few months back, I went with the Lattice MachXO2. They are cheap and easy to use. Also they can take lots of flash writes (more than competing products), so you can reprogram them continuously as you're learning.

While learning you should mostly be using RAM download rather than programming the flash as it's a lot quicker
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline Muxr

  • Super Contributor
  • ***
  • Posts: 1369
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #33 on: June 24, 2015, 04:05:53 pm »

I second this advice. As someone who was in a similar boat as the original poster few months back, I went with the Lattice MachXO2. They are cheap and easy to use. Also they can take lots of flash writes (more than competing products), so you can reprogram them continuously as you're learning.

While learning you should mostly be using RAM download rather than programming the flash as it's a lot quicker
That's a good idea, will give that a try next time. Thanks!
 

Offline Corporate666

  • Supporter
  • ****
  • Posts: 2008
  • Country: us
  • Remember, you are unique, just like everybody else
Re: Advice on fpga, cpld or psoc. The next step
« Reply #34 on: June 24, 2015, 05:58:51 pm »
Ok a lot of good information here now,  as I understand a psoc can contain both a uC and some logic blocks making it a mix of both, while also having some analog possibilities.

As a hobbyist I then recon the most versatile must be a psoc. I might get both the 5lp and maybe also the pioneer kit,  I like a lot of examples and a bag of projects to try out.

What miguelvp said is probably correct... I've been working with PSoC for several years now, and while many aspects of the chips seems second nature to me, it's been so long since I started with them that perhaps they have a steeper learning curve then I remember.  But something else to keep in mind is that Cypress has training classes all around the world quite regularly.  They are free to attend and you usually get a free dev kit for showing up - and they have Cypress engineers running the classes and walking you through building projects, so any questions you have or anything that's unclear, they are there to help.

And if you are doing it for your work, you probably get a free day off work to attend, as well as free lunch and get to hang out with other electronics folks for a few hours.
It's not always the most popular person who gets the job done.
 

Offline hneveTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: no
    • http://www.neve.nu/
Re: Advice on fpga, cpld or psoc. The next step
« Reply #35 on: June 24, 2015, 06:05:07 pm »
@Corporate666:
Quote
And if you are doing it for your work, you probably get a free day off work to attend
A day off as a taxi driver, my boss is already pissed i gotta be home by 16:30 at least a few days a week.

Quote
free lunch
Interresting ... hmmmm ;)

Quote
and get to hang out with other electronics folks for a few hours.
I'd love that, there are not many other nerds around where I live (or maybe theyre just hiding) so I would really love to meet up with people and talk shop.
As a taxi driver starting aroung 6-7 in the morning I'm mostly fed up with talking about the weather around 9. lol :)
73 de LB4NH
 

Offline hneveTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: no
    • http://www.neve.nu/
Re: Advice on fpga, cpld or psoc. The next step
« Reply #36 on: June 24, 2015, 07:06:03 pm »
Just a thought i want to mention here, as earlier stated I'm stretched for time, therefore as I started with the arduino some time ago I later got used to Atmels documentation, I mean how the documents are built and the structure and examples. I have looked at other uC aswell but when looking at the doc's, they feel unusual and strange.
I know this is maybe just me but is it so that you also prefer a producer just because you are familiar around their documentation ?
73 de LB4NH
 

Offline neslekkim

  • Super Contributor
  • ***
  • Posts: 1305
  • Country: no
Re: Advice on fpga, cpld or psoc. The next step
« Reply #37 on: June 24, 2015, 08:09:25 pm »
I know this is maybe just me but is it so that you also prefer a producer just because you are familiar around their documentation ?

I would guess this is normal, some writes very good documentations, and some don't, or write so much differently that it takes time to wrap your head around it.
Should have been classes/courses to learn to read them :)
 

Offline firehopper

  • Frequent Contributor
  • **
  • Posts: 408
  • Country: us
Re: Advice on fpga, cpld or psoc. The next step
« Reply #38 on: June 24, 2015, 08:35:52 pm »
and actually that board you mention has 2 psoc 5lp chips on it. both are programmable, one is the kitprog, (It will also program psoc4 chips) and the other is the target.

A lot of talk about FPGA and CPLD which is great, but doesn't necessarily address the original question of what to use.

I would say that if you are starting with MCU experience, then PSoC is going to be the easiest and most productive for you.  I think the Cypress PSoC chips are phenomenal, and the dev kit that miguelvp posted, this one:

http://www.cypress.com/?rid=108038

has to be one of the most screaming deals in dev kit history.  It's a top-of-the-line 80Mhz ARM Cortex M3 processor with lots of programmable digital and analog logic.

Whereas a standard MCU will have 3 times, 2 PWM's, 5 interrupts, an ADC or whatever, the PSoC chip instead has a given number of 'blank pages' (programmable blocks).  You can put whatever you want on those pages... if you need 20 PWM's, you just keep adding PWM blocks - you can add as many as the chip has free blocks.  You could add 10 SPI channels, 8 timers, 20 interrupts, an LCD controller or whatever else you want.  There are also pre-built functions that you drag-and-drop into your project that do things most other chips can't do in hardware.  Things like quadrature decoding, fan speed control, LINbus, shift registers, switch debouncers, SDM modulators, or whatever.  There are also 3rd party components like those to drive WS2812 LED's or interface with unique LCD's.   You can also write your own stuff in Verilog/VHDL although it's not made to be easy as it would be with a dedicated FPGA tool.

Anyway, that board posted above is $10 and includes a programmer, just plug it in your USB port and that's all you need.
 

Offline hneveTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: no
    • http://www.neve.nu/
Re: Advice on fpga, cpld or psoc. The next step
« Reply #39 on: June 25, 2015, 09:05:09 am »
I know this is maybe just me but is it so that you also prefer a producer just because you are familiar around their documentation ?

I would guess this is normal, some writes very good documentations, and some don't, or write so much differently that it takes time to wrap your head around it.
Should have been classes/courses to learn to read them :)
I actually remember from my school days we did learn how to read the documentation of discreet chips, and what some of those technical stuff really means.  But that is 20 years ago....
73 de LB4NH
 

Offline neslekkim

  • Super Contributor
  • ***
  • Posts: 1305
  • Country: no
Re: Advice on fpga, cpld or psoc. The next step
« Reply #40 on: June 25, 2015, 12:41:52 pm »
I would guess this is normal, some writes very good documentations, and some don't, or write so much differently that it takes time to wrap your head around it.
Should have been classes/courses to learn to read them :)
I actually remember from my school days we did learn how to read the documentation of discreet chips, and what some of those technical stuff really means.  But that is 20 years ago....

Same here, learned to read documentation for the 74 series and so on, but that is almost 30 years ago, and those datasheets was very easy. What I struggles most with is understanding of all the clock-diagrams for microchip series.
 

Offline hneveTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: no
    • http://www.neve.nu/
Re: Advice on fpga, cpld or psoc. The next step
« Reply #41 on: June 25, 2015, 12:54:51 pm »
Anyways, I'll get a pioneer kit and that 5lp kit also and see where I go from there.  Probably 100 experiments in 100+ days ;)

Thank you all for good information (no negative feedback here!)
73 de LB4NH
 

Offline ale500

  • Frequent Contributor
  • **
  • Posts: 415
Re: Advice on fpga, cpld or psoc. The next step
« Reply #42 on: June 27, 2015, 06:09:44 am »
Schematic capture for CPLD/FPGA is rather clumsy, like the interface is against you for some reason. Maybe I am too custom to 'normal' schematic capture as in schematic->pcb workflows. I really like Lattice Diamond but I rather type y couple of Verilog lines instead.
 

Offline hneveTopic starter

  • Regular Contributor
  • *
  • Posts: 60
  • Country: no
    • http://www.neve.nu/
Re: Advice on fpga, cpld or psoc. The next step
« Reply #43 on: July 08, 2015, 12:04:13 pm »
Just a little update.

I've downloaded the PSoC Creator and have looked through a few of the examples and how things work, I must say i'm impressed by this software, the ease of accessing documentation in here is beyond anything i have encountered before, all modules are really well documented and is only a button away. the language and ease of understanding are very good.

I have entered this with a mind set to that this is NOT a microcontroller, and i think I'm getting the logic of this.

It really IS a microcontroller, BUT it's tucked inside of complex logic that need to be in place before thinking of it as a microcontroller.
I'm almost ashamed I haven't looked this way before.  :-[

Still waiting for delivery on the hardware  8)
73 de LB4NH
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf