module fnmcve(o_crc); output reg [7:0] o_crc; always @(*) o_crc = gencrc({ 2'b01, 6'h11, 32'h00 }); function [7:0] gencrc; input [39:0] i_cmdword; integer icrc; gencrc = 0; for(icrc=0; icrc<40; icrc=icrc+1) if (i_cmdword[39-icrc] ^ gencrc[7]) gencrc[7:1] = { gencrc[6:1], 1'b0 } ^ 7'h09; else gencrc[7:1] = { gencrc[6:1], 1'b0 }; gencrc = { gencrc[7:1], 1'b1 }; endfunction endmodule