I had spent several years using FPGAs for DSP.  Several MIDI synthesizers 
written in Verilog came
out of that.  Xilinx was my preference.  Back in those days, I used what would 
be considered a
"small" FPGA (500,000 equivalent gates) and got a minimum of 8 voices of 
polyphony, so with
today's much larger and faster FPGAs, the sky is the limit.

An FPGA is a logic device.  That is, it's internal bits and pieces amount to a 
collection of
logic blocks that you can connect as you like.  Also included are fast 
multiplier blocks (the
more the better).  So it is good to have a complete understanding of how all of 
the basic logic
functions work from AND/OR/XOR/Invert to flipflops to adders and multipliers.  
I never had much
use for C to FPGA since it will only do what the compiler is "trained" to do.  
There are times
when an intimate knowledge of logic can provide a unique solution that the 
compiler might not.  A
good deal of what is in a synthesizer amounts to a state machine or several 
state machines which
can be written in C or an HDL.  To my way of thinking, if you want to use C, 
then a
microprocessor might serve better (realistically, less messing around) given 
the project can fit
within the memory and clock speed of the chosen device.

Ultimately, I eventually came back around to ARM chips (and yes, C).  This 
world is less
expensive and requires less support circuitry than an FPGA.  The ARM contains 
the program in
internal Flash while the FPGA needs an external Flash RAM and a CPLD that can 
shovel the data
into the FPGA at power on.  

My opinion here is that FPGAs are very powerful tools, but these days might be 
considered
overkill for a 32 voice polysynth unless you've coded up a large collection of 
some truly unique
features.  FPGAs also have a rather steep learning curve (and that is not meant 
to discourage
you).  If the project you plan is huge, an FPGA could easily be appropriate.  
But for what I was
doing (32 to 64 voice polysynths), they were just more work and expense than I 
felt was justified.

Given you already know the C language, have you looked at ARMs such as STM32H7 
series for doing
DSP work?  They do have FPU hardware inside that works on both float and double 
types as well as
having DSP instructions (such as multiply and accumulate).

Again, this post is not to dissuade you from learning FPGA, it is to encourage 
you to look at
your project's size and scope and make a good decision about the hardware to 
use.

-- ScottG

music-dsp@music.columbia.edu wrote:
>P.S. On the topic of using FPGA's to implement lookup tables, I 
>discovered the following Hacakday article.  Fortunately it simply  in my 
>email inbox, about an hour or two, ago:
>
>https://hackaday.com/2020/01/10/using-lookup-tables-to-make-the-impossible-possible/
>
>If you thought Theo's message was interesting then I recommend doing a 
>deep dive into this article too.  For me it is (also) wonderfully 
>illuminating.
>
>
>On 10/01/2020 11:48, Andrew Luke Nesbit wrote:
>> On 10/01/2020 10:18, Theo Verelst wrote:
>>> Hi all
>> 
>> Hi Theo,
>> 
>>> Maybe it's not everybody's cup of tea, but I recall some here are
>>> (like me) interested in music applications of FPGA based signal
>>> processing.
>> Lately I have been researching exactly this topic.  It's one of the 
>> primary areas of DSP research that I am considering directing my career 
>> towards and making a significant investment of resources in learning.site
>> 
>> There is a lot of meaningful context in all of this.  I'm looking 
>> forward to deploying my new website that should explain it.
>> 
>> I have a strong backgroumd in music and audio signal processing.  Not 
>> with FPGA however.
>> 
>>> I made a video showing a real time "Silicon Compile" and test program
>>> run on a Zynq board using Xilinx's Vivado HLS to create an FPGA bit
>>> file
>> I am overwhelmed by where to start in FPGA.  This includes finding a 
>> hardware recommendation for a beginnerdevelopment kit.
>> 
>> Nevertheless I have yet to look up a vendor of this FPGA development kit 
>> and toolchain and then to find out what prices.
>> 
>>> that initializes a 64k short integer fixed point sine lookup table 
>>> (-pi/2 .. pi/2) which can be used like a C function with argument 
>>> passing by a simple test program running on ARM processors.
>> This is great!  It's simple, useful, and can be visualized with known 
>> expected results.  It seems like a perfect starting project.
>> 
>>> The main point is the power the C compilation can provide the FPGA
>>> with, and to see the use of the latest 2019.2 tools at work with the
>>> board,
>> Might I rephrase this as the following?
>> 
>> -   It's an exercise in selecting an appropriate FPGA development kit. 
>> This kit would be a good investment and sufficienly repurposeable for 
>> future DSP projects.
>> 
>> -   Setting up the toolchain; learning a workflow; and acquainting 
>> oneself with the ecosystems of:
>> 
>>      -   FPGA-based DSP;
>> 
>>      -   the Xilinx and FPGA support communities;
>> 
>>      -   edge computing; and...
>> 
>> circling back to the beginning...
>> 
>> perhaps even providing a basic introduction to FPGA for somebody (like 
>> me?).
>> 
>> In this last case what would be an appropriate "Step 1. Introduction to 
>> FPGA"?
>> 
>> I guess that Xilinx's own documentation for new users of FPGA technology 
>> would be a good place to start.
>> 
>> If anybody has recommendations for additional books, blogs, forums, etc, 
>> please let me know.  Thank you!!
>> 
>> In summary: Is Xilinx a good company to invest time into learning its 
>> ecosystem?  This obviously includes spending money on dev kits with the 
>> aim of FPGA-basd DSP.  For examples, is Xilinx's support good?  Is the 
>> community ecosystem healthy?
>> 
>> Kind regards,
>> 
>> Andrew
>
>-- 
>OpenPGP key: EB28 0338 28B7 19DA DAB0  B193 D21D 996E 883B E5B9
>_______________________________________________
>dupswapdrop: music-dsp mailing list
>music-dsp@music.columbia.edu
>https://lists.columbia.edu/mailman/listinfo/music-dsp

-- ScottG
________________________________________________________________________
-- Scott Gravenhorst
-- http://scott.joviansynth.com/
-- When the going gets tough, the tough use the command line.
-- Matt 21:22
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to