Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

MultipleInitialStates.html

Blame
  • DA_LUT.sv 697.46 KiB
    package DA_LUT;
    
    parameter N = 16;
    parameter BW = 16;
    
    function int clog2(input int n);
    	begin 
    	clog2 = 0;
    	n--;
    	while(n > 0)
    		begin
    			clog2++;
    			n >>= 1;
    		end
    	end
    endfunction
    
    /*
    - The input to the LUT is an N Bit input vector (hence 2^N - 1 possible inputs)
    - The maximum value of the output would be N*(2^BW-1) assuming a BW sized coefficients and an input vector of all 1's
    - Hence, this required log2(N*(2^BW-1))+1 bits to store = log2(N) + log2(2^BW-1) + 1 = (BW) + log2(N)
    - In reality, I have chosen to just use (N+8) bits for the size of the multiplication_coefficients as this matches the size of partial_sum
    */
    const logic signed [(N-1)+8:0] multiplication_coefficients [0:2**N-1] = '{
    24'd0, -24'd79, -24'd136, -24'd215, 24'd312, 24'd233, 24'd176, 24'd97, 24'd654, 
    24'd575, 24'd518, 24'd439, 24'd966, 24'd887, 24'd830, 24'd751, -24'd1244, 
    -24'd1323, -24'd1380, -24'd1459, -24'd932, -24'd1011, -24'd1068, -24'd1147, -24'd590, 
    -24'd669, -24'd726, -24'd805, -24'd278, -24'd357, -24'd414, -24'd493, -24'd2280, 
    -24'd2359, -24'd2416, -24'd2495, -24'd1968, -24'd2047, -24'd2104, -24'd2183, -24'd1626, 
    -24'd1705, -24'd1762, -24'd1841, -24'd1314, -24'd1393, -24'd1450, -24'd1529, -24'd3524, 
    -24'd3603, -24'd3660, -24'd3739, -24'd3212, -24'd3291, -24'd3348, -24'd3427, -24'd2870, 
    -24'd2949, -24'd3006, -24'd3085, -24'd2558, -24'd2637, -24'd2694, -24'd2773, 24'd4501, 
    24'd4422, 24'd4365, 24'd4286, 24'd4813, 24'd4734, 24'd4677, 24'd4598, 24'd5155, 
    24'd5076, 24'd5019, 24'd4940, 24'd5467, 24'd5388, 24'd5331, 24'd5252, 24'd3257, 
    24'd3178, 24'd3121, 24'd3042, 24'd3569, 24'd3490, 24'd3433, 24'd3354, 24'd3911, 
    24'd3832, 24'd3775, 24'd3696, 24'd4223, 24'd4144, 24'd4087, 24'd4008, 24'd2221, 
    24'd2142, 24'd2085, 24'd2006, 24'd2533, 24'd2454, 24'd2397, 24'd2318, 24'd2875, 
    24'd2796, 24'd2739, 24'd2660, 24'd3187, 24'd3108, 24'd3051, 24'd2972, 24'd977, 
    24'd898, 24'd841, 24'd762, 24'd1289, 24'd1210, 24'd1153, 24'd1074, 24'd1631, 
    24'd1552, 24'd1495, 24'd1416, 24'd1943, 24'd1864, 24'd1807, 24'd1728, 24'd14655, 
    24'd14576, 24'd14519, 24'd14440, 24'd14967, 24'd14888, 24'd14831, 24'd14752, 24'd15309, 
    24'd15230, 24'd15173, 24'd15094, 24'd15621, 24'd15542, 24'd15485, 24'd15406, 24'd13411, 
    24'd13332, 24'd13275, 24'd13196, 24'd13723, 24'd13644, 24'd13587, 24'd13508, 24'd14065, 
    24'd13986, 24'd13929, 24'd13850, 24'd14377, 24'd14298, 24'd14241, 24'd14162, 24'd12375, 
    24'd12296, 24'd12239, 24'd12160, 24'd12687, 24'd12608, 24'd12551, 24'd12472, 24'd13029, 
    24'd12950, 24'd12893, 24'd12814, 24'd13341, 24'd13262, 24'd13205, 24'd13126, 24'd11131, 
    24'd11052, 24'd10995, 24'd10916, 24'd11443, 24'd11364, 24'd11307, 24'd11228, 24'd11785, 
    24'd11706, 24'd11649, 24'd11570, 24'd12097, 24'd12018, 24'd11961, 24'd11882, 24'd19156, 
    24'd19077, 24'd19020, 24'd18941, 24'd19468, 24'd19389, 24'd19332, 24'd19253, 24'd19810, 
    24'd19731, 24'd19674, 24'd19595, 24'd20122, 24'd20043, 24'd19986, 24'd19907, 24'd17912, 
    24'd17833, 24'd17776, 24'd17697, 24'd18224, 24'd18145, 24'd18088, 24'd18009, 24'd18566, 
    24'd18487, 24'd18430, 24'd18351, 24'd18878, 24'd18799, 24'd18742, 24'd18663, 24'd16876, 
    24'd16797, 24'd16740, 24'd16661, 24'd17188, 24'd17109, 24'd17052, 24'd16973, 24'd17530, 
    24'd17451, 24'd17394, 24'd17315, 24'd17842, 24'd17763, 24'd17706, 24'd17627, 24'd15632, 
    24'd15553, 24'd15496, 24'd15417, 24'd15944, 24'd15865, 24'd15808, 24'd15729, 24'd16286, 
    24'd16207, 24'd16150, 24'd16071, 24'd16598, 24'd16519, 24'd16462, 24'd16383, 24'd14655, 
    24'd14576, 24'd14519, 24'd14440, 24'd14967, 24'd14888, 24'd14831, 24'd14752, 24'd15309, 
    24'd15230, 24'd15173, 24'd15094, 24'd15621, 24'd15542, 24'd15485, 24'd15406, 24'd13411, 
    24'd13332, 24'd13275, 24'd13196, 24'd13723, 24'd13644, 24'd13587, 24'd13508, 24'd14065, 
    24'd13986, 24'd13929, 24'd13850, 24'd14377, 24'd14298, 24'd14241, 24'd14162, 24'd12375, 
    24'd12296, 24'd12239, 24'd12160, 24'd12687, 24'd12608, 24'd12551, 24'd12472, 24'd13029, 
    24'd12950, 24'd12893, 24'd12814, 24'd13341, 24'd13262, 24'd13205, 24'd13126, 24'd11131, 
    24'd11052, 24'd10995, 24'd10916, 24'd11443, 24'd11364, 24'd11307, 24'd11228, 24'd11785, 
    24'd11706, 24'd11649, 24'd11570, 24'd12097, 24'd12018, 24'd11961, 24'd11882, 24'd19156, 
    24'd19077, 24'd19020, 24'd18941, 24'd19468, 24'd19389, 24'd19332, 24'd19253, 24'd19810, 
    24'd19731, 24'd19674, 24'd19595, 24'd20122, 24'd20043, 24'd19986, 24'd19907, 24'd17912, 
    24'd17833, 24'd17776, 24'd17697, 24'd18224, 24'd18145, 24'd18088, 24'd18009, 24'd18566, 
    24'd18487, 24'd18430, 24'd18351, 24'd18878, 24'd18799, 24'd18742, 24'd18663, 24'd16876, 
    24'd16797, 24'd16740, 24'd16661, 24'd17188, 24'd17109, 24'd17052, 24'd16973, 24'd17530, 
    24'd17451, 24'd17394, 24'd17315, 24'd17842, 24'd17763, 24'd17706, 24'd17627, 24'd15632,