To check two circuits are equivalent or not using a method called SAT.
SAT:To check if there is the possibility that at least one output of the two circuits has different values for the same input.
The following steps have to be performed
1. Read in two netlist files,(This task is already perfomed by the provided python template file provided which also performs the task of creating data structures)
[url removed, login to view] a miter circuit,(is an “imaginary” circuit that combines both netlists. Such a circuit is called “miter”. It has exactly one output. If it can be proven that this output is zero for all input assignments, the netlists are equivalent. Otherwise, the netlists are not equivalent.
3. Create a CNF(characteristic function) from the miter, (The characteristic function of a boolean function is a function which takes all variables (inputs and outputs) as function parameters. The function result shall be one if the parameters represent a valid variable assignment for that gate. It is also known as karnaugh-map.
4. solve the CNF (Davis Putnam algorithm), solving the equations of the CNF by taking last variable by either taking as 0 or 1. For more understanding on Davis putnam refer PDF.
5. and output the result (either “equivalent” or a not equivalent and if not equivalent then print a counter example).
Please refer PDF which is attached for more detailed information and understanding of the task. Also attached are the C++, python template file which does the basic task of reading in the netlists.
5 freelancer đang chào giá trung bình €122 cho công việc này
Hi, I have got your job posting and I am very interested in this project. I have many experiences of c++ programming over 10 years. If you select me, I will do my best to complete the project. Thanks