Logic Gate Design Rules
As a proof of principle, we have exhausted all possible Boolean logic functions with two inputs and one output. We speculated that the first design rule is to find out the simplest construction of each two-input logic gate, where 'simplest' was defined as the fewest logic bases utilized in the whole network.
In addition, if several layouts can be generated for a specific logic circuit using the same number of logic bases, we tended to select the one using more NOT and OR, since these two gates are easier to be assembled into cells and cause less metabolic burden compared with AND gate.
We have developed a specific Breadth-First-Search (BFS) method to find out each combinational logic circuit meeting the design requirements. First of all, the outputs A and B could be readily obtained without any logic bases. Then we applied NOT, OR and AND gate respectively to the established circuits, resulting in NOT A, NOT B, A OR B and A AND B. Once again, by connecting the newly-obtained logic gates using the three bases, we could construct more new gates, and similarly repeated procedures would generate all the sixteen combinational logic gates, and the BFS method itself would guarantee that all the combinations of logic bases we have found are the simplest ones corresponding to our definition. The CPP source files of our calculation is available here.
We also provide compiled version of our software, which can be accessed from
Logic Gate Design software for Windows: http://sharesend.com/q7iyi
Logic Gate Design software for Linux: http://sharesend.com/0pqvu
source files: http://sharesend.com/vz9de