[sdiy] Re: FPGA 2-OP FM MIDI Polysynth

Scott Gravenhorst music.maker at gte.net
Mon May 4 00:42:05 CEST 2009

Rainer Buchty <rainer at buchty.net> wrote:
>On Sun, 3 May 2009, Scott Gravenhorst wrote:
>> May I ask where I can learn about how they did this without a hardware 
>> multiplier?  From my FM-very-neophyte point of view, it was 
>> intuitively obvious how to implement FM _with_ fast hardware 
>> multipliers - but without?  yikes.  heh heh, and there are a pile of 
>> unused hardware multipliers still available in this FPGA.
>Naively: whereever you have A*B you go for exp(log(a)+log(b)), i.e. you 
>replace a multiplication by 3 table lookups and an addition.

Ah.  There's a bunch of tables, there's a log(sin(alpha)) table and a log(n) table as

>> The thing is, with this FPGA, the mulpliers are _dedicated_ hardware 
>> and exist whether you use them or not (well, if you use a block RAM, 
>> you can't use the associated multiplier).
>Yes, but only in 17x17 signed. If you want to go for 24- or 32-bit 
>audio, then you need to cascade/shift/add individual multipliers. For 
>the log/exp scenario it's just more memory.

This synth uses no more than 17x17 signed, and IMO doesn't seem to suffer from it.

35x35 signed combinatorial multipliers in this category of FPGA can still run at 50 MHz.

>Actually, I love this discussion, as I so completely overlooked this 
>property of log()... 

I completely agree - and I grew up when in highschool, we were allowed a slide rule
and/or a book of log/antilog tables in science class.  In fact, I preferred using
log/antilog tables instead of the slide rule for some calculations.

>We're currently designing a precise FPU for our 
>numerics department which doesn't show error accumulation like 
>conventional FPUs do -- so basically we're mapping single and double 
>precision FP math to 2's complement computation with insanely large 
>Where DSP48 macros become a bottleneck...

Wow.  Well, I've not even really abused or even used the DSP48 hardware I have...

-- ScottG
-- Scott Gravenhorst
-- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/
-- FatMan: home1.gte.net/res0658s/fatman/
-- NonFatMan: home1.gte.net/res0658s/electronics/
-- When the going gets tough, the tough use the command line.

More information about the Synth-diy mailing list