If one truely wants to define a universal bus tht connects different FPGA daughter boards, then the bus connector on the main board could provide some common voltages and a common (probably serial) interface. But it may still be necessary for the FPGA board to produce other voltages locally and if the bus protocol is not compatible to the FPGAs bitstream loading, then an additional CPLD on each daughter board is needed.
Let's put numbers to the case. The prices I give are in EUR for prototype quantities (=1). I may not have found the best supplier, either.
1x Xilinx Spartan 6 XC6SLX75FGG484 = 68EUR
1x LMZ12002TZ-ADJ for 5V rail = 8EUR
2x LMZ10503TZ-ADJ for 1.2V and 2.5V = 17EUR total
various small parts ~ 5-10EUR
So the power supply for a single daughter board can be up to 50% of the price for one simple FPGA. Daughter boards with multiple FPGAs are therefore more cost efficient.
In light of that I would propose to make simple boards that contain one host interface (of a to be specified kind) and as many FPGAs as there is money. This is basically only making daughter boards and no main boards at all. The Pros and Cons:
Cons:
- If no additional power supplies are needed on the daughter boards, then my argument from above does not hold. In this case, the modular approach can offer the cost advantages promised. But this can only be true for a specific class of daughter boards.
- The host interface is needed for every board (cost can be around 5-15EUR, maybe)
Pros:
- No error-prone and/or costly connectors (3EUR per connector)
- No need to specify a universal interface that works across different FPGAs or later ASICS: just rewrite the firmware of the host interface for each type of board
- No additional adapter logic on daughter board (maybe 5EUR)
- Quicker design time: no motherboard needed
Before this thread was started, I looked into making something like this. While the original suggestion (http://forum.bitcoin.org/index.php?topic=9047.msg280549#msg280549) was based on a PIC18F97 because of its Ethernet capability, I thought of an FT2232H because it can operate as both a JTAG and an SPI master and needs minimal programming. So the board is not completely stand alone but a USB slave. The thing is work in progress. I started out with a board for a single FPGA to test if I can get it to work. More FPGAs can later be added to the design: they are connected in two serial chains via JTAG and SPI. The SPI bus is used both for configuration and later for communication.
Design software: Cadsoft Eagle 5.1
Current status: Schematic finished, routing started, not tested at all!
URL: https://rapidshare.com/files/534181114/single.zip
Comments are very welcome!
PS: I looked at the datasheet of the PIC18F97 and it is making me very sure that I would want someone else to develop the code.