-
Notifications
You must be signed in to change notification settings - Fork 0
Methodology
Figure 1. A Logical Cell (Left) and a 4x4 Logical Cell Array (Right)
A “Logical Cell” (Figure 1, Left) is a simple device with 2-inputs and 1-output, where the output is some logical function of the inputs. Each cell contains a small memory register. The logical function of a cell can be configured by manipulating the memory of the cell. The possible memory configurations are shown in Table 1.
Table 1. Possible Logical Cell Configurations
We combine multiple logical cells to create a “Logical Cell Array” (Figure 1, Right). The Logical Cell Array (LCA) forms a grid of cells, each cell taking inputs from two neighboring cells in the next row. Cells on the edges of the grid are connected to cells on the opposite edge, forming a torus shape. Finally, the bottom-most row’s connections are modified; each cell is connected to one input bit from the HPS, and a neighboring cell, instead of two neighboring cells. This design is described in the following section.
Here, y and x denotes the cell’s coordinates within the LCA. DIMY and DIMX is the dimensions of the LCA in the Y and X axis respectively.
Each cell’s input is determined by their coordinates, expressed with the following rules:
Here, Ix denotes the xth input bit from the HPS. Inputs from the HPS are set based on the current truth table configuration.
The output bits of the LCA are denoted as Ox, these are the output of the circuit as a whole, to be compared with the truth table’s configuration. Output bits are connected to every cell in the top-most row.
In total, any given LCA will have a DIMX-bit input and output signal. For this research, we have implemented a 64x64 LCA.
Figure 2. Converting number matrix to logic circuit.
1) Using CA rules, we generate a DIMY-by-DIMX matrix.
2) Write the number matrix onto the LCA memory registers.
3) The LCA is now configured into some arbitrary logical circuit.
This paper uses Cellular Automaton (CA) as the encoding algorithm for logical circuits. By applying an arbitrary CA rule, we can generate some DIMY-by-DIMX matrix representing the LCA, with each element representing a cell’s state. Writing this matrix into the LCA memory register will configure the LCA into some arbitrary logical circuit. This process is shown in Figure 2.
For this research, we applied a one-dimensional, nearest-neighbor, 4-color CA. Similar to Wolfram’s work on elementary cellular automata, we define the neighbors for each cell 

With this method, we can encode some arbitrary logic circuit as the CA rules required to generate it.
In this paper, we use Genetic Algorithm (GA) to search for desired logical circuits. We define the genotypes as the CA rule, and the phenotypes as the generated circuit. Each individual’s DNA is a CA rule of the format:
This paper utilizes the following GA strategies: Fitness-Proportionate Selection, Elitism, Tournament Selection, and Uniform Crossover.
