Getting started with FPGA

  • Thread starter rupertlssmith@googlemail.
  • Start date
R

rupertlssmith@googlemail.

Guest
Hi,

I'm interested in learning more about FPGAs in a hands on way. Can
anyone recommend an inexpensive set of tools to get started with? My
wishlist is: I'd like to develop on Linux, I'd like to spend no more
than a few hundred $ on a starter kit, I'd like to learn using the
tools and up-to-date skills that are relevant to the more high end set
ups available. Which is better to start with, Xilinx or Altera or
something else? Is there a choice between Verilog and VHDL to be made,
or can both be tried out just as easily?

At the moment I am not too bothered about specific applications, just
if I can get some hands on experience, whatever i/o ports are
available on whatever board I use, I will think of some little project
to try out using them.

Thanks for your recommendations.

Rupert
 
On 08/17/2010 10:07 AM, rupertlssmith@googlemail.com wrote:
Hi,

I'm interested in learning more about FPGAs in a hands on way. Can
anyone recommend an inexpensive set of tools to get started with? My
wishlist is: I'd like to develop on Linux, I'd like to spend no more
than a few hundred $ on a starter kit, I'd like to learn using the
tools and up-to-date skills that are relevant to the more high end set
ups available. Which is better to start with, Xilinx or Altera or
something else? Is there a choice between Verilog and VHDL to be made,
or can both be tried out just as easily?

At the moment I am not too bothered about specific applications, just
if I can get some hands on experience, whatever i/o ports are
available on whatever board I use, I will think of some little project
to try out using them.
<Disclaimer>

I'm not really an FPGA guy: I'm a systems engineer with formal training
in math and analog circuits, who's been designing control and signal
processing algorithms for FPGA, embedded processors and DSP chips for
years. But while I've also implemented those algorithms on the
processors, there have always been excellent digital folks on tap to
implement my algorithms in FPGAs, and the projects have always been
cutting-edge enough that no sensible person (including me) wanted a
relative junior mucking about in the Verilog code.

Since I've started my business I have done two projects: one (Verilog)
because the customer knew me and I had just started freelancing, so I
gave him a deep discount over my usual rate to learn FPGA stuff; the
other (VHDL) because I developed a control algorithm for the customer,
and when they saw how well it worked, how complex it was, and how busy
they were they decided that it made sense for me to do the digital
design for it.

So I'm kind of a really, really good amateur at this.

</Disclaimer>

I just checked Xilinx development board prices on DigiKey -- they look
pretty reasonable. For that matter, I have a Spartan 3 development
board that I'd let go for a song -- but I wouldn't let you have the
download cable, and that's over half the value of the thing at this
point. You may want to check on eBay -- I bet there are obsolete devel
boards there, too, for cheap.

Xilinx ISE version 11.1 works fine on my installation of Ubuntu Lucid.
I had to build the driver for the old parallel cable I had lying around
from the last time that I did FPGA work, but my understanding is that
this isn't such an issue with the new USB cables.

Look to market share: I think Xilinx has the most parts out there,
Altera second, and everyone else third.

VHDL and Verilog are both about the same amount of effort to step up to,
but they definitely have different flavors. Designer's use of VHDL or
Verilog seems to vary by region -- Verilog came out of civilian practice
and is big on the west coast*, VHDL came out of military practice (it
intentionally inherits several features from ADA) and is big on the east
coast. I have no clue what you'd find in Detroit or Austin (or London),
etc..

So you may want to poll your local companies, to see what they use, and
let that guide your choice of language to learn. Whichever one you use,
keep in mind that the biggest thing you're doing is learning how to
envision a physical logic implementation in your head, then write it out
in textual form. That's going to be the same whether you do Verilog or
VHDL (or SystemC); the language itself is just a means to do the final
step, and isn't the most important part of the process.

* In spite of living on the west coast I think I prefer VHDL -- I can
certainly see that its easier to write well-structured code, even if my
current effort is a snarled-up mess.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" was written for you.
See details at http://www.wescottdesign.com/actfes/actfes.html
 
rupertlssmith@googlemail.com <rupertlssmith@googlemail.com> wrote:

