There is a TK90X ULA developed by Victor Trucco and Fabio Belavenuto in 2012 using a CPLD (code versions for Xilinx and Altera). TK90X is a brazilian clone of ZX Spectrum and uses a different ULA IC (different but almost similar). More information about this project at https://github.com/fbelavenuto/tk90x_ula (text in portuguese). I'm wondering of creating my own version of the ZX81 based on it.
Keep in mind that the ZX81/TS1000 ULA is considerably less complex than the ZX Spectrum ULA.
The ZX Spectrum ULA handles ALL the video display systems. Whereas the ZX81 just has the minimum control logic and a shift register. The Z80 actually does a lot of the work getting the video data from RAM.
The method of generating the sync pulses is also very different.
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer being good this year.