The problem I have is that I need 5V I/O, but only have a 5V tolerant CPLD running at 3.3V from Xilinx. Altera does not support their old 5V CPLD with current downloads / new software installations anymore, which I had to learn the hard way (I can only program pre-built binaries but not code/create new binary images to be loaded into the CPLD)
Anyway, I managed to find an application note from Xilinx on how to drive 5V signals from a 3.3V device.
First approach was to use a 1k pullup on Phi2. And I can actually bust the myth that the WDC65816 needs clock rise/fall times of 5ns
(actually I don't think it's according to spec, but in fact the system worked as you can see on the screenshot.
Note that even the short spikes work - I have short cycles (not accessing ROM) and stretch the clock to long cycles when the ROM is accessed)
Second approach is an interesting one - the CPLD can use the pin as INOUT, and drive the signal as long as it senses it as low itself, and only leave the rest
to the pullup. That works actually quite well as you can see in the second screenshot.
It's not clear why this is still not going up to full 5V, but anyway, the system is stable.
However, I'm still running from ROM, and not reading from RAM, which goes through the CPLD, and this affects the data bus too.
Depending on setup times Databus may not be as critical as phi2 is, but I will see.
_________________
Author of the GeckOS multitasking operating system, the usb65 stack, designer of the Micro-PET and many more 6502 content:
http://6502.org/users/andre/