1
\$\begingroup\$

I was quite impressed by Ben Eater's breadboard computer, and I would like to build something similar, especially with a VGA card like the one he built, but with my own 6845-like text mode generator using the full VGA resolution.

However I learned in his videos that there's a hard limit on the frequency that can be handled by such breadboard designs: something around 1 MHz.

What frequency limit can I expect if I move to a stripboard or even to a PCB? The VGA pixel clock for the modes I'm interested in is 31.5 MHz (which I plan to divide to get around 8 or even 16 MHz for the CPU). But even if the board can handle such frequencies, will the TTL chips be fast enough?

\$\endgroup\$
2
  • \$\begingroup\$ 74AS family could give you up to 100MHz. \$\endgroup\$ Commented Mar 16, 2021 at 13:20
  • \$\begingroup\$ @StainlessSteelRat: Exactly the answer I was looking for, for the last part of my question. \$\endgroup\$
    – airman
    Commented Mar 16, 2021 at 21:20

3 Answers 3

1
\$\begingroup\$

What frequency limit can I expect if I move to a stripboard or even to a PCB?

With a good multilayer board you should be able to get 100 MHz without much effort.

The VGA pixel clock for the modes I'm interested in is 31.5 MHz (which I plan to divide to get around 8 or even 16 MHz for the CPU). But even if the board can handle such frequencies, will the TTL chips be fast enough?

No. Nope. And it gets worse.

Let's start with the horizontal counters. If you look at a data sheet you'll see that a 74LS161 is only guaranteed to be able to count to 25 MHz, although typically it will do 32 Mhz. Worse, consider the enable lines for the counter chain. The propagation delay from a clock to the TC output is worst-case 35 nsec, and the delay from CET to TC (which is needed at the second counter) is 14 nsec. Finally, if you look at setup times, the counters need the enable input to be stable for 20 nsec before the clock arrives. This means that the minimum clock period for a 3-counter chain is 35 + 14 + 20 nsec, or 69 nsec. This is a frequency of 14.5 MHz. It's true that some chips will do better than the minimum, as is evidenced by the "Typical" numbers, but you use them at your peril. If you use typical numbers and the chips are operating at minimum speed, you have no complaint.

And it gets worse. The RAM used in the video is a Hitachi HM62256 with an access time of 70 nsec (max). This is exceedingly marginal for a 10 MHz application, and is just not going to work at 31.5 MHz.

Can you, in fact, do what you want? Yep. I've done it. First, your timing counters and logic should use either 74F or 74AC/ACT for the horizontal counters. 74F, for instance, will allow a simple 3-counter chain to operate with a clock period of 32.5 nsec, which is a clock frequency of 30.7 MHz, and that's close enough to allow taking chances.

Second, the decoder setup he used for creating hsync and hblank is really sketchy. I won't go into details, but his use of mixed inverted/non-inverted signals invites what are called skew conditions which can trigger invalid "runt pulses" into the flip-flops, causing improper (and intermittent) pulses. In his case, he got away with it, but an unlucky collection of actual chips can show all sorts of problems depending on how well the chip speeds are matched.

The RAM will need to be replaced. With a clock period of 32 nsec, you'll need both fast buffers and fast RAM. The 74HC245s he used as buffers have a typ/max propagation delay of 7/~15 nsec, so planning for worst case you need to assume about 10 nsec delay from clock to counter output and another 15 nsec through the buffers, which only gives you about 6 or 7 nsec for the RAM to respond before the next clock comes around. You can get around this with, for instance, a register on the RAM outputs with a delayed clock, but you'll be depending on things like typical propagation delays and best-case temperature dependencies. It's doable, but may be unreliable unless you really know what you're doing.

Basically, I'm very surprised that the board shown in the video works as well as it does. Just as a start, there are no decoupling capacitors on the chips, and with the construction of the breadboards I'd expect this to be a problem.

If you really want to give this a try, be aware that, at a minimum you'll need an oscilloscope, and in come cases will need a fairly fast logic analyzer. I'd advise starting with a somewhat lower pixel rate than the 31.5 MHz clock rate - say 15.75 MHz, or a factor of 2 slower.

Be prepared for a fairly steep learning curve.

\$\endgroup\$
6
  • \$\begingroup\$ "The RAM used in the video is a Hitachi HM62256 with an access time of 70 nsec (max). This is exceedingly marginal for a 10 MHz application, and is just not going to work at 31.5 MHz." - usually the RAM is cycled at character speed, not pixel speed. With 8 pixel wide characters at 31.5MHz that is ~254ns. \$\endgroup\$ Commented Mar 16, 2021 at 19:26
  • \$\begingroup\$ @WhatRoughBeast: I never planned to use the same componants as Ben, only TTL levels. I should have phrased that better. Thanks for the info on PCB. Are stripboards better, frequency wise than breadboards? \$\endgroup\$
    – airman
    Commented Mar 16, 2021 at 21:26
  • \$\begingroup\$ @BruceAbbott - The video(s) on the subject clearly show that the video card is showing images, not text, so there is no "character speed" in this application. \$\endgroup\$ Commented Mar 17, 2021 at 16:05
  • \$\begingroup\$ @airman - Stripboard is probably better than the breadboard used, but only if you use it correctly. \$\endgroup\$ Commented Mar 17, 2021 at 16:10
  • \$\begingroup\$ @WhatRoughBeast: Thanks for the answer. By "use it correctly", I presume that you mean something like this: electronics.stackexchange.com/a/278612/86618 (not sure I visualize correctly what is described, though)? \$\endgroup\$
    – airman
    Commented Mar 17, 2021 at 16:41
1
\$\begingroup\$

The chips can handle the frequency just fine (read the datasheets!). The big problem with doing a large design on breadboard sockets is signal integrity, caused by:

  • poor power distribution (high resistance, limited decoupling)
  • long signal connections
  • high parasitic capacitance
  • high levels of crosstalk and ground bounce

All of these effects contribute to having signals taking a long time to settle after any change, leading to a long clock period.

\$\endgroup\$
1
  • \$\begingroup\$ "The chips can handle the frequency just fine (read the datasheets!)." Well, no. They handle the 10 MHz of the "Worst Card" just fine, but LSTTL (and 74HC) cannot handle the 31.5 MHz of the new card. \$\endgroup\$ Commented Mar 16, 2021 at 17:05
1
\$\begingroup\$

There is no such "hard limit". The limit is based on a number of factors including the choice of parts used, the length of interconnect wires, the characteristics of the solderless breadboards, etc.

I'm sure that through careful design and build the 1MHz could be extended to a significant degree. If you recall Mr. Eater's purpose was education not performance. So I'm sure he chose 1MHz as a safe operating speed that would get him what he wanted performance-wise without making the design too difficult for viewers to follow.

Going from 1 MHz to 32 MHz, however, is a large jump. You can run such signals around on a solderless breadboard but it requires a lot of care.

Will the TTL chips be fast enough? You'll have to answer that yourself based on the TTL family and the specific chips you choose.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.