On 10/11/2021 at 11:33 AM, Ju+Te said:
I'm not experienced with FPGA at all, but it sounded to me like they could be programmed that they form some kind of PCB of some generic (TTL) parts. If I understood this correctly, the schematic already exists (as "program" for the FPGA). I might be completely wrong, so please correct me.
I'm not an FPGA expert but you're on the right track. However, there are different physical limits on a PCB with discrete components than there are on an FPGA.
When creating the 6502, there are more or less two types of uses for transistors in the CPU. One is as gates, the other is as so called "random logic". If we were to compare them to computer programming, gate based transistor logic is like structured programming. It is relatively easy to understand when you look at certain combinations of transistors that they create various types of gates: NOT (inverter), AND, OR, XOR, NAND, NOR XNOR.
Other combinations though do not correspond to standardized gates, and those are the "random logic". It isn't truly "random" as in "random numbers" it just isn't as structured as the gate based transistors. You might call it "spaghetti code" of the integrated circuit world. You can do the same things (I think, generally speaking) with gates, but it might not be as efficient. It might require more transistors and take more time to process with gate based transistors vs random logic based transistors.
FPGA is a field programmable GATE array. So that is one difference between what one might get when implementing a 6502 in an FPGA vs in silicon, as the FPGA primarily provides for gate based design work.
Extending the definition beyond the CPU to a video subsystem: Given that there exists hardware description language for VERA, it could be implemented in discrete parts, but now you have to consider timing. With all the functionality in gates in the FPGA, which takes up millimeters of space, signals can propagate between gates orders of magnitude more quickly than they could on something the scale of a circuit board with traces between chips. Just the fact that they are further apart means things take longer. Then you also have more considerations of noise. More parts means more things to go wrong and more time to troubleshoot.
In the end, the FPGA is the most cost effective way to create this system. I love the idea of a discrete parts board with a separate CPU and IO chips and all the good stuff, but not everyone is going to love that as much as just having something that works.