[Fpga-synth] ARM FPGA Audio board assembled, test code working

Eric Brombaugh ebrombaugh1 at cox.net
Wed Mar 4 15:47:31 CET 2009


On Mar 4, 2009, at 3:47 AM, Theo Verelst wrote:

> With some interest I've read about a handful of designs on this  
> channel,
> I notice you've used a microcontroller: is there a reason for this,  
> like
> being used to it, I mean, an FPGA can hold one easily (albeit some are
> licensed) or you could use a more powerful device like a DSP or  
> maybe an
> OMAP (combined dsp/mc) while you're at it anyhow to make a small track
> PCB?

Good question!

The reasons behind the microcontroller choice on this board are:

* I'm familiar with ARM processors.
* This ARM processor has USB on-chip while most other DSP processors  
(dsPIC, etc) don't.
* Development tools are free, cross-platform (Mac, Win, Linux) & open  
source.
* USB and SD flash driver code is free & well tested.
* Soft microcontrollers use up a _lot_ of FPGA resources. In order to  
fit a microblaze into this design I'd have to go to a larger FPGA  
which would be more expensive than adding the external ARM processor  
and still wouldn't have had USB. Picoblaze processor would fit better,  
but doesn't have as much I/O, processing power or good development  
tools. Other open-source soft processors are too new, also large &  
have untested development tools
* OMAP is attractive, but is only available in DIY-hostile fine-pitch  
BGA packages. I might consider something like a daughter card for a  
Beagle board, but that raises the cost of entry considerably since a  
Beagle board is $150. without the daughter board. This stand-alone  
board can be built for around $120 in parts & PCB.

I could have used other ARM processors with USB, such as the Atmel  
SAM7 parts which are almost as capable and somewhat less expensive,  
but the LPC214x parts already had some good driver code & tested  
examples.

> I've a combined Spartan-3 + Analog Devices DSP board design lying  
> around
> already for years which can transfer up to 40 Megabytes/Sec over a  
> self
> made bus connection from a dual core Blackfin (500 MHz) to a Xilinx  
> FPGA
> with a number of memory mapped direct communication registers. Would
> that be an interesting contstruction to use as audio/synthesizer
> processing basis? The DSP development boards have excellent 24 but  
> AD/DA
> converters, and I've well working synthesizer code with midi input
> running on a simular DSP (same C development env) based on fast DSP
> interupt routine simulating an analog synthesizer, which currently
> interfaces with a CPLD (a small size programmable logic option), this
> could easily be exchanged with a spartan board I have, or I could  
> make a
> new setup where most processing happens on the FPGA (like the Digilent
> spartan 3e board Scott Gravenhorst uses, too) and let the DSP do only
> some hard things like computing sines and division in C and DA (and AD
> as I use for effects) too.

Sounds like an interesting setup. You should design a system around it  
and publish it on your website. Diversity is a good thing!

> When making an FPGA synthesizer I suppose it is important to have an
> idea of what type of synthesis is happening on it, what are you  
> planning
> to use as synthesis method? Virtual analog, FM, sampling, a hybrid  
> form,
> wavetable, additive, or ..?

I've noted a few possibilities on the web page for this project. Note  
that this uses a full codec, so all of the things you mention can be  
done, as well as others. There are a number of things I want to try,  
but wavetable, granular, FM, formant, vocoders, samplers, delay lines,  
are all on my wish list.

Eric



More information about the Fpga-synth mailing list