[LAU] zedboard fpga dev board and linux audio

Simon Wise simonzwise at gmail.com
Fri Feb 1 16:41:34 UTC 2013


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


More information about the Linux-audio-user mailing list