[sdiy] FPGA Madness? (Was: NCO Jitter)
music.maker at gte.net
Sat Aug 4 06:38:36 CEST 2018
For what this is worth...
Some years ago, I used a Spartan-3E Starter Kit FPGA (I think 500K equiv gates) to
make a 4 NCO mono synth. The synth used naive "traditional" waveforms and did output
through the on board 12 bit DAC which ran at a max sample rate of 1 MHz. The synth's
clock was 50 MHz. It is a MIDI synth which responds to pitch bend. I never noticed
any aliasing with this synth, which I find easy to hear when bending a note's pitch.
The synth's sample rate was the max the DAC could handle, 1 MHz. It works very
well, but I'd be embarrassed to post the code because it is a horrible mess.
With today's FPGAs, this kind of thing should be rather easy IMO. For your idea, I
think the filter will be the part to spend the most care. In a different project
(really just an alias suppression experiment) I'd tried using a brick wall filter and
was rather unimpressed, but I did it the "wrong" way by making an FIR filter with a
huge kernel. The filter did the job to remove most of the alias artifacts, but it
did some weird frequency dependent amplitude things especially at the high end of the
audio spectrum. I later learned that it is better to use cascaded smaller kernel
filters, but I never figured out exactly how to do that.
So much for my cursory experiment in using naive waveform NCOs, but it did teach me
that using a high sample rate DAC makes it a whole lot easier.
Tim Ressel <timr at circuitabbey.com> wrote:
>I have a design for a complex VCO that will include 9 NCOs. While the
>polyBlep stuff looks interesting, I am wondering if I can pull it off
>with an FPGA. So the 9 NCOs would run at a high rate, say 2MHz. Then
>they get mixed, filtered, and downsampled to about 50KHz. The filter is
>the part I am not sure of, but its been done before so it is just a
>matter of working it out.
>I figure by the time I get a processor powerful enough to do this, and
>FPGA is cheaper maybe?
>Am I more out of my mind than usual?
>timr at circuitabbey.com
>Synth-diy mailing list
>Synth-diy at synth-diy.org
-- Scott Gravenhorst
-- When the going gets tough, the tough use the command line.
-- Matt 21:22
More information about the Synth-diy