Well, FPGAs are a different paradigm. In an FPGA you are literally fabricating logic to run bits around your board at the hardware level. This allows, for example, having instantaneous and asynchronous, non-clocked propagation of logic signals (concurrent logic); likewise, you can also build state machines running synchronously on some clock domain you define. FPGAs are the closest thing to the highest speed you can get, other than building a custom application specific IC (ASIC). VHDL (also Verilog) is literally a hardware definition language. Since you speak of building a PCB with these parts plced on it, you’ll need to know how to interface the electrical (things like: voltage, speed, controlling impedance…) and logical (terms like: gates, registers, clocks, domain crossing, buffers, buses, state machines, floor plans, ip cores, async and synchronous, etc.). And also the mechanical and thermal issues…
Whereas, C/C++ and other high-level languages intentionally seek to abstract and utilize various CPU architectures (bare-metal or hosted by an OS). If you have experience programming on micro controller platforms (say like an Arduino), you likely know about about getting close to the machine’s architecture - maybe directly doing things with peripherals like serial or parallel I/O via a memory mapped I/O, interrupts ISR, etc. If you know how to program in assembly language, then you have ultimate say about how things get implemented, although it falls to you to know how to precisely instruct the machine to use its hardware.
If you are doing this in the context of C/C++ on an OS (say a Raspberry Pi running some flavor of Linux) , then the abstraction is much more layered. The hardware is virtualized via the OS and requires some driver mechanism to access it, which is much more challenging to work with since it requires a lot of knowledge about the kernel, etc - AND the hardware (Multi-core, multi-threaded, ARM9, AXI / AMBA, memory blocks to keep stuff ordered… oh, my).
Finally, just to be a little more complete are things like GPUs and DSPs. The GPU is more familiar since they can be easily added to a PC platform (or already come with one). The GPU allows DSP to be done because it provides a really great way to do math quickly - specifically the Fast Fourier Transform (FFT), the work horse for efficient spectral analysis and convolution (filters). DSPs (like TI and Analog Devices) are dedicate CPU-like machines that are tuned for signals math such as FFT and filtering. These also have special direct memory access mechanisms to make the process very efficient/fast (Harvard Architecture, circular buffers, specially tuned instruction sets…).
So, now you can perhaps tailor your design toward the best approach for your spectral display project.
Sorry if that was too much of a response, I read the thread and thought I’d just offer a few things, however, my fingers just kept going… :>)
Cheers,
John