After a number of interrocations on the FPGA architecture, we are back to the drawing board.
Indeed, Alexis pointed out that our previous design created a lot of redundancy in the led band controllers. The computation of the current controlled leds, of the current controlled colors and even of the current written bit can be mutualized between each LED band.
That’s why from now on, our synchronization module will have more duties. It will generate :
- the SCLK and LAT signals (see this post about the LED driver)
- the current angle
- the row, color and bit to be sent at any moment
But what does the led band controller do, then?
Well. The address in memory of the data to be sent to the driver must be computed by each LED band controller since it depends on the angle of the PCB on the device, which is different for each band.
This is a little frustrating since this change in design throws away a lot of the things Romain had implemented in the GS controller, whose role is now really limited. But I think this is for the better because the global synchronization signals are much more elegant and can easily be generated and debugged.
To be done next: we need to add a way to write in the FC setter a new value for the FC register from the HPS.