Skip to content
This repository was archived by the owner on Jan 4, 2025. It is now read-only.

Methodology

Chawit Leosrisook edited this page Feb 17, 2019 · 1 revision

Methodology

1. Logical Cell & Logical Cell Array (LCA)

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.

2. Cellular Automaton

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 Cell Definition as CA Neighborhood definition, where y denotes the vertical axis (time), and x denotes the horizontal axis (cell index). With this settings, CA rules are 4^3=64 integers long, and there are approximately 4^64≈3.403×10^38 rules in total. Finally, the CA grid is torus shaped, cells at edges of the grid loops around to the opposite edges, similar to the LCA.

With this method, we can encode some arbitrary logic circuit as the CA rules required to generate it.

3. Genetic Algorithm

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:

DNA Format

This paper utilizes the following GA strategies: Fitness-Proportionate Selection, Elitism, Tournament Selection, and Uniform Crossover.

Clone this wiki locally