AWGN model kanału w Verilog

I

IEEE

Guest
Interesuje mnie, czy ktoś to zrobił w Verilog.Mam C, C i Matlab wersje bat zainteresowanych w celu uzyskania wersji HDL.

 
I m need it too. Może u analizować kod następująco:

************************************************** *****************************/
/************************************************* ******************************
Moduł generuje hałas, za pomocą m pobieranie sekwencji.
X sekwencja jest zbudowany przy użyciu prymitywnych wielomianu
1 x (7) x (18).
Y sekwencja jest zbudowany przy użyciu ploynomial
1 x (5) x (7) x (10) x (18).

x jest iniatialized z x (0) = x (1) = x (2) ...= X (17) = 0,
rekurencyjnych definicji
x (i 18) = x (i 7) x (i) modulo 2.

y jest iniatialized z y (0) = y (1) = y (2) ...= Y (17) = 1.
rekurencyjnych definicji
y (i 18) = Y (I 10) Y (I 7) y (t 5) y (i) modulo 2.

Hałas jest wyjście z (i) = x (i) y (i) modulo 2.

************************************************** *****************************/

Moduł GEN_NOISE (
/ / Dane wejściowe
Clk16,
Resetuj
Node_sync,
Channel_noise,

/ / Dane wyjściowe
Noise_data
) / * Syn_hier syntezy = "twardych" * /;Clk16 naliczonego;
wejście Reset;
wejście Node_sync;
wejscie [9:0] Channel_noise;

/ / Dane wyjściowe
output [9:0] Noise_data;

reg [9:0] Noise_data;
reg Noise_start;
reg [17:0] Xseq;
reg [17:0] Yseq;

wire [1:0] Xshift;
wire [2:0] Yshift;
wire [1:0] Noise_out;
wire [9:0] N_NOISE_ENG;

/ / Moduł rozpocząć.

//************************************************ ******************************
////////////////////////////////////////////////// //////////////////////////////
/ / Oczekiwanie węzeł synchronicznego sygnału.

always @ (posedge Clk16 lub posedge Reset)
zacząć
if (Reset == 1'b1)
Noise_start <= 1'b0;
w przeciwnym razie
if (Node_sync == 1'b1)
Noise_start <= 1'b1;
inny;
koniec

////////////////////////////////////////////////// //////////////////////////////
//************************************************ ******************************

//************************************************ ******************************
////////////////////////////////////////////////// //////////////////////////////
/ / Wygeneruj x i y sekwencji.

przypisać Xshift = Xseq [7] Xseq [0];

always @ (posedge Clk16 lub posedge Reset)
zacząć
if (Reset == 1'b1)
Xseq <= 18'b0;
w przeciwnym razie
if (Noise_start == 1'b1)
zacząć
Xseq [16:0] <= Xseq [17:1];
Xseq [17] <= Xshift [0];
koniec
inny;
koniec

////////////////////////////////////////////////// //////////////////////////////

przypisać Yshift = Yseq [10] Yseq [7] Yseq [5] Yseq [0];

always @ (posedge Clk16 lub posedge Reset)
zacząć
if (Reset == 1'b1)
Yseq <= 18'h3ffff;
w przeciwnym razie
if (Noise_start == 1'b1)
zacząć
Yseq [16:0] <= Yseq [17:1];
Yseq [17] <= Yshift [0];
koniec
inny;
koniec

////////////////////////////////////////////////// //////////////////////////////
//************************************************ ******************************
/ / Generowanie danych dotyczących hałasu.

przypisać Noise_out = Xseq [0] Yseq [0];

przypisać N_NOISE_ENG = (~ Channel_noise) 1;

always @ (posedge Clk16 lub posedge Reset)
zacząć
if (Reset == 1'b1)
Noise_data <= 11'b0;
w przeciwnym razie
if (Noise_start == 1'b1)
if (Noise_out [0] == 1'b1)
Noise_data <= N_NOISE_ENG;
w przeciwnym razie
Noise_data <= Channel_noise;
w przeciwnym razie
;
koniec////////////////////////////////////////////////// //////////////////////////////

endmodule / / End GEN_NOISE

 

Welcome to EDABoard.com

Sponsor

Back
Top