Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - Receives n-bit value 'A' and returns lg(n)+1 bit value indicating the number of sequential ones starting from the LSB. eg '01001011' yields '010'
 - A3A2A1A0|S2S1S0
 - 0 0 0 0 |0 0 0
 - 0 0 0 1 |0 0 1
 - 0 0 1 1 |0 1 0
 - 0 0 1 0 |0 0 0
 - 0 1 0 0 |0 0 0
 - 0 1 0 1 |0 0 1
 - 0 1 1 1 |0 1 1
 - 0 1 1 0 |0 0 0
 - 1 1 0 0 |0 0 0
 - 1 1 0 1 |0 0 1
 - 1 1 1 1 |1 0 0
 - 1 1 1 0 |0 0 0
 - 1 0 0 0 |0 0 0
 - 1 0 0 1 |0 0 1
 - 1 0 1 1 |0 1 1
 - 1 0 1 0 |0 0 0
 - A3A2\A1A0 00 01 11 10
 - 00 0 0 0 0
 - 01 0 0 0 0
 - 11 0 0 1 0
 - 10 0 0 0 0
 - S2 =A3A2A1A0
 - A3A2\A1A0 00 01 11 10
 - 00 0 0 1 0
 - 01 0 0 1 0
 - 11 0 0 0 0
 - 10 0 0 1 0
 - S1 = A1A0(A3'+A2')
 - A3A2\A1A0 00 01 11 10
 - 00 0 1 0 0
 - 01 0 1 1 0
 - 11 0 1 0 0
 - 10 0 1 1 0
 - S0 = A1'A0+A3'A2A0
 - In|Out
 - 1 |1
 - 2 |2
 - 3 |2
 - 4 |3
 - 8 |4
 - 16 |5
 - 32 |6
 - 64 |7
 - \\\\\\\\\\\\\\\\
 - 16 bit #
 - 1000 0000 0000 0000 //location of left-most bit
 - |---8---| |---8---|
 - Bit 16 if left bank all ones and right bank all ones
 - 0111 1111 1000 0000
 - |---8---| |---8---|
 - Bit 8 if left bank not all ones and right bank all ones
 - 0111 1000 0111 1000
 - |---8---| |---8---|
 - Bit 4 if left bank not all ones and right bank all ones
 - \\\\\\\\\\\\\\
 - xxxx xxxx xxxx xxx0 00000 0
 - xxxx xxxx xxxx xx01 00001 1
 - xxxx xxxx xxxx x011 00010 2
 - xxxx xxxx xxxx 0111 00011 3 xxx0
 - xxxx xxxx xxx0 1111 00100 4
 - xxxx xxxx xx01 1111 00101 5
 - xxxx xxxx x011 1111 00110 6
 - xxxx xxxx 0111 1111 00111 7 xx01
 - xxxx xxx0 1111 1111 01000 8
 - xxxx xx01 1111 1111 01001 9
 - xxxx x011 1111 1111 01010 10
 - xxxx 0111 1111 1111 01011 11 x011
 - xxx0 1111 1111 1111 01100 12
 - xx01 1111 1111 1111 01101 13
 - x011 1111 1111 1111 01110 14
 - 0111 1111 1111 1111 01111 15 0111
 - 1111 1111 1111 1111 10000 16 1111
 - Anding blocks of four bits yields the same pattern as a four subsequence.
 - 1: Any sequential pair is 01 with all ones afterward
 - ---------------------- Bit 1
 - xxxx xxxx xxxx xx01 00001 1
 - xxxx xxxx xxxx 0111 00011 3
 - xxxx xxxx xx01 1111 00101 5
 - xxxx xxxx 0111 1111 00111 7
 - xxxx xx01 1111 1111 01001 9
 - xxxx 0111 1111 1111 01011 11
 - xx01 1111 1111 1111 01101 13
 - 0111 1111 1111 1111 01111 15
 - +++ Reduce via dc's
 - dc\ba 00 01 11 10
 - 00 0 a 0 0
 - 01 0 a b 0
 - 11 0 a 0 0
 - 10 0 a 0 0
 - ---------------------- Bit 2
 - xxxx xxxx xxxx x011 00010 2
 - xxxx xxxx xxxx 0111 00011 3
 - xxxx xxxx x011 1111 00110 6
 - xxxx xxxx 0111 1111 00111 7
 - xxxx x011 1111 1111 01010 10
 - xxxx 0111 1111 1111 01011 11
 - x011 1111 1111 1111 01110 14
 - 0111 1111 1111 1111 01111 15
 - ---------------------- Bit 4
 - xxxx xxxx xxx0 1111 00100 4
 - xxxx xxxx xx01 1111 00101 5
 - xxxx xxxx x011 1111 00110 6
 - xxxx xxxx 0111 1111 00111 7
 - xxx0 1111 1111 1111 01100 12
 - xx01 1111 1111 1111 01101 13
 - x011 1111 1111 1111 01110 14
 - 0111 1111 1111 1111 01111 15
 - ---------------------- Bit 8
 - xxxx xxx0 1111 1111 01000 8
 - xxxx xx01 1111 1111 01001 9
 - xxxx x011 1111 1111 01010 10
 - xxxx 0111 1111 1111 01011 11
 - xxx0 1111 1111 1111 01100 12
 - xx01 1111 1111 1111 01101 13
 - x011 1111 1111 1111 01110 14
 - 0111 1111 1111 1111 01111 15
 - ---------------------- Bit 16
 - 1111 1111 1111 1111 10000 16
 - \\\\\ Solving the four case:
 - xxx0 000 0
 - xx01 001 1
 - x011 010 2
 - 0111 011 3 xxx0
 - 1111 100
 - A3A2A1A0 | S2S1S0
 - 0 0 0 0 | 0 0 0
 - 0 0 0 1 | 0 0 1
 - 0 0 1 1 | 0 1 0
 - 0 0 1 0 | 0 0 0
 - 0 1 0 0 | 0 0 0
 - 0 1 0 1 | 0 0 1
 - 0 1 1 1 | 0 1 1
 - 0 1 1 0 | 0 0 0
 - 1 1 0 0 | 0 0 0
 - 1 1 0 1 | 0 0 1
 - 1 1 1 1 | 1 0 0
 - 1 1 1 0 | 0 0 0
 - 1 0 0 0 | 0 0 0
 - 1 0 0 1 | 0 0 1
 - 1 0 1 1 | 0 1 0
 - 1 0 1 0 | 0 0 0
 - A3A2\A1A0 00 01 11 10
 - 00 0 0 0 0
 - 01 0 0 0 0
 - 11 0 0 1 0
 - 10 0 0 0 0
 - S2 =A3A2A1A0
 - A3A2\A1A0 00 01 11 10
 - 00 0 0 1 0
 - 01 0 0 1 0
 - 11 0 0 0 0
 - 10 0 0 1 0
 - S1 = A1A0(A3'+A2')
 - = A1A0(A3A2)'
 - = A3'A1A0+A2'A1A2
 - A3A2\A1A0 00 01 11 10
 - 00 0 1 0 0
 - 01 0 1 1 0
 - 11 0 1 0 0
 - 10 0 1 0 0
 - S0 = A1'A0+A3'A2A0
 - = (A1'+A3'A2)A0
 - A3A2\A1A0 00 01 11 10
 - 00 0 0 1 0
 - 01 0 0 0 0
 - 11 0 0 1 0
 - 10 0 0 0 0
 - Feed S2 into the next layer to compute the next pair of output bit
 - /////////////Modular Design Of Fast Leading Zeros Counting Circuit
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment