When a cell is in C-mode, it is being configured by one or more neighboring cells. Any side on which the C input is one is called an "active side," and the neighbors on the active side(s) of the cell are reading and writing the cell's truth table. When a cell is in C-mode, its outputs are set as follows:
  • All C outputs are 0
     
  • All D outputs on non-active sides are 0
     
  • All D outputs on active sides are set to the value of the last bit in the truth table, as illustrated in the diagram below.
The active side's D inputs are ORd to produce a new bit for the cell's truth table. Each time the system clock rises, that bit is latched inside the cell. When the system clock drops, the cell's truth table is shifted, the latched bit is shifted into the start of the cell's truth table, and the trailing bit of the truth table is discarded. At this point, the new last bit of the truth table is again sent to the active side's D outputs.
Hence, by carefully controlling a cell's C and D inputs, one cell can read and write a neighboring cell's truth table, and therefore change the cell's D-mode behavior.
Because each cell has the ability to read and write other cells' configuration information, the cell matrix has the ability to self-configure.
d mode . simulators . core