Honestly, on a breadboard, the shitty signal quality for all those wires dancing through the air will be as bad or worse than anything you can do with the supply.
Back when I was playing with a breadboarded SBC...
http://seventransistorlabs.com/Images/Z80_Timer2.jpgI had written a PRNG (LFSR type, real easy) into the idle loop, and it would freeze every so often. Before, it didn't (churning whatever regular cycle of program it was running). Sometimes hours, sometimes days.
Such is the nature of random: most of the time it's okay, but every so often an unlucky transition (repeating address/data signals, lots of address/data signals transitioning at once, etc.) comes by and whack, out goes...who knows what -- bus state, CPU clock, anything. I was using a dynamic NMOS CPU, so it required a stable 4MHz clock after reset (it would freeze for, I think, clock below 1.5MHz or so, or above 6MHz -- not much good for overclocking!). If you've got a static CMOS version, you'll probably have fewer problems like this.
The biggest problems with signal quality are 1. having bad grounds and 2. long traces. The first is easy to solve on PCB: pour ground on at least one layer, and cut into it as little as absolutely possible (note that anywhere you run a trace through a pour.. you cut the pour in two, the negative space around the trace..). This is rarely possible, so furthermore, pour the top layer, and via-stitch loose ends as frequently as possible to maintain a solid ground between top and bottom.
Long traces shouldn't actually be a big deal here. 74LS is capable of driving logic-low strong enough to cause some problems on long enough traces (maybe not within a modestly sized board, but if you extend those buses onto ribbon cables, say?), but NMOS and CD4000 CMOS probably aren't. You aren't using any 74HC I guess, so that's not a worry. (I would recommend converting CPU signals to CMOS as early and often as possible; it's newer logic, performs better, and saves power. You'll need 74HCT to interface the CPU, or anything else NMOS/TTL compatible; everything CMOS should be fine as-is.)
As for the circuit, I see oddities:
- Why do you label bus signals on the CPU as normal, then invert them, and call them inverted? They're inverted from the CPU -- the datasheet indicates active-low states, and the pins on the CPU symbol show the inversion circles.
- IORQ is an output, no? You're driving it with an inverter (U1A)...
- While you can use a manual reset just fine, you should really have a POR chip (e.g., MCP120-130 range parts -- pick one best suited to the supply voltage, startup delay, and package type you need), so you don't have to remember to manually reset it every time you power cycle.
- I'm not familiar with the INT mode you're using (when I was playing with it, I used the fixed vector mode, INT2 I think it was?), so I'm not sure offhand if that's correct. The logic seems to be placing an interrupt number (twice the index) on the data bus, which seems useful. I guess, double check just in case that it's aligned with the correct series of bus signals (IO/MEM, RD/WR, M-states..) and all that.
- Going for an authentic 16550 is fun, but: you're just using it as a USB bridge...why not get a parallel device and be done with it? Such as FT243R, if I got that right. Or use an authentic Z80-SIO (and maybe throw in a -PIO for kicks?), though you may have to / want to change your interrupt scheme to use those properly. A second SIO (of whatever family) would be nice just to have the choice of multiple COM channels; I think there's a dual or multi chip out there..??
- Also, if the CS0-2 inputs on the 16550 are active high, then IO0 needs to be inverted. Is ADS an input? It should be pulled to a default state.
- U12 isn't on the master reset?
- Connectors: for best signal quality, every other line should be power or ground (doesn't matter, as long as they're bypassed together). If not, things can get ugly after just a few feet of ribbon cable, if that's what you'll be using. It might not hurt to add some ESD protection around there too, if it's going to be hot plugged or whatever. As long as you have enough local bypass (a few 0.1's and a nice electrolytic -- I'd recommend more like 100uF, but that's fine), clamp diodes would be fine; BAT54S shows up just about everywhere, or you can get a 5V supply, multichannel, ESD chip to save space. Or if you're avoiding SMT for some reason, hope you like forty diodes in a row...(at that point, to save parts count, you might instead opt for 1N5231 zeners wired from ground).
Tim