A Ternary-based Computer

This idea has held my interest for a while, now, but it's a rather insurmountable project. Any circuits found here will likely never actually be built. Abandoning binary means abandoning pretty much every digital IC as a possible part of the design, which leaves only discrete transistors and analog ICs. Building a fully programmable computer entirely from discrete components is no simple task. The very first computers, which were assembled the same way, cost (the modern equivalent of) millions of dollars and several years of work by several people who were all more intelligent than I. Furthermore, to set out on building a ternary computer means that most of the half century or so of computing innovations made since are based on binary and therefore not directly applicable. The magic of living on planet earth circa 2000 is that binary computers are already here, and they are very advanced. With circuit simulator in hand, it's easy for a layman like myself to re-explore what building a computer "from scratch" requires.

There are a number of other ternary-based computer projects that are far more developed than what I've come up. Namely http://ternary.info, which has a defined instruction set, registers, and some real hardware. I intend to muck around on a lower level, on individual logic gates and the like. If ever I actually assemble any of these circuits, the intention is to make it as cheap as possible. For that reason, we're sticking to TTL. Try to pretend we've gone back in time to a little after the conception of the integrated circuit, except that in our theoretical alternate universe, computing is done in ternary. I may cheat and throw in analog ICs if it happens to greatly simplify things.

Ternary Logic

One-port devices

The simplest units in computing I can think of are one-port devices, buffers and inverters, so that's where we'll start. A buffer should read a voltage from the input, determine its logical value (+, 0, -), and repeat it on the output terminal. In a binary circuit, an inverter only needs two stable states. A binary inverter is essentially a vastly overdriven inverting amplifier biased with the crossover point somewhere between logical high and low, whereas a ternary circuit must have a stable intermediate state centered around 0 V. Taking a cue from a class B audio amplifier, the circuit I came up with is essentially a high gain class B push-pull amplifier with immense crossover distortion, both transistors switch from cutoff to saturation at about +-3 V, respectively. A pull-down (pull-center? pull-zero?) resistor biases the output to 0V when neither output transistor is conducting.

Turning a buffer into an inverter only requires that we add an inverting amplifier at the front end of the circuit.