I was wondering the following.
Almost every scope has a FPGA on board.
"Traditionally", one of the reasons (as far as I understand, correct me if I'm wrong), was that it was relatively cheap and powerful.
I was wondering if it is still needed nowadays?
A well and efficient programmed Raspberry Pi seem to have enough processing power to handle all kinds of calculations.
In other words, is a FPGA always needed?
Basically - yes. At least, if you want to get to a decent speed. Now, the original Raspberry Pi, for instance, does about 300 million (integer) operations per second. It depends on the particular instructions - some are quicker than others. At this point, you've got less than a third of an instruction per acquired digital sample for a relatively low end 1 gigasample/second scope.
On top of this, there's a UI to handle - user input, redrawing of the screen and what not. On top of that, if we're talking a simple 8-bit sample depth oscilloscope, that's about a gigabyte of data being ferried across a data bus per second. The Raspberry Pi doesn't have the memory bandwidth to handle this - and if you consider the I/O capabilities of the Pi (which I, by the way, love for a lot of project types), its GPIO and I2C have about a millionth of the bandwidth required (actually, less in many cases) - unless you want to actually create an USB3 Superspeed peripheral (i believe the latest Pi has USB3SS - correct me if I'm wrong) which, again, is quite an acheivement due to the high speeds and the pitfalls of that.
The Raspberry Pi is a low-performance general-purpose product - if you will, a jack of all trades, master of none. An oscilloscope isn't going to be a media center very well, but what it does have, is a purpose-built architecture with very fast RAM coupled to an FPGA (or even custom ASIC) that is programmed for the exact purpose of handling the very use case of an oscilloscope.
On top of that, most scopes have some sort of general purpose µC/CPU to handle the UI and such. That would be the easy part on the Raspberry Pi. So, you could design an oscilloscope FOR the raspberry pi - with an analog input section, and the whole data acquisition/analysis, and then interface that to a Raspberry Pi which would then handle the user interface.
At that point, of course, you might as well design an entire oscilloscope - no reason to use the Pi.
If you were to make an oscilloscope for the Pi without going that route, I'd be positively amazed at a 1 MHz sample rate. Even 400 KHz would be a really nice piece of work, too. Apart from just getting the data in, you'd need to make sure you have a stable clock and so on and so forth.
What you could do, though, is make an audio frequency oscilloscope and spectrum analyzer - at, say, 44.1 KHz or even 88.2 KHz sample rate. If you learned ARM assembly code, you could code some very nice vector routines for the spectrum analysis, and still have plenty of clock cycles left for UI and such. This amount of data would fit in the Pi's I/O capabilities, but, of course, it wouldn't at all compete with a regular lowest-end oscilloscope for electronics use.