§ Верхний уровень

1/*
2 * Генератор 32-х битных случайных чисел
3 * marsohod.org/projects/proekty-dlya-platy-marsokhod3/325-random-gen
4 */
5
6wire [31:0] rnd;
7
8rand32 RANDOM32
9(
10    .clock (clk), // 100 Mhz
11    .rnd   (rnd)  // 32 bit
12);

§ rand32.v

1module rand32
2(
3    input  wire        clock,
4    output reg  [31:0] rnd
5);
6
7initial rnd = 32'h00000001;
8
9// Следующий бит случайности
10wire next_bit = rnd[31] ^ rnd[30] ^ rnd[29] ^ rnd[27] ^ rnd[25] ^ rnd[0];
11
12// Генератор
13always @(posedge clock) rnd <= { next_bit, rnd[31:1] };
14
15endmodule