Understanding FPGAs

Thread Starter

ApacheKid

Joined Jan 12, 2015
385
Hi,

I want to begin an initial foray into FPGAs, I'm sure this subject come up regularly.

Here's my position with this:

  1. I studied digital electronics in college quite a lot in the early 80s, flip-flops, shift-registers, combinational and sequential stuff, UARTS etc.
  2. I've worked with TTL, CMOS and so on (again back in college) and built stuff of my own too, interfaced to microprocessors etc.
  3. I want to do any FPGA work by using my Windows desktop so tools etc must be OK on this platform.
  4. Don't want to pay huge money for software tools.
  5. No particular goal other than get an understanding of what can be accomplished with them, some understanding of VHDL (or whatever) etc.

I have reasonably good equipment for a hobbyist (I never worked in electronics professionally, moved into software in my mid 20s) like a scope and so on but have no specific tools for involved digital work (e.g. I do not have a logic analyzer for example) but willing to buy some if its helpful.

I'd say I'd be willing to plow around 500 bucks give or take to get up and running.

So, thoughts? advice?

Thanks
 
Last edited:

hexreader

Joined Apr 16, 2011
532
The bits that started me off learning FPGA were from Hobby Components

1) FPGA board £16-99 (not in stock, but available elsewhere)
2) CPLD board £10-98 - not as nice as above board, but at his price, who cares
3) Programmer £6-49 - works with either of the above

Same devices available from many other places

You might even like Logic Analyser £12-49 - not a real LA, but handy for the price and fairly capable.

Total for everything £45 - probably can be bought in US for 50 bucks.

Development software for all of the above is free

Free Range VHDL course can be downloaded free, and was my preferred starter tutorial

Save the remaining $450 for better gear once you have decided whether FPGA is for you. I gave up after a while, but greatly enjoyed the learning experience.

I suspect that Verilog is the preferred language in US, but I cannot comment as I have only tried VHDL.

I loved the above kit and loved the silly low cost of it all.
Can't promise that you will like it as much as I did, but perhaps it will give you ideas...
 

Thread Starter

ApacheKid

Joined Jan 12, 2015
385
The bits that started me off learning FPGA were from Hobby Components

1) FPGA board £16-99 (not in stock, but available elsewhere)
2) CPLD board £10-98 - not as nice as above board, but at his price, who cares
3) Programmer £6-49 - works with either of the above

Same devices available from many other places

You might even like Logic Analyser £12-49 - not a real LA, but handy for the price and fairly capable.

Total for everything £45 - probably can be bought in US for 50 bucks.

Development software for all of the above is free

Free Range VHDL course can be downloaded free, and was my preferred starter tutorial

Save the remaining $450 for better gear once you have decided whether FPGA is for you. I gave up after a while, but greatly enjoyed the learning experience.

I suspect that Verilog is the preferred language in US, but I cannot comment as I have only tried VHDL.

