Reply by Jim Granville●February 13, 20082008-02-13
everphilski@gmail.com wrote:
> Rob,
>
> On Feb 13, 4:18 am, Rob <BertyBoos...@googlemail.com> wrote:
>
>>>Xilinx's FireBlaze processor simulation on a FPGA.
>>
>>Do you mean Xilinx's MicroBlaze processor? If so, note that this is a
>>general purpose CPU with a fairly average MIPs spec. You'd easily be
>>able to get comparable or better performance with an off the shelf
>>microprocessor -and without all the headaches!
>
>
> Yes, I meant MicroBlaze, thanks for catching the typo. This is good,
> so you are saying you would prefer working with a discrete
> microcontroller interfaced to a FPGA, instead of a FPGA with a
> MicroBlaze (or other core) onboard?
PFGA+MicroBlaze lacks code memory, so that's a significant cost.
Generally, if you can find a single chip uC that will fit your task,
you get the EMC & reliability benefits of on-chip memory, and
also (probably) get to use a smaller/cheaper FPGA+LoaderPROM
A good topical example of a companion processor for FPGA,
would be the Atmel AT91SAM9XE series. 200+ MIPS, from 128 bit wide
flash, and $7.30/10K, with 128/256/512K FLASH.
Plus all this fruit:
[USB 2.0 Full Speed Host and Device Ports, an Ethernet 10/100 Base-T MAC
as well as a two-slot Multimedia Card Interface (SDCard/SDIO and
MultiMediaCard Compliant), a Synchronous Serial Controller (SSC), four
USARTs, two master/slave Serial Peripheral Interfaces (SPI), a debug
UART and two Two Wire Interfaces (TWI).]
If you need megabytes of code, then the balance tips back a little.
-jg
> Could I get you to expand on the difference between "DSP hardware" and
> "FPGA" in this context? My (albeit new) understanding was, DSP
> techniques were implemented on FPGA hardware to do digital signal
> processing.
Well, first of all, DSP is probably the topic of yours that I know the
least about so take anything I say with a couple grains of salt.
When I personally think DSP, what comes to mind are things like the
TI DSP processors which were/are more like general purpose CPUs with
an emphasis on high-speed fixed- or floating-point math rather than
being a general purpose "sea of gates" as an FPGA is. TI has some
introductory info here it looks like:
http://focus.ti.com/dsp/docs/dspsupporto.tsp?sectionId=4&tabId=1443
Modern FPGAs have some of the basic building blocks (interger multiply
units, etc.) that make it possible to do traditional DSP processing,
but you're still mostly building up a machine from scratch to do what
you want rather than just writing a program to express an algorithm.
I don't think it's always easy to answer the question of what should
be done in hardware versus software. Often there are techniques to
do it either way, and the background of the particular designer tends
to tilt the decision more than anything else.
FPGAs are incredibly cool. They're great when you need boatloads of
exotic I/Os, extreme parallelism, and complete flexibility. They don't
make great general purpose CPUs usually. From a software point of view
they're again the most flexible but probably also the most complex.
From a hardware point of view they're pretty much all cutting-edge
technology and none of their design is there to make the life of a
hobbyist easy, so building your own FPGA-based hardware designs is
pretty complex. Fortunately there are lots of inexpensive boards
you can buy to experiment with.
If you pick up an FPGA board to play with and spend some time with
it then I don't think you'll regret that learning experience at all.
Whether at the end you decide that the FPGA route is your best one
for implementing the things you want to do is something you'll only
know once you get there.
G.
Reply by Jonathan Bromley●February 13, 20082008-02-13
On Wed, 13 Feb 2008 07:56:57 -0800 (PST), everphilski wrote:
>> For robotics I think you're better off in the microcontroller realm,
>> with something like your Amtel AVR or a Parallax Propeller that will
>> easily interface with all kinds of easily available and relatively
>> inexpensive modules (www.sparkfun.comkinda stuff). I think of
>> robotics more as a system integration problem.
>>
>
>I'd tend to agree with you, it's an integration problem. I was trying,
>I guess, to come up with a good excuse to learn FPGA's and then DSP
>techniques.
Depending on what sort of hardware you expect to have for
your robotics, FPGAs can actually be pretty neat for the
very low-level interfacing stuff. Standard mechatronics
functions such as quadrature-encoder counters, PWM motor
drivers and so forth go nicely into FPGAs, and the digital
design is relatively straightforward so you can concentrate
on the FPGA-specific aspects. Because you have an FPGA to
play in, you're not locked to the limitations of software
(response speed? time resolution?) and you're not limited
by what a specific device manufacturer chooses to build
and sell - so, for example, it's easy to make encoder
counters that automatically latch the count value at the
moment of an index pulse, so that your s/w can interrogate
that latched value at leisure; encoder counters with some
built-in timed interpolation or velocity measurement;
unusual PWM structures to meet specialised needs;
programmable triggering of external outputs when an
axis reaches a preset position... Lots of stuff like
that, which is tiresome to do in software - and probably
near-impossible to do with microsecond time resolution.
In some ways it's a waste of an FPGA, but hey, the thing
is sitting there waiting for you to do something with it...
Just don't forget to think about the electrical robustness
of connections to the FPGAs. Modern FPGAs have fairly
feeble I/O structures [*] working at 3V or less, and they
don't take kindly either to >5V external connections, or
to the kind of unpleasant electromagnetic crud that
tends to come for free with anything electromechanical.
Much care with level shifters, buffers and snubber
circuitry is needed to protect your FPGA investment.
The nice folk at sci.electronics.design will likely be
pretty helpful about that sort of thing, and will be
up-to-date with what's available to make it easier.
[*] Feeble by the standards of industrial automation.
No slight on the FPGA manufacturers intended!
--
Jonathan Bromley, Consultant
DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services
Doulos Ltd., 22 Market Place, Ringwood, BH24 1AW, UK
jonathan.bromley@MYCOMPANY.com
http://www.MYCOMPANY.com
The contents of this message may contain personal views which
are not the views of Doulos Ltd., unless specifically stated.
Reply by ever...@gmail.com●February 13, 20082008-02-13
Gavin,
On Feb 12, 7:18 pm, ga...@allegro.com (Gavin Scott) wrote:
> everphil...@gmail.com <everphil...@gmail.com> wrote:
> > I'm interested in learning more about DSP's and actually getting my
> > feet wet with DSP hardware. I have three primary interests:
> > 1) robotics
>
> For robotics I think you're better off in the microcontroller realm,
> with something like your Amtel AVR or a Parallax Propeller that will
> easily interface with all kinds of easily available and relatively
> inexpensive modules (www.sparkfun.comkinda stuff). I think of
> robotics more as a system integration problem.
>
I'd tend to agree with you, it's an integration problem. I was trying,
I guess, to come up with a good excuse to learn FPGA's and then DSP
techniques. I have a lot of ideas, but robotics is something I
actually have practical experience in so I figured I could sub out the
FPGA for the AVR/MC68HC11/PIC's I've used in the past as a learning
experience, before going on to other projects like vision processing
and radio processing where I know very little and I'd have to learn
more than just the FPGA design aspects. That was my thought.
> > 3) software defined radios.
>
> For SDR maybe some DSP hardware (or FPGA maybe, though I'm not sure
> how much fun doing serious DSP in a Spartan 3 would really be) probably
> makes sense. I think there might be a few reasonably priced
> experimenter's boards out there.
>
Could I get you to expand on the difference between "DSP hardware" and
"FPGA" in this context? My (albeit new) understanding was, DSP
techniques were implemented on FPGA hardware to do digital signal
processing. Or are you talking about a chip tailored specifically to
audio processing versus a general purpose FPGA?
> FPGAs are pretty cool, especially the "hardware becomes software" aspect
> which is quite appealing to those of us with more of a software
> background, but they're also very complex so if you're really interested
> in learning to design for FPGAs (programming in VHDL/Verilog etc.)
> then great, but if you're more interested in the applications than
> in the technology then something less generic and more specific to
> the problem you're trying to solve might greatly simplify things.
>
I am interested in learning. I do have experiance with various
microcontrollers and I write various simulations/data reduction codes
at work, but nothing in real time like a DSP would perform. It kind of
sounds like fun.
> Just my random thoughts.
>
I do appreciate them, thank you.
> G.
Philip
Reply by ever...@gmail.com●February 13, 20082008-02-13
Rob,
On Feb 13, 4:18 am, Rob <BertyBoos...@googlemail.com> wrote:
> > Xilinx's FireBlaze processor simulation on a FPGA.
>
> Do you mean Xilinx's MicroBlaze processor? If so, note that this is a
> general purpose CPU with a fairly average MIPs spec. You'd easily be
> able to get comparable or better performance with an off the shelf
> microprocessor -and without all the headaches!
Yes, I meant MicroBlaze, thanks for catching the typo. This is good,
so you are saying you would prefer working with a discrete
microcontroller interfaced to a FPGA, instead of a FPGA with a
MicroBlaze (or other core) onboard?
Thanks,
Philip
Reply by Rob●February 13, 20082008-02-13
> Xilinx's FireBlaze processor simulation on a FPGA.
Do you mean Xilinx's MicroBlaze processor? If so, note that this is a
general purpose CPU with a fairly average MIPs spec. You'd easily be
able to get comparable or better performance with an off the shelf
microprocessor -and without all the headaches!
Reply by Martin Thompson●February 13, 20082008-02-13
gavin@allegro.com (Gavin Scott) writes:
> everphilski@gmail.com <everphilski@gmail.com> wrote:
>> I'm interested in learning more about DSP's and actually getting my
>> feet wet with DSP hardware. I have three primary interests:
>
>> 1) robotics
>
> For robotics I think you're better off in the microcontroller realm,
> with something like your Amtel AVR or a Parallax Propeller that will
> easily interface with all kinds of easily available and relatively
> inexpensive modules (www.sparkfun.com kinda stuff). I think of
> robotics more as a system integration problem.
The Propeller is interesting, it'll certainly get you thinking
parallel which will stand you in good stead for FPGAs (and for future
processors!)
>
>> 2) computer vision
>
> Machine vision is pretty much entirely a software issue I think,
You may think so - I'd disagree! Machine vision is an *algorithms*
thing. Algorithms are often easiest to prototype in SW at a desk with
a webcam, but if you want to make them run "standalone" then
targetting an FPGA for the highly parallel parts makes a lot of
sense. Of course, to do that successfully, you have to build your
algorithms with FPGAs in mind - and to do that, you have to have tried
to implement some already :-)
> so if you want to learn about it, I'd consider starting with a PC
> and a $20 webcam and the free programming language of your choice
> along with a book or two on the subject.
Agreed! But if you *ever* want it to run outside of a PC, run around
the loop of "taking the algorithms into embedded hardware and changing
them to suit" early and lots of times. You'll learn more that way.
>> My second question is, what is the best way to start learning? In
>> doing reading I see the Spartan 3E evaluation board seems to be highly
>> recommended. The board looks neat, I'm just curious what the best way
>> to learn is.
>
> The Spartan 3 starter board is fine (I have one), but to get started
> and get a feel for things you can start by downloading the free ISE
> WebPack software from Xilinx to see what the development process looks
> like for their FPGAs. You can design/code, build and simulate all
> without actually having any actual hardware.
Yeah, but it's much more fun when you can see that LED flashing like
you told it to instead of a wiggly waveform on screen :-)
Cheers,
Martin
--
martin.j.thompson@trw.com
TRW Conekt - Consultancy in Engineering, Knowledge and Technology
http://www.conekt.net/electronics.html
> I'm interested in learning more about DSP's and actually getting my
> feet wet with DSP hardware. I have three primary interests:
> 1) robotics
For robotics I think you're better off in the microcontroller realm,
with something like your Amtel AVR or a Parallax Propeller that will
easily interface with all kinds of easily available and relatively
inexpensive modules (www.sparkfun.com kinda stuff). I think of
robotics more as a system integration problem.
> 2) computer vision
Machine vision is pretty much entirely a software issue I think, so
if you want to learn about it, I'd consider starting with a PC and a
$20 webcam and the free programming language of your choice along
with a book or two on the subject. Learning how to design a solution
and implementing that solution in something like an FPGA are probably
quite different tasks, and I'd be afraid of drowning in the details
of implementation while trying to learn how to design what you want.
> 3) software defined radios.
For SDR maybe some DSP hardware (or FPGA maybe, though I'm not sure
how much fun doing serious DSP in a Spartan 3 would really be) probably
makes sense. I think there might be a few reasonably priced
experimenter's boards out there.
> My second question is, what is the best way to start learning? In
> doing reading I see the Spartan 3E evaluation board seems to be highly
> recommended. The board looks neat, I'm just curious what the best way
> to learn is.
The Spartan 3 starter board is fine (I have one), but to get started
and get a feel for things you can start by downloading the free ISE
WebPack software from Xilinx to see what the development process looks
like for their FPGAs. You can design/code, build and simulate all
without actually having any actual hardware.
FPGAs are pretty cool, especially the "hardware becomes software" aspect
which is quite appealing to those of us with more of a software
background, but they're also very complex so if you're really interested
in learning to design for FPGAs (programming in VHDL/Verilog etc.)
then great, but if you're more interested in the applications than
in the technology then something less generic and more specific to
the problem you're trying to solve might greatly simplify things.
Just my random thoughts.
G.
Reply by MM●February 12, 20082008-02-12
<everphilski@gmail.com> wrote in message
news:80dca10c-c80d-4fa2-9ed5-0ba73bc161fa@s37g2000prg.googlegroups.com...
>
> I'm wondering if it would be more practical to build robotics around the
> FPGA from square one and start learning now. It seems like you can do
> just about anything with FPGA's (with some tradeoffs of course)
I think it depends on whether your goal is to build a robot or to learn
something completely new and not much related to robots. Yes, you can do
many different things with FPGAs, but if you want to build a robot soon
choose the path you already know...
/Mikhail
Reply by ●February 12, 20082008-02-12
>...what is the best way to start learning? In
>...I'm just curious what the best way to learn is.
>
> I'm doing this as a hobby...a mechanical engineer by trade.
>I've been programming C/C++ for 10 years...
>"I know enough to be dangerous". :)
There's no "royal road" to learning. If you're a genius then you can
maybe learn just by reading textbooks. For the rest of us, just start
anywhere and see where it takes you. Doing this as a hobby gives you
the luxury of taking any road you fancy, but omits the discipline of a
goal you can't change. My own preference is for that unyielding
target, but that may not be best for everyone.
If you're very rich then send yourself on training courses, but you'll
still have to put in hard work and late nights to become competent.
The first step to that competence is knowing that you know enough to
be dangerous. This puts you ahead of many who, after ten years of
"professional" work don't realise that they're still dangerous.
Mike