I'm interested in learning more about FPGAs in a hands on way. Can
anyone recommend an inexpensive set of tools to get started with? My
wishlist is: I'd like to develop on Linux, I'd like to spend no more
than a few hundred $ on a starter kit, I'd like to learn using the
tools and up-to-date skills that are relevant to the more high end set
ups available.
There are many starter kit boards available. Both X and A have
free versions of the software to use with such boards (or separately).

Which is better to start with, Xilinx or Altera or something else?
Both work, some use one some the other.

Is there a choice between Verilog and VHDL to be made,
or can both be tried out just as easily?
If you have done digital logic design, even at the freshman
level wiring up TTL chips, you shouldn't have too hard a time
with either one.

As was suggested to me and I still believe, C programmers should
learn verilog, others might prefer VHDL.

Not that there is any connection between the languages, or in
the way there are used, but it is deeper than that. VHDL tends
to be wordy, where the same idea in verilog takes much less writing.

-- glen
 
On Tue, 17 Aug 2010 10:07:45 -0700 (PDT),
rupertlssmith@googlemail.com wrote:

I'm interested in learning more about FPGAs
Wow. I think this thread reminds me why it's still
kinda nice to hang out on comp.arch.fpga (and
comp.lang.vhdl, .verilog).

You get three seriously expert people, with distinctly
different viewpoints and distinctly different positions,
each giving a clearly expressed and nuanced take on
a bunch of issues (X vs A, Verilog vs VHDL) that
could so easily degenerate into a schoolyard scrap.

And the OP gets spot-on advice too.

Hard to beat. Thanks to all the contributors for
their time and their generously shared expertise.
--
Jonathan Bromley
 
On 08/17/2010 12:43 PM, Jonathan Bromley wrote:
On Tue, 17 Aug 2010 10:07:45 -0700 (PDT),
rupertlssmith@googlemail.com wrote:

I'm interested in learning more about FPGAs

Wow. I think this thread reminds me why it's still
kinda nice to hang out on comp.arch.fpga (and
comp.lang.vhdl, .verilog).

You get three seriously expert people, with distinctly
different viewpoints and distinctly different positions,
each giving a clearly expressed and nuanced take on
a bunch of issues (X vs A, Verilog vs VHDL) that
could so easily degenerate into a schoolyard scrap.
Schoolyard scrap? Oh dang -- I forgot that part!

YOU'RE ALL WRONG -- EVEN THAT WESCOTT GUY!

The _only_ language to use for HDL is SystemFourth! And the best logic
to put it onto is mine, if only those dingbat venture capitalists would
give me the time of day so I can start my company!

So there.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" was written for you.
See details at http://www.wescottdesign.com/actfes/actfes.html
 
On 08/17/2010 12:50 PM, Tim Wescott wrote:
On 08/17/2010 12:43 PM, Jonathan Bromley wrote:
On Tue, 17 Aug 2010 10:07:45 -0700 (PDT),
rupertlssmith@googlemail.com wrote:

I'm interested in learning more about FPGAs

Wow. I think this thread reminds me why it's still
kinda nice to hang out on comp.arch.fpga (and
comp.lang.vhdl, .verilog).

You get three seriously expert people, with distinctly
different viewpoints and distinctly different positions,
each giving a clearly expressed and nuanced take on
a bunch of issues (X vs A, Verilog vs VHDL) that
could so easily degenerate into a schoolyard scrap.

Schoolyard scrap? Oh dang -- I forgot that part!

YOU'RE ALL WRONG -- EVEN THAT WESCOTT GUY!

The _only_ language to use for HDL is SystemFourth! And the best logic
to put it onto is mine, if only those dingbat venture capitalists would
give me the time of day so I can start my company!

So there.
SystemCOBAL if it's for a bank teller machine, of course.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" was written for you.
See details at http://www.wescottdesign.com/actfes/actfes.html
 
On 8/17/2010 10:07 AM, rupertlssmith@googlemail.com wrote:

I'm interested in learning more about FPGAs in a hands on way. Can
anyone recommend an inexpensive set of tools to get started with? My
wishlist is: I'd like to develop on Linux, I'd like to spend no more
than a few hundred $ on a starter kit, I'd like to learn using the
tools and up-to-date skills that are relevant to the more high end set
ups available. Which is better to start with, Xilinx or Altera or
something else? Is there a choice between Verilog and VHDL to be made,
or can both be tried out just as easily?
https://www.altera.com/download/software/quartus-ii-we
is free and now has a usable version of modelsim for vhdl and verilog.

