[Fpga-synth] Modular approach
Eric Brombaugh
ebrombaugh1 at cox.net
Sat Jan 24 07:04:25 CET 2009
On Jan 23, 2009, at 7:50 PM, Veronica Merryfield wrote:
> One way to implement a software based modular, the Nord being the
> starting point for the discussion, would be to have a list of
> elements where each element is a structure that contains an ID for
> the processing element to be used, pointer to inputs (audio and
> control), outputs (for the pointer to pointer too) and element
> storage, parameters and so on. The processing is simply to run down
> the list passing a pointer to the entry to the processing element. A
> configuration editor would create the list being separated from the
> software creation task.
>
> Over the last few days I have been trying to conceive an FPGA based
> equivalent. The above processing method does not lend itself to FPGA
> deployment but as yet I can not really see an FPGA version.
Sounds like a useful and interesting concept. I agree that figuring
out how to implement this in an FPGA will be a challenge without
requiring resynthesis of the FPGA design.
> I would appreciate some input. I like the concept of processing
> elements that get implemented once and used a number of times,
> configured at runtime rather than at build time. Perhaps this
> concept is not really suited to FPGAs.
I've got a few notions about how that might work:
* fine-grained modules. This would require lots of little/simple
functional blocks. Some sort of crossbar switch to link them together
in the right order at runtime. Setup consists of configuring the
modules and crossbar. Limitation is that you can't get a lot of
functionality into any one module - complex stuff like filters would
eat up lots of modules.
* Coarse / high function processing chain. This would have a limited
number of highly configurable blocks in a processing chain. The
challenge hear would be coming up with the architecture of the
functional block such that it could handle the most possible variety
of synth applications. This could work out very nicely on some of the
newer FPGA families like Virtex4/5 or Spartan3A-DSP where a lot of
interesting high-function blocks could be built with a single DSP48 +
BRAM.
* Reconfiguration with macros. This would use recently introduced run-
time reconfiguration features of modern FPGAs and relationally-place
and/or hard macro to pre-allocate chunks of logic into the FPGA and
drop them in place real-time. Difficulty here is that this is using
new/untested features of the technologies and would need some fairly
complex FPGA configuration software.
Other ideas?
> Veronica in foggy Port Alberni, 0ºC
Brrr!
Eric in Phoenix, 78ºF today
More information about the Fpga-synth
mailing list