Alright, I'll start. Your first layer of lookup tables will look like this:
0 0 0 0 = 00 0 0 0 1 = 01 0 0 1 0 = 01 0 0 1 1 = 10 0 1 0 0 = 01 0 1 0 1 = 10 0 1 1 0 = 10 0 1 1 1 = 11 1 0 0 0 = 01 1 0 0 1 = 10 1 0 1 0 = 10 1 0 1 1 = 11 1 1 0 0 = 10 1 1 0 1 = 11 1 1 1 0 = 11 1 1 1 1 = 00
Place four of them on your fifteen-bit input, take out the outputs, and pass them through two new lookup tables, which look like this:
0 0 0 0 = 000 0 0 0 1 = 001 0 0 1 0 = 010 0 0 1 1 = 011 0 1 0 0 = 001 0 1 0 1 = 010 0 1 1 0 = 011 0 1 1 1 = 100 1 0 0 0 = 010 1 0 0 1 = 011 1 0 1 0 = 100 1 0 1 1 = 101 1 1 0 0 = 011 1 1 0 1 = 100 1 1 1 0 = 101 1 1 1 1 = 110
... and so on. Of course, you have to solve the problem of all zeros, and they all produce the same output in the first layer.
And I can be absolutely wrong.
Robert Harvey
source share