One of my other projects, the 6502 Fake Finder, should be able to determine the type of CPU inserted into it, provided it's a pin-compatible 6502 variant. This includes examining various control signals to distinguish between mask and bondout variants of the same CPU core. But the Fake Finder has no provision for checking the CPU's ability to run at high speeds; indeed it deliberately runs the CPU at about 450kHz, to make sampling the control signals reliable even on the slowest speed grades of NMOS 6502.
A different approach is needed to estimate the speed grade of the CPU. The most direct way would be to run the CPU with a variable frequency clock, and ramp it up until it crashes or starts failing a functionality test, then back off. But I intend instead to directly measure the propagation delay from the Phi2 clock edges to the latest valid transition edge of some key output signals. You can already do this by hand if you have a decent oscilloscope, but I do not, so I'm designing a test rig with a built-in readout instead. There will be no conventional RAM or ROM here, only a cycling pattern of test opcodes and data, generated by random logic.
I will need to use two distinct measurement techniques to cover the fastest and slowest speed grades.
At the low end, it is useful to distinguish parts in the 1-6 MHz grades commonly produced by everyone except for WDC, and I believe this can usefully be done using a pair of synchronous shift registers clocked by each edge of a 16MHz master clock (for an effective 32MHz sample rate, about 30ns interval), the CPU itself being clocked at 1MHz. These registers' parallel outputs can be latched synchronously with Phi2, and XOR gates between consecutive samples will then visually highlight where in the cycle the transition occurred.
At the high end, the current WDC parts are rated to 14MHz with clock phases valid down to about 35ns. This calls for much finer timing resolution than can realistically be provided by clocked logic. Instead I could use transparent octal latches, cascading the signal of interest from output to the next input across the bits of, say, three such chips. In 74AC logic at 5V, this should provide roughly 5ns resolution up to about 100ns behind the clock edge. At some defined point in each cycle, the transparent latch is closed to hold the sample, then a second latch captures the stable output of another bank of XOR gates for display.
Not every cycle will produce a level transition on every signal of interest, and there will undoubtedly be some variation in timing between different cycles - but I think this approach will turn an otherwise impossibly fast phenomenon into something which can be observed and characterised with the naked eye.
|