| Electronics > Beginners |
| Understanding MCU vs FPGA vs DSP |
| (1/1) |
| bjdhjy888:
Before you jump on me, yes, I did watch Dave's video on FPGA. As he explained, FPGA is complicated, which is expecially true, when it comes to learning as a beginner like myself. But I can't help learning it, just like I do for microcontrollers, as they are really cool. STM32, FPGA and DSP are like the most intriguing eletronics in my mind. They are of beauty and intelligence. Yet, I can't fully distinguish them. Is FPGA a type of microcontoller that can be defined by a user like myself? Is DSP a more robust version of a microcontroller that's specialized for audio processing, by using its advanced math feature? |
| ataradov:
FPGA is not a microcontroller in any sense of that word. Simplified, it is an array of logic gates with configurable interconnects between them. You can define any circuit you like, it does not have to be a typical processor. DSP is a type of processor that has architecture suitable for processing large amounts of data. It does not have to be sound. Usually it just manifests in having a fast MAC (multiply and accumulate) instruction, which is a basic building block of many signal processing algorithms. And also having fast interfaces and memories to get the data in and out of the processor helps too. |
| rstofer:
You can just think of an FPGA as a dumpster full of logic. Flops and gates, millions of them and they're all mine! I can connect them any way I want and never have to break out my wire-wrap gun. This is particularly useful if you happened to major in hardware design and you spent the requisite time studying design from gates all the way up to systems. I love these things! Truth be known, all I use them for is implementing CPUs of varying types and the requisite peripherals. For example, I started programming on the IBM 1130 computer back in '70. As with many 'firsts', you never really forget. So, over the years I have made a couple of starts at implementing the machine using things like blown-link PROMs for storing microcode and discrete logic. It wasn't until I got started in FPGAs that it became a realistic project and I finished it about 12 years ago. Still use it from time to time as it has plotting capability on a LaserJet. http://ibm1130.org/ My version runs all of the IBM software exactly as released, no changes, no "almost", it flat out works at 50 MHz versus the factory 400 kHz. Next version will hit 100 MHz. So, FPGAs are logic, do with them what you will. There are many examples of retro games like PacMan that run on a Z80 core (called T80) and the hardware layout inside the FPGA is identical to the original board. Great project! There may also be a bunch of BlockRAM (memory) and some DSP slices. Crypto is another area for FPGAs. If you want to learn FPGAs, you need to work toward a goal. Something that actually requires design and results in a working gadget. I suggest you search the Internet for the LC3 project. This is a very simple RISC CPU that, while minimal, is quite complete. There is a book called "Introduction To Computing Systems..." by Patt and Patel that describes the entire project. Most of the documentation is on the Internet. It's going to take a while to start from ground zero and work up to a complete CPU but it is worth the time. https://www.alibris.com/booksearch?keyword=9780072467505 MCUs are different in the sense that while you can code up any project you want, you generally can't change the hardware. This is slightly different with the Zynq processors because they have some small amount of FPGA fabric. There are literally hundreds of different MCUs targeted at thousands of different applications. Pick one... MCU projects tend to be primarily software, the hardware (internally) is fixed. DSP is Digital Signal Processing and can be done on an FPGA or a MCU. One of the more useful DSP MCUs is the Analog Devices Blackfin. DSP is a game for math majors and the analog version is why I chose to work on the digital side (CPUs). The math is just too cumbersome. Or it was back in the day of slide rules. MATLAB can handle it! https://en.wikipedia.org/wiki/Digital_signal_processing |
| emece67:
. |
| Navigation |
| Message Index |