At the moment I am not too bothered about specific applications, just
if I can get some hands on experience, whatever i/o ports are
available on whatever board I use, I will think of some little project
to try out using them.
The quartus RTL viewer is an appropriate tool for learning to code RTL.
The modelsim editor is good for learning vhdl and verilog syntax,
even if you are not interested in simulation.

-- Mike Treseler
 
Hi,

I've recently started FPGA development after doing a little work with
CPLDs in 2007.

After much pondering, the set-up I plumped for the following, which
should not be considered a direct recommendation:

1. Xilinx Spartan 3A-DSP board (HW-SD1800A-DSP-SB-UNI-G)

Xilinx quote $600 for this, it set me back about 350 GBP in the UK. I
chose it primarily because I'm working in a DSP environment. Other
Spartan boards have more peripherals (keyboard support, USB, etc) but
fewer on-chip resources for around the same price.

Note that some boards have built-in USB programmers and others do not.
This one doesn't.

2. "PC-3 clone" parallel port programmer.

This was about 5 GBP from eBay and has the same schematic as Xilinx's
(obsolete) PC-3 programmer.

It needed electrical modifications to work with the development board's
2.5V JTAG interface. Nothing major -- just bypassing a diode here or
there and changing capacitor values to allow sufficient rise time to the
relatively high thresholds. It works pretty solidly now. Official
programmers are very expensive, but faster and better supported.

3. Xilinx ISE Webpack

This is a free and functional but somewhat crippled version of the ISE
suite. I have posted recently about the lack of regard Xilinx apparently
has for VHDL as a language and the workarounds and hacks that may be
necessary. I can't recommend ISE but I've not used any alternatives.

My own motivation was the Linux support which is, admittedly, quite good
and apparently lacking in Altera's offerings.

However, getting the programmer working required a third-party wrapper:

http://groups.google.com/group/comp.arch.fpga/msg/2dfa36541174a4f2

To clarify, by "crippled" I mean that device support is generally limited
to FPGAs found on pre-built demo boards. Also, the ISE simulator will
artificially slow itself down on larger designs which I have found pretty
annoying.

4. VHDL

My choice of VHDL was historical. The VHDL/Verilog debate (flamewar) is
covered thoroughly elsewhere. I came from a background of electronic
hardware design and assembler/C programming and I'm of the opinion that
VHDL's steeper learning curve is worth its subsequent flexibility.

Software suites generally support both anyway.



A hands-on approach is commendable but in my experience I'd had the board
for a couple of weeks before I was happy enough with the simulations to
start programming it. Factor this in if you begin to think about
potential applications -- particularly if requirements may change during
development.

In any event, good luck!


Andrew
0xADF
 
On 8/17/2010 1:07 PM, rupertlssmith@googlemail.com wrote:
Hi,

I'm interested in learning more about FPGAs in a hands on way. Can
anyone recommend an inexpensive set of tools to get started with? My
wishlist is: I'd like to develop on Linux, I'd like to spend no more
than a few hundred $ on a starter kit, I'd like to learn using the
tools and up-to-date skills that are relevant to the more high end set
ups available. Which is better to start with, Xilinx or Altera or
something else? Is there a choice between Verilog and VHDL to be made,
or can both be tried out just as easily?

At the moment I am not too bothered about specific applications, just
if I can get some hands on experience, whatever i/o ports are
available on whatever board I use, I will think of some little project
to try out using them.

Thanks for your recommendations.

Rupert
I'm pretty much a novice when it comes to the actual coding, but I've
been lurking around this group and looking into low end development kits
for some time now.

I'd say that you should take a good look at the Digilent web site
(www.digilentinc.com), they specialize in entry level kits and actually
designed more than one of the boards that have been offered by the big
guys. The "Nexys 2" board, for example, is only $129 and could keep you
busy with interesting projects for some time. And I think the
associated "Digital Design" book is worth the extra $50 for a beginner.
It starts out pretty slowly, but does get up to projects with modest
complexity by the end. It's available in both Verilog and VHDL flavors.

