I was going to try and build a wait state generator to add one wait state to each memory access in order to investigate the max speed I can get my Z80 single board CP/M running. This was after receiving another set of supposed 20MHz Z80 from Polida only to find the maximum speed I can run is still 12MHz. It seems to run at 20MHz clock while in bootstrap mode, where instructions are fetched from the FT245, but crashes when it tries to run the bootstrap payload. If I can add a wait state I might be able to verify if the processor runs on a 20MHz clock and confirm if its the memory access speed causing the problem.
Problem is that all the examples of a wait state generator that I've found are from documents when 4MHz Z80 was the fastest available. Example below is from the 1982 Mostek designers guide.
If I look at the timing spec for Z84C0020, the max time from Clock fall to MREQ fall is 40ns, while clock pulse width low is 25ns at 20MHz, which means the example wait state generator would activate WAIT for the falling edge of T3 instead of T2.
Does anyone know of any examples of a wait state generator for a 20MHz Z80?
I think the following might work, but would be nice to see some known working examples if possible. Its also annoying that TTL seems to be missing open collector OR gates
Mark