I've circled back to the
musing from this post and have successfully moved the 12 GALs of logic into a single ATF1508 CPLD. It still needs some work to ensure stability to allow for a production version (if I decide to make them), but the major components are fully functional so far including 128KB of cache instead of 64.
This would work in SE/30, IIcx, IIx. I like the idea of a compact version which fits in the PDS slot (with a passthrough) for SE/30 or IIsi, but there's still a lot going on here, even without the GALs... probably won't happen.
This primarily serves as a (second) POC that it's possible to move logic from a collection of GALs into CUPL and the ATF150x fairly directly. There are definitely timing considerations to watch out for, but I knew the Diimo design to be fairly lax about the speed ratings of its PLDs: I've swapped most of them from 10ns ATFs to 3ns GALs (with stops at 10ns, 7ns, 5ns) and only managed to provoke a couple of issues. However, other designs like the PowerCache and GAL-based Turbo040 are more fiddly about their speed ratings, so those will probably be less easily translated...
I thought it'd be interesting to make up a diagram showing the relationships between nodes as I work on understanding the logic further.

Interactive version here:
https://public.flourish.studio/visualisation/20222546/
PDS_CTL is system AS, DS, BERR, DSACK etc.
LOCAL_CTL are same signals but on the card's local bus only.
Buffer_CTL controls the buffers which selectively tie the local 50mhz bus to the system bus.
Cache controls operation of the cache logic.
Logic is the here-be-dragons stuff mostly that glues the various functional groups together.
Buffer_Bus is simply the local address/data busses.
Clocks are either the 50mhz or 16mhz clocks.