Its been a project idea for a while, and im new to fpga, only got a Lattice Machxo3 and a lattice ice40ul breakout board and have only written a partially successful blink light program (switched lights on and off via switches, but couldnt hook up to the internal oscillator).
That said, I have many projects in mind and a lotof them are reliant on a lot of AI otiented software. That paired with just wanting to do something new, and an uninformed but strong opinion that fpga are far auperior to processors, brings this idea.
Iwant to create acomputer made of FPGAs only, user friendly general purpose os. It will likely have hard processor cores added but i want it to not need them to operate.
The idea would be that instead of allocating time on a processor, the OS allocates circuitry/hardware. Yes this would requre programs to have an fpga version of their own, which is where the hard processor comes in for compatibility with programs not made for foga architecture. Im sure when out of hardware resources youd be forced to add more hardware, close other programs, or do something like share time on the hardware (or resort to aprocessor). Anyways if it can be done itllbe done byporting linux over to the fpga only computer.
For hardware, i dont have enough money to build a guaranteed adequate system, and dont wanna go too small,so,im designig it modular where there are little standardized units of hardware 1cm cubes with connections on all sides, a flexpcb of inexpensive fpgas folded and stacked upon eachother until its tall enough towrapthe rest of the pcb around the cube and enclose it all (brothers a mechanical engineer and hoping he can help optimize thermal performance). Assumig that works, thats abou $100 orso increments of hardware where you upgrade your rig/power $100 at a time. Thiswpuld be much better in about 10 years when moores law ends and your hardware doesnt get outdated/bulky. Youd not have to write a program then select an fpga sized for t anymore, just write a program and expand the hardware if needed. or download the software if using the os not developing it. Itd be an array of fpgas and memory chips, digitally interconnected and managed in some giant virtual memory and virtual hardware space. Some sorta fpga routing tech would have tobe developed to dynamically place circuits and manage them in an automated fashion like processes on a computer.
Currently, i'm deciding on Lattice's MachXO3L fpgas because they have zero on nonvolatile configuration where you lose poer and plug it back in then bam its right where you left it (seems like itd make things far less complicated initially, also jst knda a neat feature). Also it has background programmability with "hitless reconfiguration" which basically means its ideal for runtime reconfiguration. Staying away from the LF models that use flash memory (itd wear out pretty wuick) thats what im thinking. But the ECP5 model fpgas that dont have those featurs, offers about 100x more bang for your buck, so might do mostly ecp5 chips with one configuration XO3 in each "unit" of fpga-computer. and/or might keep it simple and stick with machxo3 til further notice.
furthermore i want it as asyncronous as possible, like thats not very supported is what i hear but thats no reason not to. Ideally if be using Achronix Speedster 22i FPGAs both for speed, and their design being meant for asyncronous operation. I'm sure it would be a ton of work to get something like this done, years probably, and youd have to make a lot of software tools yourself. BUT the result would be a processorless computer. I think itd be pretry popular with hackers lol, like the closes thing ivefound to what i envision for hardware, is a password cracking machine.
thought/tips? Abandon all hope to live all ye who enter this project?