Will the circuit work normally if different chip speeds (eg 8088-2 and 8255-1)

Old processors came out with support chips. That is, there was a family - the processor and its chips. Over time, the same kits came out with higher frequencies.

Will the circuit work properly if the processor and support chips are running at different speeds.

Here are some examples.
Z80 family
- Z80 / Z80А / Z80В / Z80H = 2.5 / 4/ 6 / 8 Mhz
- Z80CTC / Z80ACTC /Z80BCTC / Z80HCTC = not sure, but probably the speed distribution is the same
- Z80PIO / Z80АPIO / Z80ВPIO / Z80HPIO = not sure, but probably the speed distribution is the same

8088 family
- 8088 / 8088-2 / 8088-1 = 5 / 8 / 10 Mhz
- 8255/ 8255-2 / 8255-5 = certanly the speed are different
- 8259/ 8259-2 / 8259-5 = certanly the speed are different

So, what if the processor runs at a higher frequency than other chips in its support set (it can even be not only i/o chips but also interrupt controllers, bus arbiters, etc.)?

Here are some examples.

• Z80B and Z80CTCA and Z80PIO
• Z80H and Z80CTCB and Z80PIOA
• 8088-1 (10Mhz) and 8259 (less 10 MHz) and 8253-2 (8 Mhz)
• look for absolute maximum ratings in datasheets usually at the end ... if you use too high frequency (overclocking) for IC it will not work properly. Beware also too slow frequency might be a problem for some chips/technology (some CPUs and more complicated unipolar ICs might pose a problem, bipolar/TTL IC's are usually fine) Jun 12, 2019 at 19:12
• Everything runs at the same speed. The figures are the maximum speed at which each could run at, so as long as you have a clock slow enough for the slowest, you’ll be all right. Jun 13, 2019 at 6:59
• You need to supply a clock that is between the minimum and maximum supported for each chip in the system. You're very unlikely to be at risk of underclocking if you drive it at the lowest maximum speed of your ICs. Jun 14, 2019 at 14:45

Will the circuit work properly if the processor and support chips are running at different speeds

Short answer: No, as they usually never ever run at different bus speeds.Mixing various speed ratings just means that the system at whole should not run faster than the slowest one.

Speed of classic CPUs like Z80 is the speed rating for the bus. An since it's one bus connecting all chips (*1), there can only be one speed and this speed is supplied by a single clock generator. In most cases the speed is defined by the system board, so plugging in chips with a higher rating won't change anything, while inserting some with lower rating bears the chance of malfunction.

Bottom Line: Classic CPUs work in a single tightly coupled system, not like today's with many different domains and speeds within the same system.

Bonus Material

It seams from the comment as if your're about to build a system, like with a Z80H and a 8255-5. This opens three possible szenarios:

1. Run the system at 5 MHz. That's the slowest component guaranteed speed.
2. 'Overclock' it. Try 8 MHz or 10 MHz and see if the 8255 still works fine.
3. Run it at 10 MHz, but insert wait states during 8255 access.

While #1 is the conservative and easy choice, #2 ist a fair game for a one off hobby board, it's #3 what a serious design would be. Most simple solution (beside some clever hack) would be a programmable wait state generator like this:

• Take a 74191
• Set it to 5 clocks (B/D to ground and A/C to +5V)
• Tie UP and Enable to ground
• Use system clock for CLK (*)
• Use the 8255 CS for LOAD (*)
• Use Min/Max for WAIT (or make up a combination using on of the counter outputs)

(*) - may need to be inverted

Such a setup has even the advantage to try out 'overclocking' the 8255 between 5 and 10 MHz - and with a bit more puzzling (and logic) it can offer specific delay for any additional chip with different timing.

*1 - Of course one could think about a system with different sections operating at different speed, but the effort is quite large, as any transaction going across would need synchronisation.

• Thanks. Given your answer, what about this kind of an implementation: Z80H (10 Mhz) and (for example) 8255A-5 (5 Mhz) but both operate at a frequency of 5 Mhz?
– Alex
Jun 12, 2019 at 19:59
• @Alex You need to look at the system, not the chips. In a TRS-80 both would work at 1.77 MHz while in a Spectrum it would be 3.5 MHz and 4 MHz in an RM 380Z. It's the systems clock generator defining what operating frequency is used, not the chip. And for a Loki you'd better use parts specified for 7 MHz or better. Jun 12, 2019 at 20:33
• I mean, if my whole system is these two chips.
– Alex
Jun 13, 2019 at 5:52
• @Alex The whole system needs at least a clock generator as well (plus ROM). The system will run (or not) at whatever speed that clock generator provides. If set for 1 MHz, then it is 1 MHz. Or any other speed. Both are guaranteed to run up to 5 MHz, so 5 MHz would be the safe choice. Everything above will be a game. There is no locking or whatsoever. Just designated rating. In general the slowest chip defines the speed - but then there are wait states as well. Long story short, just looking at the speed designation doesn't tell much. Jun 13, 2019 at 7:55
• @Alex Added a little how to section. Aug 25, 2019 at 9:31

For instace the IBM PC used the 8088 CPU at 4.77 MHz because it was only a 5 MHz chip and the 8253 timer at 1.19 MHz because it was only a 2 MHz chip. Maximum clock speeds and maximum bus speeds are two completely different things, and peripherals with slow bus speed can be connected to a CPU with fast bus speed by introducing wait states.