4.01 - Генератор шума (концепт)

Генерировать шум можно не только на аналоговом элементе, но и с помощью регистров сдвига, как например тут:

http://radiostorage.net/?area=news/1858

Казалось бы, можно собрать такую схему рядом со схемой на ПЛИС и можно его применять, загоняя в ПЛИС, но... постойте. Генератор шума можно реализовать прямо внутри ПЛИС!!!

http://electronics.stackexchange.com/questions/30521/random-bit-sequence-using-verilog

Пример основан на генераторе 1-го бинтного звука. По тому же принципу получаем частоту дискретизации 48000 КГц и получаем новое значение.

module gen(

input wire clk,

output reg snd

);

//48000 Hz generator

// 50000000 hz / 48000 hz = 1042

reg[24:0] note_counter;

reg[30:0] d;

initial

begin

d = 31'b0011010100100100110010101110010;


snd = 0;

note_counter = 1042;

end

always @(posedge clk) begin

//целочисленное деление

if (note_counter == 0)

begin

//Генерим целочисленно

d <= { d[30:0], d[30] ^ d[27] };

snd = d[5:5];


note_counter = 1042;

end else begin

note_counter = note_counter -1;

end

end

endmodule

Проект, приложенный внизу, собран под Quartus 11.1, для платы на Cyclone EP4CE10E22C8N