Re: [LAU] zedboard fpga dev board and linux audio

From: Simon Wise <simonzwise@email-addr-hidden>
Date: Fri Feb 01 2013 - 18:41:34 EET

On 01/02/13 06:22, Len Ovens wrote:
>
> On Thu, January 31, 2013 9:42 am, Kelly Hirai wrote:
>> im wondering if anyone has played with these and what kind of
>> performance they might expect.
>>
>> http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1028&Prod=ZEDBOARD&CFID=412288&CFTOKEN=58875851
>>
>> assuming nothing breaks this year, it might be in the budget
>
> Looks interesting. What are you going to try to do with it? Should make a
> nifty portable audio recorder. Should be able to be used as an ether net
> sound card. I don't know how well it would work as a guitar effects box or
> synth (hmm no midi in). It is meant to be a note pad. The thing you can't
> tell from the write up is if there is any hardware that would interfere
> with low latency audio. My netbook has that problem with the wireless
> chip. I can have low latency audio or wireless, but not both.

It is certainly nothing like a note pad, it is an evaluation board with a chip
with programmable logic, designed for embedded systems:

http://en.wikipedia.org/wiki/Field-programmable_gate_array

The chip also has an ARM CPU and various other sections as well, and it is
mounted on an evaluation board that has the output pins wired up to some RAM, an
SD card, a Gbit ethernet controller and various other useful things. The
software required to program it is included (it has linux versions). If you want
to explore FPGA logic programming it could be really interesting. For example
seeing what you could do with a 5Mhz bitstream audio output into a very simple
digital amp circuit, or for various DIY interfaces through the GPIO ports. For a
few more $$ there is a pack of 15 cards that plug into those GPIO ports,
including some ADC/DAC stuff. There seem to be some interesting high speed
connection pins also. Being able to program the logic circuits and implement
things on that level allows very different kinds of approaches. Perhaps many
channels of audio output using bitstreams and fairly simple amplifier circuits
which could then be used with the Gbit ethernet to provide an interesting sound
output device. Just playing with ideas here.

Their other FPGA models without the fixed CPU etc might be interesting as well,
you can program a CPU in them if you want, though it won't be as fast as one
with fixed logic it is certainly more flexible if you don't need much in the way
of a CPU. This kit is half the price of the one above:

http://www.xilinx.com/products/boards-and-kits/HW-SPAR3A-SK-UNI-G.htm

There are open source hardware designs that can be put into these FPGAs as well
... look at:

http://opencores.org/

There is another hybrid approach to programmable logic plus a CPU that may be a
much more natural fit with audio DSP programming ...

http://www.stretchinc.com/products/s7000.php

here the idea is that the programmable logic is integrated with the CPU via 32
128-bit registers so that the logic part can be programmed as custom
instructions which are run in the CPUs instruction pipeline. This is quite
different to the Zedboard approach which puts the programmable logic more as
peripheral devices to the CPU. The Stretch seems reasonably mature, it is the
third generation since the original version (in 2004, with PPC CPUs instead of
ARM ones). FPGAs have been around for a very long time, but it seems only
recently got more useful or at least sellable.

The big selling point for Stretch on their website is that their compiler will
compile functions written in C or C++ into their programmable logic that can
then be run as single (big) instructions in the CPU. Also it seems the logic
section has somewhat larger units of logic ... in the Zedboard you have a large
array of 4-bit look up tables and sets of 4000-bit ram modules, connectible to
very configurable GPIO pins while in the Stretch they seem to have adders and
multipliers and so forth (probably much more useful in the context of compiling
code written as a function in a procedural language). No need to learn one of
the hardware logic languages, if the compiler is good enough to do that for you.
 From the site it seems they have done quite interesting things with video
codecs, image recognition and such like. The logic part can be reset in 100
microseconds, so for audio use that is only about a 5 sample wait for a new set
of CPU instructions to be loaded. Potentially very interesting.

Simon
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Fri Feb 1 20:15:02 2013

This archive was generated by hypermail 2.1.8 : Fri Feb 01 2013 - 20:15:02 EET