After some initial issues with the Lattice MachXO2’s EFB SPI interface, I finally completed a SPI Slave to NeoPixel/WS128 (or similar) Controller. The RTL is hosted on Github and is built around the TinyFPGA AX2 board. Everything should be there to build the device in Lattice’s Diamond, simulate it using ActiveHDL and run it on the hardware using a Raspberry Pi as an SPI Master.
Hopefully the project Readme provides a good starting point. Accepting feedback and/or questions.