§ Верхний уровень
/* * Генератор 32-х битных случайных чисел * marsohod.org/projects/proekty-dlya-platy-marsokhod3/325-random-gen */ wire [31:0] rnd; rand32 RANDOM32 ( .clock (clk), // 100 Mhz .rnd (rnd) // 32 bit );
§ rand32.v
module rand32 ( input wire clock, output reg [31:0] rnd ); initial rnd = 32'h00000001; // Следующий бит случайности wire next_bit = rnd[31] ^ rnd[30] ^ rnd[29] ^ rnd[27] ^ rnd[25] ^ rnd[0]; // Генератор always @(posedge clock) rnd <= { next_bit, rnd[31:1] }; endmodule