@alcim.dev wanted to help me with the tapeout and translated Hammer18.vhdl to Hammer18.v with his custom AI tools. So I had to verify everything in detail. To my surprise, the AI did not hallucinate anything, but it uncovered two typos in the original file!
Note: these typos did not affect the efficiency of the whole system, the change in error detection rate is insignificant, probably the same order of magnitude as using a different permutation, or swapping wires at the input or output. The correction was necessary for overall coherence reasons, and I expect other, better permutations will appear in the future so it was more important in December to move forward, with a "good enough" permutation and assess the overall system performance.
So I have uploaded the new version of Hammer18.vhdl and, for reference, here is the online sim and here is the corresponding diagram:

This was originally published in 124. Proof, pudding.
The two typos explain the last glitch in 126. Hammer = Hamming Maximiser
For more reference, the original permutations are
Perm1965 = forward( 3 5 9 17 16 10 15 12 1 2 0 14 6 7 13 8 11 4 ) reverse( 10 8 9 0 17 1 12 13 15 2 5 16 7 14 11 6 4 3 ) Perm7515 = forward( 17 2 11 0 6 16 8 9 10 14 1 7 13 15 5 12 4 3 ) reverse( 3 10 1 17 16 14 4 11 6 7 8 2 15 12 9 13 5 0 ) Perm4021 = forward( 4 17 6 5 1 15 7 14 16 13 0 9 10 8 12 2 3 11 ) reverse( 10 4 15 16 0 3 2 6 13 11 12 17 14 9 7 5 8 1 )
but there was another glitch during the graphic transcription.
And the above permutations were designed and meant to be fed into more structured code, such that copy-pasting the above numbers would indeed avoid any typo. But that transformation will be for later.
.............................................................................................................
Another interesting realization is that the sea-of-xor, the latch and the combination-xor can work in different orders, allowing a better integration in the pipeline, where it amounts to only one XOR layer in the pipeline. Here are only a few possibilities:

TODO:
The new version of the file must be verified and the avalanche profile compared to the original diagram.
===> YES !
~/miniMAC$ ./runme_testHammer.sh
total:200
7 16 100001001101110000
8 14 110111000000100110
8 6 000000011111111000
8 7 101110111001000000
8 8 111111000010100000
9 13 000111100010110101
9 15 111111000000101100
9 17 000000011111111010
9 5 110001101011001010
11 4 010111100110110101
12 12 001101111111010101
13 0 110111011111011001
14 3 110111101110011111
15 10 111110111111111001
15 1 110111011111011111
15 11 111110111111110101
15 2 110111101111011111
15 9 111111011111111001
. .
TODO:
Solve the fanout imbalance issues
.
though so far, the Hammer circuit easily fits in the current 10ns cycle time.
Yann Guidon / YGDES
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.