forked from Github_Repos/cvw
clmul passes lint
This commit is contained in:
parent
d7c540d047
commit
76bc1b5999
@ -37,14 +37,26 @@ module clmul #(parameter WIDTH=32) (
|
|||||||
// Note: only generates the bottom WIDTH bits of the carryless multiply.
|
// Note: only generates the bottom WIDTH bits of the carryless multiply.
|
||||||
// To get the high bits or the reversed bits, the inputs can be shifted and reversed
|
// To get the high bits or the reversed bits, the inputs can be shifted and reversed
|
||||||
// as they are in zbc where this is instantiated
|
// as they are in zbc where this is instantiated
|
||||||
|
/*
|
||||||
genvar i;
|
genvar i;
|
||||||
for (i=0; i<WIDTH; i++) begin
|
for (i=0; i<WIDTH; i++) begin
|
||||||
assign pp[i] = ((A & {(WIDTH){B[i]}}) << i); // Fill partial product array
|
assign pp[i] = ((A & {(WIDTH){B[i]}}) << i); // Fill partial product array
|
||||||
// ClmulResult ^= pp[i];
|
// ClmulResult ^= pp[i];
|
||||||
end
|
end
|
||||||
|
|
||||||
assign ClmulResult = pp.xor();
|
assign ClmulResult = pp.xor();
|
||||||
|
*/
|
||||||
|
genvar i,j;
|
||||||
|
for (i=1; i<WIDTH;i++) begin:outer //loop fills partial product array
|
||||||
|
for (j=0;j<=i;j++) begin: inner
|
||||||
|
assign pp[i][j] = A[i]&B[j];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for (i=1;i<WIDTH;i++) begin:xortree
|
||||||
|
assign ClmulResult[i] = ^pp[i:0][i];
|
||||||
|
end
|
||||||
|
|
||||||
|
assign ClmulResult[0] = A[0]&B[0];
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user