So one additional interesting question is wich voltages are needed onboard the DIMM for FPGA, EEPROM, Bus chips and other parts ?
So to wich level do we have to convert the 11-20 V input ?
I only looked at the Xilinx Spartan-6 FPGAs, specifically the XC6SLX75-3FGG484 and XC6SLX150-3FGG484. Assuming you are not interested in bitstream encryption, there are three different supplies:
VCCINT = 1.2V
VCCAUX = 2.5V or 3.3V
VCCO_# = 1.2V or 1.5V or 1.8V or 2.5V or 3.3V
where # runs from 0 to 3 (or 1 to 4, depending on your reference).
When booting the device, the combination VCCAUX=3.3V and VCCO_2=1.8V is forbidden. Also, VCCO_2 must be one of 1.8V, 2.5V or 3.3V.
As I didn't want to change voltages during operation and as I wanted minimally small voltages, this leaves the combination:
VCCINT = 1.2V
VCCAUX = VCCO_2 = 2.5V
I connected the other banks to 2.5V also, but they will not pull a lot of current. Please note that while both pull 2.5V, the supplies for VCCAUX and VCCO_2 are
not identical! You can use the same switcher, but because VCCAUX powers the frequency synthesizers (among other things), it needs an extra filter on the input.
As for other chips: the clock oscillator can run off 2.5V, any level shifters would run off that voltage, too, on their FPGA-facing side. The other side should be powered by the same supply that powers the chip that connects to the level-shifter. So the supply of the USB chip or directly powered by the backplane.
The I2C chips (EEPROM and temperature sensor: we still need to decide what to add to the board) should run off of VCCO_2, also: this way they can be on the same side of the level-shifters as the FPGAs.
This only leaves the USB chip: This can be either powered from the USB bus (my preferred option) or off of the 5V voltage rail. My reason to go bus powered: this way the USB chip can send the FPGAs sleeping if the host computer goes down, saving electricity cost in case of a network outage or a software bug that crashes the host.