Cell ====== V 1.0 © Matthias Meixner in 1995 What is cell ? -------------- Cell is a simulator for a special kind of cellular automatons, so called wire automatons. The reason for that is, that all activity is limited to certain regions. These regions are comparable wires found in electric circuits. Also some other aspects of these automatons are similar to these circuits, as you will see later on. The cells are organized in a two dimensional grid, with each having eight neighbours. Each cell can have four different states called: - empty - wire - electron - electron-tail The rules for this cellular automatons are as follows: - cells with state empty will never change their state. - cells with state wire will switch to state electron if and only if one or two of its neighbours are in state electron. - cells with state electron will switch to state electron-tail. - cells with state electron-tail will switch to state wire. As usual for cellular automatons all cells switch their state at the same time. I think you should get some examples now (,: Wire, X: Electron, .: Tail): Lets see what happens, if we place an electron on a wire: phase 1: X,,, phase 4: ,,.X phase 2: .X,, phase 5: ,,,. phase 3: ,.X, phase 6: ,,,, As you can see, the electron runs along the wire, similar to electric current. OK, that's not too useful by now, therefore let's look at something more interesting: phase 1: ,, phase 2: ,, X,, ,, .X, ,, ,, ,, phase 3: X, phase 4: .X ,.X ,, ,,. ,, X, .X phase 5: ,. phase 6: ,, ,,, X, ,,, .X ,. ,, And now let's see, what happens, if we put the electron on the other side: phase 1: ,, phase 2: ,, ,,, ,X ,,, X. ,, ,, phase 3: ,X phase 4: X. ,,, ., ,,X ,, ,X X. phase 5: ., phase 6: ,, ,,. ,, ,,, ,, ., ,, In the first case the electron reaches the other end of the wire, where as in the second case the electron gets 'swallowed', so we have just created a diode! From these we can create some more complicated logic: A first simple approach of creating an or-gate (inputs and outputs are marked with arrows, '*' represents the wire): ** ** -> ** * * ** <- ** * ** * | V The two diodes were wired together much like you would have done with normal electronic components. However there is now much room for optimizations, as you can see in the second implementation of an or-gate: * -> *** <- * | V Try it out, it's really an or-gate :-) Whereas the first one required 16 cells and a signal needs 6 clocks to get from input to output, the second one does it with only 5 cells and the signal needs only one clock from input to output. In the cellular directory you can find some examples. These have inputs to the cullular circuit either on the left or on the top of the circuit. Some of them require the input-signals having a special phase. Then you find generators just before the input, that generate signals of the correct phase and you can activate the input by just putting a piece of wire between the generator and the input. Some of them also have a maximum frequency, i.e. there must be more delay between two consecutive electrons than the minimum of 3 cycles. Now what have these automatons to do with real computers ? The electrons on the wire always run with a maximum speed, which can be thougt as the lightspeed within this model. The speed of a circuit depends on its size, much like electronics: the smaller the faster. How to use cell --------------- Now that you know what's all about, let's see how you can use cell to experiment with wire-automatons: First you have to adjust the size of the automaton with the 'X' and 'Y' gadgets, which determine the width and height of the cellular automaton. The size must be set, before you begin to edit the automaton and cannot be changed later on. Now you can edit the automaton by clicking in the large field in the right of the window, which represents the automaton. Depending on the wire/electron cyclegadget you can toggle betweed the states empty/wire and wire/electron/electron-tail. The scrollers next to this field are used for the case, that the fiels is larger than there is room within the window. With step you can start a single simulation-step, with the stop/running cyclegadget, you can start continuous simulation. The speed of the simulation can be adjusted with the slider. The 'mark' button is used for marking regions in the automaton. Click on the 'mark' button and then on two diagonal corners of the rectangle you wish to mark. You can delete the mark using menu entry 'delete mark' in the edit menu. If you have marked a region, you can cut, copy or save this region. With 'paste clip' or 'paste file' you can insert regions from the clipboard or from a file. If you select one of these, the region will displayed with small squares as an overlay. By clicking to the field you can adjust the upper left corner of the region, that's got to be pasted. You can rotate or mirror it with the correspongind entries in the 'edit' menu. Then select 'OK' in the window, that popped up. By selecting 'Cancel' you can abort this operation. With the use of the Project menu you can load or save your work, or discard it with the 'new' entry. Contact address --------------- Send bug-reports, suggestions, parcels, money or ??? to meixner@rbg.informatik.th-darmstadt.de or Matthias Meixner Sandberg 13 36145 Schwarzbach Germany