[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