If you just want a minimum cost FPGA board with a bunch of I/O to play
with (but less hand-holding) look at Enterpoint's Craignell modules
(enterpoint.co.uk), Sparkfun's Break Out Board (www.sparkfun.com),
OHO-Elektronik's GODIL boards (www.oho-elektronik.de), KNJN's Pluto
boards (www.knjn.com), or terasIC's Max II Micro board
(www.terasic.com.tw/en/). The terasIC and KNJN boards are Altera, the
rest are Xilinx. The terasIC and the Nexys_2 are unique because they
don't need a separate programmer (well KNJN only needs a serial
adapter). In fact the terasIC board can even be used in place of an
Altera programmer to configure other boards.

Just some ideas for things to look at.

Chris Abele
 
On Wed, 18 Aug 2010 01:38:00 -0700 (PDT)
"rupertlssmith@googlemail.com" <rupertlssmith@googlemail.com> wrote:

On Aug 17, 8:43 pm, Jonathan Bromley <s...@oxfordbromley.plus.com
wrote:
On Tue, 17 Aug 2010 10:07:45 -0700 (PDT),

rupertlssm...@googlemail.com wrote:
I'm interested in learning more about FPGAs

Wow.  I think this thread reminds me why it's still
kinda nice to hang out on comp.arch.fpga (and
comp.lang.vhdl, .verilog).

You get three seriously expert people, with distinctly
different viewpoints and distinctly different positions,
each giving a clearly expressed and nuanced take on
a bunch of issues (X vs A, Verilog vs VHDL) that
could so easily degenerate into a schoolyard scrap.

And the OP gets spot-on advice too.

Hard to beat.  Thanks to all the contributors for
their time and their generously shared expertise.
--
Jonathan Bromley

Yes, some excellent advice, thanks very much.

I hadn't really appreciated that I can download Xilinx ISE or Altera
Quartus web editions for free and that both run on Linux. Also that I
can run simulations of designs without having a chip to program them
onto, so it looks like I can at least have a play around with the
basics at no cost at all.

Is a development environment like Xilinx ISE or Altera Quartus
necessary? or are there standalone Verilog or VHDL compilers available
that can be used? I'm a bit unclear as to the process of going from
the source code to writing the design onto the chip. The development
boards generally have an FPGA chip that is removable, and one removes
it and inserts it into a 'programmer' to burn in the design? or is the
FPGA chip fixed onto the dev board and gets programmed in place?
I can only speak for Xilinx, as I've never used Altera. I do use the
xilinx tools on linux exclusively, however.

The actual synthesis tools (xst, par, map, bitgen etc) can all be
driven from the command line, or even better, Makefiles. There is no
actual need to use the ISE environment, except possibly for simulations.
And simulations are better and faster done by modelsim in any case, but
that might cost money. There is also F/OSS simulation tools out there,
but I have very limited experience with them.
It might even be possible to Makefile up the ISE simulator, but I've
never tried. Modelsim spoiled me.

Our main projects are all straight Makefiles for building, but I
have recently had to use the ISE for a smaller project. It works well
enough for small code, especially since the GUI updates from 10.1 ->
12, but I would definitely bypass it if I didn't have to use it, as
there is a lot of overhead I'm not using / have substitutes for.

//Oscar
 
Is a development environment like Xilinx ISE or Altera Quartus
necessary? or are there standalone Verilog or VHDL compilers available
that can be used? I'm a bit unclear as to the process of going from
the source code to writing the design onto the chip. The development
boards generally have an FPGA chip that is removable, and one removes
it and inserts it into a 'programmer' to burn in the design? or is the
FPGA chip fixed onto the dev board and gets programmed in place?
There are two main processes involved with non trivial FPGA design.

