Wow. I'm excited!
The emerging idea of putting tiny processors onto the memory chips, and thus creating a micronetwork of decentralized microprocessors which can be delegated to specialized memory microtasks IS TERNARY in structure. I have been waiting for this for a long time. I believe it heralds the beginning of Pattern-based computing systems, which will eventually mature into full ternary hardware and software, and carries a whole new way to interact with the computer, as a learning, teaching, and data processing device.
First things first:
Since we're still on the subject of Field Programmable Gate Arrays, here is a computer-tinkerists project to consider:
1. All standard ternary logic gates can be emulated by arranging a subset of binary gates. Therefore, an entirely ternary design is possible TODAY using an ordinary off-the-shelf FPGA.
2. Among other things, a ternary chip processes Analog-to-Digital data more efficiently than a binary chip. It becomes significantly more efficient with each "trit." To start: a lot of toys use 1 bit D/A converters for sound. A one bit trinary converter has almost twice the quality of a binary system. Here is more on this idea:
http://www.trinary.cc/Tutorial/Interface/Analog.htm
3. All modern programming languages are essentially binary in structure, heavily relying on binary branching and counting loops such as IF and FOR. Programmers are therefore increasingly thinking in binary thought patterns, as an incremental social phenomenon. This has long-term consequences on the way we perceive our own future, as a culture, because programmers are designing the computer systems which increasingly shape our interactions with each other.
4. Electricity is itself ternary: A wire conducts in one direction, or the other, or not at all. This is a ternary switch in its most simple form. A native ternary chip is more efficient than binary because all three states of electrical flow are used, instead of only ON/OFF. It is silly to use binary-only algorithms on a ternary chip, just as it is difficult to build a ternary chip out of binary pieces. Both are possible, but waste effort.
5. Artificial intelligence algorithms and some sophisticated search algorithms often exploit this efficient ternary design, but none are doing it at the hardware level, AFAIK.
6. Some of the first computers built (in the 1950s and 1960s) were ternary computers, and worked very well. When silicon overtook the mechanical switches, designers opted for binary, and we've been stuck with it ever since.
7. Ternary processing is more like the way your own brain processes information. That is why AI keeps exploring ternary algorithms. And I believe THIS is the most important reason to experiment with this project.
Now for the project: Build a ternary CPU on a FPGA, and use the inherent affinity for analog processing to perform some advanced experiments in generating truly random numbers. I believe it is possible to generate a continual stream of purely random numbers with a ternary design. There are some good uses for such a stream, including truly secure encryption.
The question: WHY NOT DO THIS IN BINARY?
Well, you _can_ but you need to generate entropy with an analog interface (like moving your mouse around, etc). So I respond: why not do it in ternary?
Here is a second justification: Donald Knuth in The Art of Computer Programming, writes "Balanced ternary notation is the most beautiful of all." Some calculations which are quite difficult in binary (&tc), requiring several steps of data movement, are incredibly elegant in ternary, sometimes requiring a simple inversion of the "trits."
There is a third justification which goes like this: Because of the latent necessity of designing algorithms which MUST branch TRUE or FALSE because this is simply extending the physical capability of the underlying chip, all programmers naturally think and consider their options from within a binary thinking process. This is an artificial and inefficient extension of our natural ternary mind (which, being electrical, utilizes all three states of the switch described earlier).
I personally want to demonstrate that a significant number of difficult processing challenges are more easily managed by a programmer who "thinks" in the native mode of electrical flow, instead of thinking in a limited subset of that same flow.
I also want to demonstrate that a PATTERN-based access to data is a thousandfold more efficient than the TREE-based access which all binary systems utilize today. Tree-based access is necessary because binary systems cannot "leap" into undefined space. Everything must be carefully linked to what has gone before, in the shape of a tree. Pattern-based access can utilize the same switches for multiple layers of information, and can thus "leap" into undefined space without corrupting what is already there.
This idea is nearly inconceivable from within binary thought processes, because it appears to be a form of DIVIDE-BY-ZEROing data into place (What, you mean you want the data to be in a continual state of crashing my computer?). In fact, it is much more efficient, because layers and layers of data can be built up with the same switches, as long as the switches can be triggered by a time-based pattern event which originates with a particular "seed" shape. Thus the "tree" still exists, but moves into a third dimension, not just laterally like ordinary binary databases and filesystems.
This is the actual reason I want to work on this project. I think that a whole new way of thinking about computers and the structure of our own mind is buried in the fact that some of the first computers ever designed were ternary in structure.
Now, if that did not convince you, here is one of the most interesting things you have ever seen, in the way of computers. It is one of the oldest mechanical computers ever built, and, it was ternary.