Ein FPGA ist ein Programmierbare Logicbaustein, der eine größere Menge einfacher Logig ICs ersetzen kann. Ich halte einen FPGA hier aber übertrieben, wenn man nicht gerade sehr viele Helligkeitsstufen braucht. Auch dann sollte der etwas kleinere Bruder (CPLD) genügen, die sind zwar deutlich kleiner, aber auch viel billiger.

Es müssen nicht unbedingt Schieberegister sein, aber die sind eine elegante Lösung um die Zahl der Ausgänge zu erhöhen. Ich hatte erst and Latches gedacht, aber da wird die Verdrahtung ziehmlich umständlich. Die eine Schaltung von oben benutzt übrigens im wesenlichen Latches und nur ein paar Schieneregister.

Die Funktion der Schiberegister wird im RM-Wissen ganz gut beschrieben:
https://www.roboternetz.de/wissen/in...xpander_am_AVR

Da wird hier sehr viele Ausgänge brauchen, und es auch recht schnell sein soll, würde ich 8 solcher Schieberegister parallel vorschlagen. Auf einer Platine könnte man dann 8 Schieberegister bausteine 74HC595 und dazu 8 Treiberbausteine (ULN2803 oder ähnliches) und die Wiederstände für die LED Ketten unterbringen. Die ULN als Treiber würden auch eine gewisse Trennung von Versorgung der Logic und der LEDs geben. Bei den insgesamt recht hohen Strömen ist das nicht unwichtug.
So wie ich das bisher sehe liegen die Pins an den ICs sehr günstig, sodass eine einsitige Platine mit wenigen drahtbrücken ausreicht. Mit etwas Glück sollte man auch ohne SMD Ics, aber mit SMD Widerständen usw., mit einer halben Europlatine (8x10cm^2) auskommen.
Eine Solche Platine reicht dann für 8x8=64 Ausgänge. Man kann die Schieberegister auch hintereinanderschalten und so fast beliebig viele dieser Platinen hintereinander schalten (nur der takt und das Latch Signal müsten noch einen Leitungstreiber bekommen, da nicht mehr als ca. 10 Eingänge an einem Ausgang hängen sollten. Je nach Größe des Cubes braucht man also 1-2 solcher Treiberplatinen. Der Platinenentwurf sollte mit Eagle eher eine Fleißarbeit sein, aber nicht so schlimm da es aus 8 praktisch identischen Teile besteht. Das Löten könnte auch etwas langwieriger werden, mit 16 Ics mit je 16/18 Pins.

Die Treiber für die Ebene (5 oder 6 je nach Größe) könnte man direkt vom AVR ansteuern. Hier kommen recht große Ströme (je nachdem was man den LEDs gegen mus) ca. 2 - 8 A zusammen. Als Treiber also MOSFETS und ggf. ein 74AC244 als Treiber dazu.

Für erste tests reichen dann eine Treiberplatine und die MPU Platine mit den MOSFET treibern. Man könnte damit auch schon einen einfachen Cube Steuern (8x8x6 Monochrom). Dass sollte auch schon reichen um mit der Software zu beginnen.

Ich habe mal überschlagen wie schnell das ganze wird, und wieviele Helligkeitsstufen man damit hinbekommen könnte. Die geschwindigkeit wird ja im wesenlichen von der inneren Schleife bestimmt. Für einen 20 Mhz Prozessor bin ich für 128x6 Ausgänge auf maximal ca. 20-30 Helligkeitsstufen gekommen (für ein Assembler Programm).
Diese Grenze habe ich für 2 verschiedene Methoden bekommen:
1) Pulsmuster vorweg berechen und dann nur noch Ausgeben (hier ist das RAM die Grenze),
2) Software PWM mit 8 Bit breten Daten, aber nur begrenzt vielen Stufen.