The structure of the information on this page is subject to change as it is still a work in progress.
I hope you can understand this is too much for me to take on individually, so this is a project for the community.
The ultimate goal is to form a fully modular and recyclable computing ecosystem, right down to the components that make the hardware and software we use. This is to minimise the amount of components that have to be scrapped because they become incompatible.
FPGA's are examples of chips which are reconfigurable and can be used to adapt to changes in hardware and software.
The goal for this topic is to address the issues of supply and demand of the Pi0 and provide an alternative for people who want to build a Cluster of Raspberry Pi's. This is perhaps because people are interested to learn about datacenters, or want faster 3D graphics so that they have access to the virtual world. With this interest often comes the expectation of hardware to support real-time big-data streaming, VR experiences and the Virtual Internet (Cyberspace).
What I am proposing is a series of Compute Cards, each is a Grid Node offering a different piece of retro/future computing to the system.
The baseline is a Pi ARM system for control, FPGA for routing and custom logic, then an option of something like a Motorola 68k, RISC-V chip or IBM PowerPC (etc. a long list but focus on one at a time per card). It showcases each system for what it is, why it was created, how it works and what if it had software using principles from today. Either the physical chip or an FPGA hardware emulation could be implemented. An example of future hardware would involve emulating a device which can perform matrix/multidimensional instructions like graphics cards can.
Here are a few product prototypes (your ideas for the design may vary from this one):
The product idea is intended as an educational tool for people to learn how a Graphical Processing Unit (GPU) works inside a computer.
It would see users developing the tool to support new applications and enhance the graphics capability of the Pi as an external GPU.
It could see use as a cheap, low-power, more versatile option for performing intelligence tasks in Datacenters and Compute Clusters.
It is also gives a purpose for the Compute Module 1 & 3, besides being an industrial approach to the Raspberry Pi.
Compute Cards are devices which provide new processing architectures and instructions to the existing computing experience.
For example, a Pi Compute Card could provide all the resources of an ARM System-on-Chip (SoC) to an existing desktop (with only x86, x64).
A Coprocessor is a device which works alongside a main processor, to achieve more work in the same timeframe (in parallel).
A GPU is a type of Processor dedicated to solving graphics tasks. It is sometimes found as part of a SoC and as a separate Coprocessor Card.
One potential name I thought about is "Model D".
I chose this name for the following reasons:
- PiD is the circumference of a circle
- D is for Datacenter/Desktop
- D is also for Delta (the others are Model Alpha, Model Beta and Model 0)
- Pi3D/Pi4D emphasise the dimensions of space and time that GPU’s draw on the screen
It's informally known as the "Rube Goldberg Contraption", as first mentioned by pagenotfound.
It is a nickname given to a machine which is perhaps more complex than it needs to be to perform its simple task.
Here is an example route-to-market for the product:
The goal is to make FPGA computing simpler and more accessible for beginners and enthusiasts.
It revolves around creating a Raspberry Pi out of the existing PYNQ-Z1 dev board. The processor is custom configured inside a Xilinx Zynq FPGA.
PYNQ is a platform using Python to make coding on FPGA's simpler. The Z1 is a collaboration between Xilinx and Digilent for manufacturing.
The board can already run Linux and has a lot of the hardware pre-designed. The Zynq Ultrascale should also have the PCIe Endpoint Block.
Resources
What is PYNQ?: http://www.pynq.io/home.html
Xilinx Firmware: https://github.com/Xilinx/PYNQ/tree/mas ... ds/Pynq-Z1
PYNQ-Z1 Reference Manual: https://reference.digilentinc.com/_medi ... ynq-rm.pdf
Digilent Manufacturer Specification: https://reference.digilentinc.com/refer ... q-z1/start
Tasks
- Visualise a block diagram of a Raspberry Pi and map it onto the hardware on a PYNQ-Z1 (or similar board)
- Design a custom board in PCB design software, using the PYNQ-Z1 as a template (schematics provided in the links above)
- Print the custom board (or buy a dev board), get the hardware operational and see if it can run elements of Raspbian (e.g. Pixel Desktop)
- See what else the Zynq FPGA can do - the hardware is configurable in Verilog/VHDL and has a HDMI Input port (and PCIe Endpoint Block)
- Make the board smaller than the PYNQ, either Pi Model B size or as a PC Card (same shape defined by PCIe/PCI/ISA specifications)
- Use the audio circuitry and other hardware design from the PYNQ-Z1 Reference Manual in the links above (or use your own if it works)
- Use minimal components to bring the price down as close to $35 as possible (without too much sacrifice)
- Remove unnecessary headers (e.g. Arduino Headers which can work across USB instead)
ZynqBerry
- Hackaday Project Page: https://hackaday.io/project/7817-zynqberry
- Trenz Retail Page: https://shop.trenz-electronic.de/en/TE0 ... orm-Faktor
- TUL Manufacturer Page: http://www.tul.com.tw/ProductsPYNQ-Z2.html
- Farnell Retail Page: https://uk.farnell.com/tul-corporation/ ... st=PYNQ-Z2
- Trenz Datasheet: https://media.digikey.com/pdf/Data%20Sh ... 02_Web.pdf
- Trenz Retail Page: https://shop.trenz-electronic.de/en/TE0 ... CE-ICE40HX