Yes - No - Maybe? The goal is to completely step away from the normal binary system and investigate alternative computing systems.
I am still actively working on this project, and I found another alternative to the Vishay part, the pin compatible MAXIM DG403. MAXIM were also kind enough to release libraries for use in my CAD software of choice. As soon as finals are over I will take some time and get the ALU pcb designed, etched, and populated :)
Thanks everyone for your suggestions and support! :)
A pile of parts I ordered finally came in! I now have some design choices to make, such as do I want to just hand wire this or should I make a proper PCB ... then if I do that, should I order it or etch it myself? Decisions Decision....
Here is a shot of some of the ICs that I am going to be using in the build.
I know I am a bit old fashioned, but there is just something fun and nostalgic for me when working with through hole components ^^;;
While waiting for components to arrive, I have been doing some late night musing as to what functions I wish to implement into the CPU.
This is the list so far of opcodes, 0 through 13 (000 to +++), that I have been considering.
I want to attempt to keep the list down to 14 instructions, and am open to suggestions as to what should be removed from this list and have something more useful added in its place. LD and ST may be simplified to a MOV command freeing up one of the "slots".
This gives me a bit of a goal while doing the design, making the idea that much more concrete.
Another decision that has to be made is how many trits wide I want to make the system bus. The current thought is to make it 6, this is mostly due to cost of components on a hobby project :) The first 3 will be used for the opcode, the second set of 3 will be for the address that will be used.
Now to get back to calculus homework ^^;;
After doing the presentation at the HaD 10th anniversary convention I have been inspired to finish this project.
Parts sufficient to construct the ALU have been placed on order, I am going to be working with the vishay DG403 chip, and plan on building it in such a way that I will probably end up with a hybrid ternary/binary cpu.
I have removed the kleene logic table as it seems to confuse people in that it is more of a philosophical thing as apposed to a pure logic meant for use in a CPU ^^;;
The logic tables for doing math are as follows,
The chip in question appears to almost be ideal for the situation,
In other news, I have been toying with the idea of playing around with magnetic core memory, the final plan will most likely to use a transistor based memory system, however sometimes it is fun to look at older tech.
More to come after I receive the components and begin a proper build! :D
Thanks everyone for your support!
Now back to studying for midterms.... the joys of going back to school :)
Sad when life gets in the way of things, this summer has just been too busy to keep up with everything. Two jobs and a family among other things that take priority ^^. I will continue working on these projects as time and money permits and updating them here, but I guess I wont be in the next round for the hackaday prize. Thank you everyone for the skull :)
The project progress has been slow going. I am working a job and an internship right now. I have done a bit of experimentation with getting an adder implemented and have met with several issues. The totals if I added the numbers are different depending on which input I use for each number. With the hackaday prize deadline fast approaching and lack of components I may have to call this one for now and complete it at a later date when I can afford to get the proper parts shipped to Alaska.
Quick snapshot of the breadboard right now.... I am playing with different ways of manipulating the voltage, in this case it is a basic "voltage divider" setup just to see if I can solve part of my input issue with addition.
The little circuit board at the top is an opamp "virtual ground" to split the 5 volt source that I am working with. The 6 switches let me input the voltage I want into each input, in this case -2.5v, 0v, +2.5v.
In other news:
I have been toying with another project idea and posted it at http://hackaday.io/project/1905-Toner%2FLaser-3D-Printer
Sorry I haven't posted much lately, just been busy ^^
I have already ordered some components to do a first build, still waiting on 1 more shipment to arrive. Until then, I have been working on different setups for building a functioning ALU. However, I am keeping logs and plan on releasing everything right here, including my thought processes. Even when things are wrong I have been including it. Its a great way to learn from mistakes and documents the entire project.
Also, I love the meaningful feedback people have! It leads me down even more rabbit holes. I plan to get some photos up and maybe even some video of the ALU when the time comes.
Thanks everyone for supporting me in this project :D
While waiting for parts to arrive I decided to do some random testing on my ipad in a little program called iCircuit. It is easy to use and lets you basically lay out subcircuits and create your own ICs. I do wish it had a larger parts library, but for what I was doing it was fine :)
I made various gates and added input, voltage, and output pins to each as needed then started doing little test scenarios. Below is a test of one of the circuits. I just hope it all works as easily when I use the real components that I ordered.
I just set the voltage to 6 volts to account for internal loss, I know it says 6.1 but using a slider on an ipad isn't an exact thing. ;)
Still, the basic building blocks all check out.
In other news, I have been deciding on a form factor for the new computer design. Most likely I will be going with stacked boards and spacers between them with a bus connecting each board.
Since the parts are on order I decided to sit down and further hash out the logic. I had a rough idea on what I wanted to do (and ordered components to reflect the rough idea) but no definite plan. I took a few pictures of my notebook to show my thought process. :)
The best place to start is often at the beginning. I know binary logic and decided to start there. Below are a couple rough sketches and logic tables for a basic binary system. By using NAND and/or NOR gates in a binary setup you can construct any logic element that you want.
After some brainstorming I came up with a few rough ideas. I have considered both a 0/1/2 system and a balanced -/0/+ system. The later seemed easier to implement. I began with an idea of first using fets to get the job done. Using them I could easily control the voltage. It was late and I know I made mistakes on these, but I find it best to always write down ideas no matter how silly or wrong they are. Later when I look at them they may spark a correct solution. It has payed off more than once :)
As you can probably see, I had no idea what I was really going for. So I went to sleep and had some nice dreams about riding my bike through the wonderful mountains of Alaska ^^;;
The above picture was taken by me while I went for a bike ride through Anchorage. It was a beautiful day.
I woke up the next morning with an idea, which I sketched down. I title all my ideas "random thought" when I am just scribbling. I am sure as this project goes you will notice my other strange habits while designing something. :)
You can probably see the errors in this, if not YAY!
My goal was still in place. Design a NAND and a NOR gate to get the job done and figure out the basic logic. After dinner, I sat down again with my pencil and notebook. This was the result.
I hope this log of last nights dream and today's journey did not bore ya too much. I know I could use a circuit design program to do all this, but I still prefer to attempt to figure out the logic in my head. It's a great exercise for the brain, even if I do make mistakes and sometimes use incorrect notation. :) I am also toying with the idea of using an S-100 style bus for the build itself. That would allow me to change out modules and possibly extend the system when it is done. Now if the parts I ordered would just arrive I could test this to make sure it will work in the real world ^^;;
After a long day of reading and looking over parts catalogs I ordered some of the parts to begin this build. There goes a third of my budget! I have been looking at the best way to implement a basic logic system and the best way to design a ternary element. For me, most of my ideas are pretty outlandish when they are born. This one is no exception and I have never build nor designed a CPU before. I think it will be an amazing learning experience.
My goal is to design a non-binary based ternary element and then implement it into a simple CPU. The end result will be to do basic math as a proof of concept.
There are a few options available to me, one was just to see if I could design it all into an FPGA. I own a cyclone II that would lend itself to some experimentation.
I have been pouring over every bit of information I can find on machines that actually functioned, such as the Setun and would LOVE to find a copy of its schematic. It is a pity that so much technology is either lost or buried due to politics.
There seems to be a lot on ternary systems when you look at quantum computing, and if I succeed in my original goal I may look into adapting some of those ideas. Until then, its time to start from the ground up and see what can be done :D