1) Write HDL (VHDL if you've any sense :) ) and functionally simulate it.

This is the only way you're going to get a design of any reasonable
complexity to work. It involves writing a testbench 'wrapper' of HDL round the
module or complete design you've written, this drives inputs, can check
outputs etc. For a simple small module you might just check the outputs
manually, for a complex design some form of self checking is a good
idea.

It's a good idea to thoroughly check all sub modules before plugging them
together to form the top level design. You'll spend >>50% of your development
time writing and testing modules/the design (in my experience).

There is a subset of HDL that can be used when designing the FPGA itself,
synthesiseable code. However when writing the testbench you can use all
the constructs available so can read stimuli from text files, dump
results etc, it's much more flexible.

At a more system level Modelsim (one of the industry standards) has hooks
to allow things to be driven from C etc.

When you're convinced the design is functionally correct it's time for
stage 2....

2) Take the synthesiseable core that you've been testing and run it through
the vendor tools to generate a programming file. This is a completely
separate process to 1).

When you're starting the GUI is a sensible way to drive things. You can
use scripts eventually, but when you're searching for the syntax to apply
an IO standard to a pin it's all there in the GUI. If I have a lot of
similar pins I sometimes apply a constraint to 1 in the GUI then look
at the generated constraint files and repeat this where necessary.
Having said that Quartus has a pretty good Assignments editor where you
can drag assignments from one pin to multiple pins (as you copy formulae
in excel).

Being a satisfied mostly Altera user and reading of recent ISE problems I'd
recommend Altera tools to a beginner.

I hope this helps,


Nial
 
I forgot to say that to generate the programming files for your target
device you will need the vendors tools.

You can do your development in whatever text editing tool you want. I
use textpad with syntax highlighting with tools defined to do a
modelsim compile, grep a word in the current file and throw up a
list of all signals, entities or ports. I also have a perl script
written to generate testbench shells.

Emacs has a VHDL (and probably verilog) mode which does all of this
but I don't have enough knuckles to drive it.


Nial
 
On Aug 17, 8:43 pm, Jonathan Bromley <s...@oxfordbromley.plus.com>
wrote:
On Tue, 17 Aug 2010 10:07:45 -0700 (PDT),

rupertlssm...@googlemail.com wrote:
I'm interested in learning more about FPGAs

Wow.  I think this thread reminds me why it's still
kinda nice to hang out on comp.arch.fpga (and
comp.lang.vhdl, .verilog).

You get three seriously expert people, with distinctly
different viewpoints and distinctly different positions,
each giving a clearly expressed and nuanced take on
a bunch of issues (X vs A, Verilog vs VHDL) that
could so easily degenerate into a schoolyard scrap.

And the OP gets spot-on advice too.

Hard to beat.  Thanks to all the contributors for
their time and their generously shared expertise.
--
Jonathan Bromley
Yes, some excellent advice, thanks very much.

I hadn't really appreciated that I can download Xilinx ISE or Altera
Quartus web editions for free and that both run on Linux. Also that I
can run simulations of designs without having a chip to program them
onto, so it looks like I can at least have a play around with the
basics at no cost at all.

Is a development environment like Xilinx ISE or Altera Quartus
necessary? or are there standalone Verilog or VHDL compilers available
that can be used? I'm a bit unclear as to the process of going from
the source code to writing the design onto the chip. The development
boards generally have an FPGA chip that is removable, and one removes
it and inserts it into a 'programmer' to burn in the design? or is the
FPGA chip fixed onto the dev board and gets programmed in place?
 
I also notice that ModelSim does a free cut down
'student' version, which sounds like it will make a very good starting
point.
Altera (and probably the rest) have a free OEM download version.

This is speed crippled but is certainly good enough to get started with!


Nial.
 
If you just want a minimum cost FPGA board with a bunch of I/O to play
with (but less hand-holding) look at Enterpoint's Craignell modules
(enterpoint.co.uk), Sparkfun's Break Out Board (www.sparkfun.com),
OHO-Elektronik's GODIL boards (www.oho-elektronik.de), KNJN's Pluto
boards (www.knjn.com), or terasIC's Max II Micro board
(www.terasic.com.tw/en/).  The terasIC and KNJN boards are Altera, the
rest are Xilinx.  The terasIC and the Nexys_2 are unique because they
don't need a separate programmer (well KNJN only needs a serial
adapter).  In fact the terasIC board can even be used in place of an
Altera programmer to configure other boards.

Just some ideas for things to look at.

Chris Abele
terasIC's MAX boards have CPLD, not FPGA.
 
