FPGA or ASIC or some kind of microprocessor

DSP, Plug-in and Host development discussion.
tranceemerson
KVRist
69 posts since 8 Jul, 2007 from Seattle

Post Tue Nov 21, 2017 6:29 pm

Generally, can someone explain to me the basic concept of using these for DSP development? I've done a bit of research on Google, but I want to make sure I understand what I'm reading up on it correctly.

the FPGA is a Field Programmable Gate Array that can be programmed to do a specific task. Does that mean that the microprocessor can do it's programmed task at it's full rate without having to leave processing time for other things? How does the information typically get out of the microprocessor and into the rest of the circuitry, is it some kind of ADAC? The other thing I want to know about is how the FPGA, or other type of microprocessor get programmed. that information I haven't been able to find yet. if you know of a good resource for me, just post it in the comments below. Thanks in advance!

PurpleSunray
KVRian
816 posts since 13 Mar, 2012

Re: FPGA or ASIC or some kind of microprocessor

Post Wed Nov 22, 2017 1:36 am

> Does that mean that the microprocessor can do it's programmed task at it's full rate without having to leave processing time for other things?

Yes. The microprocessor configures the DSP chip and delivers data to it. Microprocessor chip can do other tasks while DSP chip is processing the data.

> How does the information typically get out of the microprocessor and into the rest of the circuitry, is it some kind of ADAC?

Depends on the DSP chip.
Most common model is to use DMA (attached to memory bus via DMA controller) for data I/O and some serial bus (like HPI) to controll to the chip. So basically microprocessor does memcpy the audio data into specific memory area and tells the DSP chip "go process it" (or simply "start" and DSP will process a new bunch of data every clock cycle).

> The other thing I want to know about is how the FPGA, or other type of microprocessor get programmed
The FPGA, or the DSP chip you'r using?
The FPGA is programmed with some hardware description language. VHDL, Verilog or something like that.
You "programm" the DSP by configuring the processing stages (by sending commands on the HPI).

SISKO
KVRist
37 posts since 13 Jan, 2016

Re: FPGA or ASIC or some kind of microprocessor

Post Sun Dec 03, 2017 6:58 am

In a typical embebed DSP system there are several basic building blocks. In one hand, you got the non-DSP specifyc part where generally theres is a micro-controller doing its stuff. Its called "controller" beacuse it controlls several non-real time things like user interface, memory bank, interruptions, etc.

On the other hand you got the DSP-specific part where gennerally you'll find some kind of processor. Here you'll find micro-processors, ASIC, FPGA, etc.. doing mostly receving data, processing it with lots of math processing, and dumping data to the outside world.

As its been said, DSP chips mostly gathers data trough DMA. DMA its a protocol to dump lots of data in a single shot. So the signal flow will be: ADC -> DMA buffer -> DSP -> DMA buffer 2 -> DAC. The micro-controller send signals and controls all these stages so they are in sync, and all keep working togehter like a team. In harmony :hug:
Obviously there are variations of the mentioned scheme.


ASIC and FPGAs can have both micro controller AND micro processor on its inside. You win space, but they are more expensive. In general, its cheaper to have a dedicated chips than to have a sinlge FPGA or ASIC chip. Unless you do VERY high volume production where the ASIC and FPGA price will fall down rapidly in contrast with the splitted version.

Most guitar pedals uses the splitted scheme. Boss pedales have ASIC too, but they are generally DSP ASIC, meaning that BOSS/Roland uses a custom made DSP chip that is also workin with a (maybe custom too) microcontroller .
Most live sound mixers uses FPGAs. FPGAs are super powerfull, they can take multiple parallel chanels processings with no complaint!

tranceemerson wrote:The other thing I want to know about is how the FPGA, or other type of microprocessor get programmed. that information I haven't been able to find yet. if you know of a good resource for me, just post it in the comments below. Thanks in advance!
You choose wich platform suits your needs (ASIC, FPGA, or "splitted version"), then select a target device (ie altera for fpga or TMS320C6713 for dsp), read the datasheet, learn their languajes if you dont know them (VHDL for fpga, C, C++ and little of asm for dsp) o hire someone to programm it for you.

Miles1981
KVRian
1361 posts since 26 Apr, 2004 from UK

Re: FPGA or ASIC or some kind of microprocessor

Post Mon Dec 04, 2017 4:25 am

ASIC are fixed logic made from a mask, there is no way any amateur can create one. Even big companies avoid them as much as possible and simulate their future ASICs with... FPGAs.
As such, "ASIC" is basically just a coprocessor, FPGA is easier (albeit slower) because you can put any logic you want in the coprocessor.

DSPs are just usual processors with additional IS (instruction sets) that are now available on Intel/AMD CPUs. There is absolutely no need to go for a DSP except if you want to go embedded.

User avatar
engineer
KVRer
24 posts since 24 Jan, 2005 from Germany

Re: FPGA or ASIC or some kind of microprocessor

Post Mon Jul 23, 2018 4:43 pm

Maybe one could add, that it is no prob to transform any FPGA code into a digital asic. This is a common thing when lot number exceed a certain limit. For instance we recently moved a DSP-System tested in an FPGA from a Kintex to an ASIC. Reason:

- needs 1A instead of 8A during operation at 300 MHz speed
- can run at 1200MHz and has less current demand though (5A)
- creates less overtemperature and thus is in SPEC of max 60degrees
- is cheaper starting from 300 devices (600 devices taking ASIC design into account)
- is more beam resistant against EMI
- is smaller
- cannot be copied

so ASICs are nothing mysterious anymore.

Kraku
KVRian
1403 posts since 13 Oct, 2003 from Prague, Czech Republic

Re: FPGA or ASIC or some kind of microprocessor

Post Tue Jul 24, 2018 1:30 am

engineer wrote: - is cheaper starting from 300 devices (600 devices taking ASIC design into account)
Wow, what's the math behind this? :o

If I've read correctly from other sources, the tooling costs to create an ASIC can easily cost around $100k? After that it's cheap to create the chips.

MadBrain
KVRian
949 posts since 1 Dec, 2004

Re: FPGA or ASIC or some kind of microprocessor

Post Fri Jul 27, 2018 11:48 am

Another option that makes sense for people starting out is that the lastest generation of microcontrollers are fast enough for smaller DSP jobs - for instance the Teensy 3.6 board has a ~180mhz ARM with an FPU (probably enough for a polyphonic VA!).

Kraku
KVRian
1403 posts since 13 Oct, 2003 from Prague, Czech Republic

Re: FPGA or ASIC or some kind of microprocessor

Post Sun Jul 29, 2018 6:40 am

MadBrain wrote:Another option that makes sense for people starting out is that the lastest generation of microcontrollers are fast enough for smaller DSP jobs - for instance the Teensy 3.6 board has a ~180mhz ARM with an FPU (probably enough for a polyphonic VA!).
ARM MCUs also have SIMD instructions ("DSP instruction set" as they advertise it) and I think the latest ARM Cortex M7 MCUs also have 64 bit floating points. The new ones go up to 600 MHz and cost next to nothing :)

Here's one (or two) :
https://eu.mouser.com/datasheet/2/302/i ... 381468.pdf

These days the MCUs have equal amount of processing power to DSPs of the same price range. ARM MCUs are easier to program and have tons of free tools available for them. It makes sense to start with ARM MCUs.

Return to “DSP and Plug-in Development”