Learning Combinational Logic ECE 539 Final Project Marcel Wermeckes
Boolean equation input User enters boolean equations Number of equations can be very large Number of input variables arbitrary Examples: F=A+B&(!C)+(B^D)&A G=B&C^(!(D&A))
Boolean functions supported AND & OR + XOR ^ NOT ! Program follows precedence rules: A+B&D = A+(B&D) All equations must have correct parentheses
Training Neural Network learns combinational logic through I/O patterns Backpropagation Algorithm One hidden layer Parameters that can be set by user: • Momentum • Learning rate • Number of nodes in hidden layer • Number of training cycles/epochs
Testing After being trained, program will ask user for values of input variables and computes output Compares all output patterns of boolean equations with output generated by Neural Network Dumps errors to a file
Algorithm Implementation C++ dynamic Type double for all calculations Input Hidden Output
Results A&B^C+(A&B)^A A+((!B)+C&A) C+B^A