I loved the above kit and loved the silly low cost of it all.
Can't promise that you will like it as much as I did, but perhaps it will give you ideas...
That does seem like an interesting store over there in Britain (I'm originally from the UK) certainly better than Maplin which has become a bit of a joke these past few years.

Most stuff I get these days is from Amazon, its rare that I cant find what I need, I guess I've gotten lazy too.

Problem is when one is unfamiliar with stuff, like searching for FPGA on Amazon and a lot of stuff comes up, trying to narrow that down isn't straightforward.

I'm also a bit lazy in that I want to just plug one of these boards into my PC and get working, I hate the horrible environment setup that is sometimes required with stuff like this, the toolchains and so on - I work on software for a living and have no patience for fiddling around with toolchains and stuff!
 
Last edited:

andrewmm

Joined Feb 25, 2011
1,464
That does seem like an interesting store over there in Britain (I'm originally from the UK) certainly better than Maplin which has become a bit of a joke these past few years.

Most stuff I get these days is from Amazon, its rare that I cant find what I need, I guess I've gotten lazy too.

Problem is when one is unfamiliar with stuff, like searching for FPGA on Amazon and a lot of stuff comes up, trying to narrow that down isn't straightforward.

I'm also a bit lazy in that I want to just plug one of these boards into my PC and get working, I hate the horrible environment setup that is sometimes required with stuff like this, the toolchains and so on - I work on software for a living and have no patience for fiddling around with toolchains and stuff!
Unfortunately , Maplin went bust a few years ago as they tried to push into the high street from mail order just as every one else was moving out of the high street.


A few decisions for you to make.

FPGAs came out of CPLD's but the FPGAs are so far removed from FPGAs its almost a different language needed.

Assuming FPGA, there are really two suppliers ,
AMD / Xilinx ( Xilinx invented the Fpga )
Intel / Altera ( Altera were the big competitor )

Personally I'd go for Xilinx as that's what I use the most, and I think have better support forum.
Both tools sets have a free range, both are fairly equivalent,

Next you need to decide which language to program the FPGA.
Now this is where BIG turth wars can occur.

The choice is wide,
As they say in the Hitchhikers guide , VERY VERY big

You could program in C, or MatLAb, but thats a bit specilist.

A form of C called HLS is the latest great thing,
its great ,
BUT

I think that you still need to understand a lot about the guts of the FPGA , and HLS leads to monster chips

I'd suggest th echoice is
Verilog or VHDL ,

Sys Verilog is menat to be a mix of VHDL and Verilog,
but from what I see, you can program the worst of Verilog and VHDL in it
and make monster code.

I'd go for VHDL,
you ar eless likely to get into bad habits that Verilog lets you get away with
till you hit the real silicon

try this
http://freerangefactory.org/pdf/df344hdh4h8kjfh3500ft2/free_range_vhdl.pdf
 

Thread Starter

ApacheKid

Joined Jan 12, 2015
385
Unfortunately , Maplin went bust a few years ago as they tried to push into the high street from mail order just as every one else was moving out of the high street.


A few decisions for you to make.

FPGAs came out of CPLD's but the FPGAs are so far removed from FPGAs its almost a different language needed.

Assuming FPGA, there are really two suppliers ,
AMD / Xilinx ( Xilinx invented the Fpga )
Intel / Altera ( Altera were the big competitor )

Personally I'd go for Xilinx as that's what I use the most, and I think have better support forum.
Both tools sets have a free range, both are fairly equivalent,

Next you need to decide which language to program the FPGA.
Now this is where BIG turth wars can occur.

The choice is wide,
As they say in the Hitchhikers guide , VERY VERY big

You could program in C, or MatLAb, but thats a bit specilist.

A form of C called HLS is the latest great thing,
its great ,
BUT

I think that you still need to understand a lot about the guts of the FPGA , and HLS leads to monster chips

I'd suggest th echoice is
Verilog or VHDL ,

Sys Verilog is menat to be a mix of VHDL and Verilog,
but from what I see, you can program the worst of Verilog and VHDL in it
and make monster code.

I'd go for VHDL,
you ar eless likely to get into bad habits that Verilog lets you get away with
till you hit the real silicon

try this
http://freerangefactory.org/pdf/df344hdh4h8kjfh3500ft2/free_range_vhdl.pdf
Hi,

OK thanks for all that info, it is helpful, I'll opt for Xilinx devices and will focus on VHDL, as a beginner in this area I'm happy to take your guidance.

I have a few more questions for you!

If I go to (say) Amazon and search "FPGA Xilinx" a lot of different boards come up with a wide range of prices, is there something you'd recommend as a reasonable starting point?

Also, how does one actually connect one of these boards up to their PC? do they have like a USB connector? Does the Xilinx toolset expect that kind of connection?

Do these boards get their power from the USB or must they have a separate DC supply?

Is there anything akin to a debugger with these FPGAs? I've done some work with STM32 boards and of course I can interactively debug - I do understand that an FPGA is not a processor, does no execute instructions but embodies an interconnected set of digital device, but is there anything akin to debugging, examining a designed system to discover glitches, propagation delay and timing issues etc?

Now finally a more general question, in "reality" would engineers design/test/refine a digital system in an FPGA and then - once stable/debugged - use that "code" (I assume its some kind of binary file or something) to "program" the raw chips or is there also non-development boards that you'd use once the development is complete?

I guess that means - do boards for say a Spartan-6 - come as development boards and also "field" boards, boards intended for deploying an already designed system, no dev support, debug support etc?

Thanks again
 

Thread Starter

ApacheKid

Joined Jan 12, 2015
385
This board caught my eye (and I watched the video about it on the Xilinx site), but of course I know very little about these devices, this device may be huge overkill, beyond what a newbie would ever need...
 

MrChips

Joined Oct 2, 2009
23,515
FPGA is nice when your goal is extreme high speed performance.
If you are now starting out, for the time being start with programming a simple MCU such as Atmel AVR or TI MSP430.
 

Thread Starter

ApacheKid

Joined Jan 12, 2015
385
FPGA is nice when your goal is extreme high speed performance.
If you are now starting out, for the time being start with programming a simple MCU such as Atmel AVR or TI MSP430.
Part of the attraction (to me) of these FPGAs is the fact that they are not programmed like an MCU. As a professional programmer its fascinating to use devices that represent general purpose digital systems and do not involve what's termed "imperative" programming languages.

Of course I realize that most MCUs today are in fact FPGAs configured as Arm processors!
 

andrewmm

Joined Feb 25, 2011
1,464
Hi,

OK thanks for all that info, it is helpful, I'll opt for Xilinx devices and will focus on VHDL, as a beginner in this area I'm happy to take your guidance.

I have a few more questions for you!

If I go to (say) Amazon and search "FPGA Xilinx" a lot of different boards come up with a wide range of prices, is there something you'd recommend as a reasonable starting point?

Also, how does one actually connect one of these boards up to their PC? do they have like a USB connector? Does the Xilinx toolset expect that kind of connection?

Do these boards get their power from the USB or must they have a separate DC supply?

Is there anything akin to a debugger with these FPGAs? I've done some work with STM32 boards and of course I can interactively debug - I do understand that an FPGA is not a processor, does no execute instructions but embodies an interconnected set of digital device, but is there anything akin to debugging, examining a designed system to discover glitches, propagation delay and timing issues etc?

Now finally a more general question, in "reality" would engineers design/test/refine a digital system in an FPGA and then - once stable/debugged - use that "code" (I assume its some kind of binary file or something) to "program" the raw chips or is there also non-development boards that you'd use once the development is complete?

I guess that means - do boards for say a Spartan-6 - come as development boards and also "field" boards, boards intended for deploying an already designed system, no dev support, debug support etc?

Thanks again
FPGAs are different to CPU's in many ways

not least how you design, program and debug them.

At the end of the day, VHDL, like all other Hardware Description Languages ( HDL )
is describing the hard ware you want.

In C code, you tend to program, burn and debug on the CPU,

In FPGAs , your describing hardware.

You spend most of your time in the codding and simulation tools.
When you have simulated to prove the design works as you expect,
then you synthesis to prove that you meet your timing,

Remember your describing hardware,
different circuits and systems you describe in hardware will run at different speeds,
I'm afraid , like with CPUs , when you start you do not know what can be done at what speed.
And you will find yourself going back and re crafting the system to work at the speed you need.

The "rule" is about 80 percent of your time in FPGA land is spent in the simulator / writing code seeing what speed you can get.
before you program an FPGA,

Its a different mind set to programming a CPU.

How are the board programmed / powered.

Most FPGAs don't store the configuration on the chip. This comes from outside.
Smaller boards , this tends to come from the PC connected to them over USB, and / or a configuration prom on the FPAG board, that can be programmed over the USB using the same tools you use to write the code.

In Xilinx world, you looking for a Artex FPGA board, and the vivado web pack that is free.
( though be aware, the Vivado download is massive )

I'd look for a board from a site that has a good forum,
The Xilinx support forum is good,
but the Xilinx made boards tend to be expensive.

Id typically be looking at a baysis 3 board,
https://store.digilentinc.com/boards-and-components/system-boards/fpga-boards/
digilent have a nice range of boards, and historically have given good documentation especially on the starter boards,

but it seems to be unavailable at the moment.
 
Top