[Fpga-synth] Using Actel Fusion FPGA's to emulate Curtis chips?
Eric Brombaugh
ebrombaugh1 at cox.net
Sun Jan 4 18:28:00 CET 2009
Joe Rounceville wrote:
> I'm new to this list, and a complete newbie to FPGAs
Welcome to the list!
> As you probably know, the Curtis CEM chip series has become increasingly
> NLA
> So, here's the million dollar question. First, would it be possible to
> reverse engineer these:
>
> http://www.synthtech.com/cem/cemdata.html
>
> using the Actel Fusion hybrid digital/analog FPGAs, and end up with
> something that was plug compatible with say the CEM3310, CEM3340,
> CEM3391, etc. chips?
Short answer: No.
For the long answer, let's look first at what the CEMs are: They're
designed at the device level (transistors, resistors, etc) on a custom
analog array. No digital logic, no Flash, PLLs, CPUs, ADCs, DACs, etc.
The Actel Fusion family of parts is essentially a flash FPGA with a bit
of analog I/O tacked on. The analog functions of these parts are really
geared towards data acquisition - hence the focus on ADCs. There's
enough pure analog on-chip to do simple stuff like muxing and gain
adjust, but the bulk of the silicon is still devoted to traditional
digital stuff.
So, there's really not a good match between the underlying structure of
a CEM and the Actel parts. The closest you might come would be trying to
model the CEM parts algorithmically, but then you'd be better off just
using a virtual synth on a cheap PC. The reason people love CEM chips is
because of the way they sound, and creating an accurate digital model of
their complex analog behavior would require skills and research that
could take literally years.
There's also the physical-compatibility issue - no way you're going to
get an Actel part into a 14-pin 300mil DIP socket...
> the corollary question is: "What is the relative
> difficulty of doing something like that?"
> Let's say I wanted to start with the CEM3340 (VCO)... where
> would I start?
Assuming you understand that to do this with an Actel Fusion you need to
build a digital model, I'd start by setting the target hardware aside
for a moment. First you need to learn DSP - how to build a digital model
of an oscillator. Read up on the state of the art in analog modeling,
band-limited oscillator design (BLITs, BLEPs, DPW, etc), get to know the
name Julius Orion Smith, learn what CCRMA stands for. Then start writing
code. You have a background in software so start writing simple
algorithms and listening to the results. When you've got something that
sounds good, dig out the Actel documentation and see how you can map
your shiny new algorithm onto the hardware they provide. At this point
you'll probably need to revise it somewhat to fit into the limited
resources available, so scrunch it down, cut a few corners, test it out.
Does it still sound good?
Now that you've got an oscillator running in a Fusion part, try to
figure out how to run that high-performance digital BGA from the power
supplies and I/O signals available in a CEM3340 socket. Whoops! The CEM
only draws a few mA and your digital substitute takes 10-100x that much.
Back to the drawing board.
The simple fact is that FPGAs and MCUs of any kind are not an answer to
the question of how to build a CEM substitute. To make a pin and system
compatible replacement for these parts you need to approach the problem
the same way that Curtis did - using bipolar transistors. That can still
be done today, but learning the skills required and financing the
project far outweigh the possible returns. That's why cannibalizing old
synths is more practical.
On the other hand, if you just want to make a cool synthesizer from
scratch using an Actel Fusion, we're talking about a neat project.
That's the kind of thing you can get some help with on this list.
Best of luck!
Eric
More information about the Fpga-synth
mailing list