LED-DTL - an old idea revamped

Some years ago Tim Boscke introduced us to LED-DTL.

In essence, he replaced the two serial diodes in the base circuit of a DTL gate with a red or green LED.

A LED has a forward voltage of nearly 2 volts. This means that the input signal has to exceed 2V before it is recognised as a logic 1.

This improves the threshold voltage between logic 0 and logic 1 and thus improves the noise immunity.

It also gives a visual indication of whether the base is high or low.

It’s all detailed here in a Hackaday Project:

1 Like

Do we still have storage time of the transistor with the modern parts?

That is really super cool. If you look at the Wikipedia page for DTL, you’ll see a figure with a negative voltage. That’s a pain, but it was necessary. Without it (and with “good quality” diodes) anything more than a very small fraction of a volt will turn the transistor on - i.e. it will be a “1”.

With the LEDs, which are sort of crappy :wink: diodes with a big forward voltage drop, you get about the same noise immunity as TTL. And free blinkenlights! Hilarious. I never really understood DTL until today.

Pessimize to optimize. Who knew.

1 Like

This was a project that Steve Wozniak proposed many, many years ago, building a ( small) microprocessor using discrete DTL logic, with the Diodes being light emitting- a visual microprocessor.
Needless to say, he never got around to it.

1 Like

Allen,

Do you have any links to Wozniak’s proposal?

No, it was all entirely verbal.

One interesting thing about a sliced implementation is going beyond the original 8 bit data / 6 bit addresses (64 byte memory max). In this scheme you could have 16 bit data / 12 bit addresses (8KB memory max) which allows real applications to run. In my talks I have done 16 bit data / 14 bit addresses (32KB max memory) but all of the programs I have written so far don’t need all that.

1 Like

Can you get a simple operating system packed in that small a space?
No tricks like virtual memory, or swapping memory to disk.
You have read/write a disk block, and getc(dev),putc(ch,dev) as the
only system calls. Disk 256 byte sectors.

By “that small a space” do you mean the 8KB (4K 16 bit words) that the expanded LED-DTL implementation of the MCPU can address? That is a little more than what the basic PDP-8 could do, so in theory the answer is yes.

One the other hand, having only 4 instructions (this project seems to add more, but it wasn’t clear to me how they are encoded) means you need a lot more instructions to do anything. For example, a simple sine generation benchmark I wrote takes up 2403 on the expanded MCPU but is only 128 bytes long on the RISC-V using only 32 bit instructions (no C extension).

Nothing stops you from doing a 24 bit data / 18 bit address (or 22 bit address if you are not limited to the slices in this project) which would give you 768KB (or 12MB) of memory to play with. Then the absurd code bloat is not such a big problem anymore.

The design is a proof of concept of the logic. The hard part is designing a good instruction set,
Only after you write code, you get a feel for what is needed or lacking.
Ben.
PS.I wonder if optocouplers could be used. to emulate relay logic.