From what I've learned, it would seem that FPGA is kind of the gateway to ASIC's. Or so it seems. And FPGA's seem to always come after ASIC's, so that'd make sense. You have to design the ASIC before it's an ASIC, right? Anyway... It would seem that there are people with FPGA's mining X11. Or so I've heard... So it makes me wonder... With the proper learning/knowhow, can the "average Joe" use FPGA this way?
You're getting there. FPGA stands for "Field Programmable Gate Array." An FPGA is a hardware chip in which the hardware gates can be connected and configured in different ways, to produce a different result. This still requires a hardware design, so you can't just go out, plug one in, and write a little script and get going. It's still a pretty in depth, low level design, requiring someone knowledgeable in digital design.
I wonder this, because I've started getting a little into programming lately. I'm still extremely new to it, so I'm not holding my breath, but... What I'm asking is, can any algorithm be mined with FPGA with the proper programming/design of the device? It happened to Sha-256, it SEEMS to be happening with X11, and it may very well have happened to Scrypt, but I'm not sure.
I am not an FPGA expert, although I am generally fairly familiar with electronics. Can you mine any algorithm with an FPGA? That's a very difficult question. Certainly, there are some things, which can be implemented well in ASICs which are not nearly as efficient in FPGAs. Obviously ASICs are nearly always more efficient, due to the fact that they can be built in any way, rather than merely changing gates that are set up in a single way- but for some things there will be a more significant difference than others. According to the wikipedia article on FPGAs, FPGAs need on average 40 times as much area, draw 12 times as much dynamic power, and run at one third the speed of corresponding ASIC implementations. Obviously, this depends on what you are trying to do.
Mining consists of running a hashing algorithm, in the case of bitcoin, SHA256. This is very easy to parallelize, you can simply run a whole lot of cores each performing a separate computation. Scrypt was supposed to be resistant to ASICs, and even GPUs by making the algorithm complex and memory intensive. Obviously, it wasn't really, as you can design an ASIC to do anything at all, by the very definition of the word.
Does FPGA's capability have anything do with an ASIC, in actuality? Or is it it's own independent thing? See, I thought that ASIC was merely an evolution of a congifured FPGA. The FPGA was basically the prototype, then the ASIC can be produced. But like I said, I'm far from even being intermediate, let alone an expert.
What do you guys think about this?
An ASIC is not an FPGA, though FPGAs are often used to prototype ASICs. This is because you can use a similar language such as VHDL to describe both, and an FPGA gives you a whole lot of building blocks to play with. However, there are often limitations on FPGAs which make them less efficient, and you're better off changing the way many things are done to get optimal efficiency.
Perhaps an analogy is in order: an FPGA is like a lego set, one of the good old ones that was mostly a whole bunch of blocks. You can build all sorts of things with it, and then take it apart and build something else if you want. An ASIC is like something injection molded. It can be made in any shape, to perform any function. You're never going to make, for example, a perfect sphere out of square legos- but you can easily cast plastic in that shape. In the same way, you make an ASIC perfect at a given function- but it takes a great deal of time and engineering and you can't take it apart and fix it it if you make a mistake. You just have to make more.
To answer your question in the most roundabout way: I have no idea if FPGAs are being used. It is certainly within the realm of possibility, and hopefully that clears up the differences between ASICs and FPGAs a bit for you.
--
novak