warnings "Xst: 1710 or 1895" in ISE14.7
You can get rid of that warning but you might get another one back.

Start with defining a different reg size reg [4:0] krA; Then adjust all operations to correct for losing the LS bit.
Then at the end assign it to krA but setting the LS bit to zero:

reg [4:0] krA;

... // FSM as you had it but half krA:
krA &lt;= Nk * 2;
...
krA &lt;= krA + 1;


assign kr_A = {krA,1'b0};


But now you can have a warning with says something like: "port has static value, This net will be trimmed during the optimization process."
(I did not try the code). 



Just a general remark about your code:

You use ports without reg. Then you define local regs with nearly the same name and at the end you assign them to the port.
That is confusing and superfluous. I prefer the same variable throughout like your did with exor1 and exor2. The fact that you use a mixture of the two is even more confusing to me.