Is a development environment like Xilinx ISE or Altera Quartus
necessary? or are there standalone Verilog or VHDL compilers available
that can be used? I'm a bit unclear as to the process of going from
the source code to writing the design onto the chip. The development
boards generally have an FPGA chip that is removable, and one removes
it and inserts it into a 'programmer' to burn in the design? or is the
FPGA chip fixed onto the dev board and gets programmed in place?
FPGA is fixed to board and programmed in place. FPGA can be programmed
with either ISE or QUARTUS or another software provided from the
boards manufacturer.

There are programs you can simulate your HDL code. I don't know any
program other than ISE or QUARTUS that generates the programming files
for your FPGA.
 
Looks like its for genuine higher education use only, and possibly
only for windows. I'll try out the hardware vendors tools, and maybe
come back to modelsim later.
You'll need it to test your designs!

As above(/below) most of the vendors include an OEM version with their
downloadable tools.


Nial.
 
Hi,

I'm interested in learning more about FPGAs in a hands on way. Can
anyone recommend an inexpensive set of tools to get started with? My
wishlist is: I'd like to develop on Linux, I'd like to spend no more
than a few hundred $ on a starter kit, I'd like to learn using the
tools and up-to-date skills that are relevant to the more high end set
ups available. Which is better to start with, Xilinx or Altera or
something else? Is there a choice between Verilog and VHDL to be made,
or can both be tried out just as easily?

At the moment I am not too bothered about specific applications, just
if I can get some hands on experience, whatever i/o ports are
available on whatever board I use, I will think of some little project
to try out using them.

Thanks for your recommendations.

Rupert
Since you've seen the expert's replies, I'll weigh in from a similar
place to you (i.e. a newbie :)). I bought a Xylinx Spartan3 starter kit:

http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,799&Prod=S3BOARD

(although I spent the $50 to upgrade to the bigger FPGA so it was $15
instead o $109 plus a download cable) and a copy of Dr Chu's book (anothe
$100 :)) based on the reviews here:

http://www.fpgarelated.com/books/30.php

I have the VHDL one but there is one for verilog as well. Of especial not
is
that he includes a couple of simple test bench examples (and references t
more information on test benches) which is very helpful. The examples i
the book use the starter kit board for a variety of projects to teach hand
on and as a bonus there is a on the web (google will likely find it, th
url isn't to hand at the moment but I can dig it up if needed) a projec
that turns the starter kit in to a 32 channel 100 meg logic analyser so
expect it to have life after I've finished the book (one can never have to
many logic analysers in my view :)). As far as I can see the book cover
all of the common pitfalls that get pointed out in comp.arch.fpga as well.
There are other boards available from Digilent too and you may want t
have a look at

http://www.fpga4fun.com boards and good tutorial information
http://www.fpga-faq.com/FPGA_Boards.shtml a listing of many many de
boards
http://www.enterpoint.co.uk boards, and the only inexpensive Etherne
PHYs
that I'm aware of (only 10/100 but not $500 US either!)

if you are interested in host busses such as PCI or PCI-E (which you ma
not
be) that may influence what you buy. As well there are lots of open source
FPGA projects available on www.opencores.org. Hope this helps!

Peter Van Epp




---------------------------------------
Posted through http://www.FPGARelated.com
 
On Aug 18, 11:11 am, "Nial Stewart"
<nial*REMOVE_TH...@nialstewartdevelopments.co.uk> wrote:
Emacs has a VHDL (and probably verilog) mode which does all of this
but I don't have enough knuckles to drive it.
Thanks, this is good to know. I'm pretty comfortable in Emacs so I'll
try that out. I also notice that ModelSim does a free cut down
'student' version, which sounds like it will make a very good starting
point.
 
On Aug 18, 12:14 pm, "rupertlssm...@googlemail.com"
<rupertlssm...@googlemail.com> wrote:
Thanks, this is good to know. I'm pretty comfortable in Emacs so I'll
try that out. I also notice that ModelSim does a free cut down
'student' version, which sounds like it will make a very good starting
point.
Looks like its for genuine higher education use only, and possibly
only for windows. I'll try out the hardware vendors tools, and maybe
come back to modelsim later.
 

Welcome to EDABoard.com

Sponsor

Back
Top