5 ms·
Just out of curiosity: What exactly would you need this for? Is it just about learning how to design a CPU? Is it about solving a specific task a soft core on
by bayesian_horse 7y ago
Just out of curiosity: What exactly would you need this for?
Is it just about learning how to design a CPU? Is it about solving a specific task a soft core on an FPGA can do better? What kind of use cases are there where an FPGA with a RISC core is better suited than some kind of microprocessor?
- q3k 7y agoSometimes when designing for an FPGA/ASIC, the easiest way to implement some sort of complex control logic is to use a small CPU. For example, the Nvidia Tegra X1 SoC contains a handful of Falcon CPUs (proprietary ISA and core), responsible for amongst others: - USB 3.0 command/event processing - Video Image Compositor 'inverse telecine' processing - HDMI security Same goes for your nVidia PC GPUs - they have Falcons sprinkled across the entire thing.
- rcxdude 7y agoHeck, one SoC I know of has an entire cortex M3 core to manage entering and exiting sleep modes.
- zipcpu 7y agoThink of it this way, what do you need an FPGA for? Now, when budgets are tight, how do you pack more bang for your buck? Rather than placing more and more state machines on an FPGA, you can offload such task loads onto a CPU. Indeed, the more (slow, not time-sensitive, complex, etc) tasks you can off load onto the CPU, the more fabric is available for ... whatever task you actually wanted to place onto the FPGA.
- bayesian_horse 7y agoHm, but then why don't they use a discrete CPU built for this purpose? Many FPGA development boards already come with an ARM MCU. I'd guess that when the CPU core is on the FPGA, the communication between the CPU and whatever the custom logic does is faster and more in-sync. Thank you for answering. I have seen a couple of resources on using FPGAs, with those being increasingly accessible to "hobbyists". I often fail to see the "why" in the examples.
- Brian_K_White 7y agoArm cpus are proprietary licensed IP. This is a cpu made out of pure open source software thin air, which is a special and incalculable open-eneded value all it's own. You still have to buy an fpga to run it, but you don't have to buy any particular fpga from any single particular vendor. It can be any fpga, including ones like ice40 which at least do not require any closed vendor software to program them. This means also including theoretical future fpgas that are themselves some open hardware design that any fab could make to order, ie even more open than Lattice, like ordering a pcb is today. Also, unlike any hardware cpu, a user can modify this cpu in whatever unknown unpredictable ways they might want. If I like this cpu, but I need to add a counter register or some weird tri-state interrupt line or magic instruction, or ... lets try a real idea, how about make the cpu hide it's activity from external analysis for security reasons, by making the cpu always be eecuting some sort of instruction at all times, no no-op (no-op becomes rand-op). This burns power, but also this means you can not tell when it is decrypting an ssl packet. A user can do something unpredictably kooky like that the minute they merely have the idea or the wish. They don't have to beg Arm or Intel to make them a cpu that does it, or live without the odd thing they want. It's a completely worthy project, whether or not it has any immediate commercial application. As Mithro of SymbiFlow points out, you would be insane to use a proprietary vendor c compoler today. The open source ones have outclassed them all decades ago. So it is with practically everything, whether it knows it yet or not, including in this case, cpu design.
- bayesian_horse 7y agoI assume such projects to be worthy. When I don't understand why though, I discovered this question to be very valuable to ask. Clearly, when people invest so much time in one project, they have a good reason (for them). Even when they are emulating an apollo guidance computer in minecraft redstone.