#include main (){ int i=0; unsigned int lfsr = 1; for (i=1; i<4096; i++){ lfsr = (lfsr >> 1) ^ (-(signed int)(lfsr & 1) & 0x00000ca0u); /* taps 12 11 8 6 */ printf("VALUE[%04d] =\t %x\n",i,lfsr); } } module RandomNumber ( i_go, o_RandNumberOut, Clk , Rst_n ); input go; input Clk; input Rst_n; output [12:0] o_RandNumberOut; always @(podedge Clk) begin integer i = 0; integer lfsr = 0 ; for( i=1; i<4096 ; i=i+1 ) begin lfs r= (lfsr >> 1) ^ (-(signed int)(lfsr & 1) & 0x00000ca0u); end end