ソースを参照

Для каждого из фильтров от 3МГц до 10МГц задан свой параметр среднего шума трассы, для замены нулей. Остальным фильтрам параметр указан равным 0 (0 будет заменятсья на 0). Используются 8 бит сгенерированого шума для подмешивания к отсчетам АЦП. Сейчас труктура выглядит как AdcDataCapture->AdcDataCalibration->NoizeAddition->SoftwareGating->DataGoingToDspCalc.

Shalambala 2 年 前
コミット
78d1ee25ff

+ 55 - 0
S5443_M/S5443.srcs/constrs_1/new/S5443Top.xdc

@@ -319,3 +319,58 @@ connect_debug_port u_ila_0/probe9 [get_nets [list {InternalDsp/adcDataBusExt[1][
 
 
 
+
+create_debug_core u_ila_0 ila
+set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
+set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0]
+set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0]
+set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]
+set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0]
+set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
+set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
+set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
+set_property port_width 1 [get_debug_ports u_ila_0/clk]
+connect_debug_port u_ila_0/clk [get_nets [list gclk_BUFG]]
+set_property PROBE_TYPE DATA [get_debug_ports u_ila_0/probe0]
+set_property port_width 3 [get_debug_ports u_ila_0/probe0]
+connect_debug_port u_ila_0/probe0 [get_nets [list {InitTrig2Mux/MuxCtrl_i[0]} {InitTrig2Mux/MuxCtrl_i[1]} {InitTrig2Mux/MuxCtrl_i[2]}]]
+create_debug_port u_ila_0 probe
+set_property PROBE_TYPE DATA [get_debug_ports u_ila_0/probe1]
+set_property port_width 23 [get_debug_ports u_ila_0/probe1]
+connect_debug_port u_ila_0/probe1 [get_nets [list {muxCtrl3[0]} {muxCtrl3[1]} {muxCtrl3[2]} {muxCtrl3[3]} {muxCtrl3[4]} {muxCtrl3[5]} {muxCtrl3[6]} {muxCtrl3[7]} {muxCtrl3[8]} {muxCtrl3[9]} {muxCtrl3[10]} {muxCtrl3[11]} {muxCtrl3[12]} {muxCtrl3[13]} {muxCtrl3[14]} {muxCtrl3[15]} {muxCtrl3[16]} {muxCtrl3[17]} {muxCtrl3[18]} {muxCtrl3[19]} {muxCtrl3[20]} {muxCtrl3[21]} {muxCtrl3[22]}]]
+create_debug_port u_ila_0 probe
+set_property PROBE_TYPE DATA [get_debug_ports u_ila_0/probe2]
+set_property port_width 6 [get_debug_ports u_ila_0/probe2]
+connect_debug_port u_ila_0/probe2 [get_nets [list {pulseBus__0[0]} {pulseBus__0[1]} {pulseBus__0[2]} {pulseBus__0[4]} {pulseBus__0[5]} {pulseBus__0[6]}]]
+create_debug_port u_ila_0 probe
+set_property PROBE_TYPE DATA [get_debug_ports u_ila_0/probe3]
+set_property port_width 1 [get_debug_ports u_ila_0/probe3]
+connect_debug_port u_ila_0/probe3 [get_nets [list {pulseBus[3]}]]
+create_debug_port u_ila_0 probe
+set_property PROBE_TYPE DATA [get_debug_ports u_ila_0/probe4]
+set_property port_width 1 [get_debug_ports u_ila_0/probe4]
+connect_debug_port u_ila_0/probe4 [get_nets [list measTrig]]
+create_debug_port u_ila_0 probe
+set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe5]
+set_property port_width 1 [get_debug_ports u_ila_0/probe5]
+connect_debug_port u_ila_0/probe5 [get_nets [list startMeasSync_reg_n_0]]
+create_debug_port u_ila_0 probe
+set_property PROBE_TYPE DATA [get_debug_ports u_ila_0/probe6]
+set_property port_width 1 [get_debug_ports u_ila_0/probe6]
+connect_debug_port u_ila_0/probe6 [get_nets [list StartMeas_o_OBUF]]
+create_debug_port u_ila_0 probe
+set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe7]
+set_property port_width 1 [get_debug_ports u_ila_0/probe7]
+connect_debug_port u_ila_0/probe7 [get_nets [list intTrig1]]
+create_debug_port u_ila_0 probe
+set_property PROBE_TYPE DATA [get_debug_ports u_ila_0/probe8]
+set_property port_width 1 [get_debug_ports u_ila_0/probe8]
+connect_debug_port u_ila_0/probe8 [get_nets [list trigForIntTrig2]]
+create_debug_port u_ila_0 probe
+set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe9]
+set_property port_width 1 [get_debug_ports u_ila_0/probe9]
+connect_debug_port u_ila_0/probe9 [get_nets [list intTrig2]]
+set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
+set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
+set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
+connect_debug_port dbg_hub/clk [get_nets gclk_BUFG]

+ 12 - 10
S5443_M/S5443.srcs/sources_1/new/InternalDsp/ComplPrng.v

@@ -22,11 +22,12 @@ module ComplPrng
 	parameter OutDataWidth = 20
 )
 (
-	input [InDataWidth-1:0] Data_i,
+	// input [InDataWidth-1:0] Data_i,
 	input Clk_i,
 	input Rst_i,
 
-	output signed	[OutDataWidth-1:0] DataAndPrng_o
+	// output signed	[OutDataWidth-1:0] DataAndPrng_o
+	output signed	[OutDataWidth-1:0] PrngData_o
 );
 //================================================================================
 //	REG/WIRE
@@ -50,7 +51,8 @@ reg	signed	[OutDataWidth-1:0]	dataAndPrngReg;
 assign	dataPrngCut			=	dataPrng[31-:DataPrngWidth];
 // assign	dataPrngCutExtended	=	{{OutDataWidth-DataPrngWidth{dataPrngCut[DataPrngWidth-1]}}, dataPrngCut};
 // assign	DataAndPrng_o		=	adcDataExtended+dataPrngCutExtended;
-assign	DataAndPrng_o		=	dataAndPrngReg;
+// assign	DataAndPrng_o		=	dataAndPrngReg;
+assign	PrngData_o			=	dataPrngCutExtended;
 //================================================================================
 //	CODING
 //================================================================================
@@ -82,12 +84,12 @@ always @(posedge Clk_i) begin
 	end
 end
 
-always @(posedge Clk_i) begin
-	if (Rst_i) begin
-		dataAndPrngReg	<=	0;
-	end else begin
-		dataAndPrngReg	<=	Data_i+dataPrngCutExtended;
-	end
-end
+// always @(posedge Clk_i) begin
+	// if (Rst_i) begin
+		// dataAndPrngReg	<=	0;
+	// end else begin
+		// dataAndPrngReg	<=	Data_i+dataPrngCutExtended;
+	// end
+// end
 
 endmodule

+ 15 - 12
S5443_M/S5443.srcs/sources_1/new/InternalDsp/DspPipeline.v

@@ -20,6 +20,7 @@ module DspPipeline
     input	StartFpConv_i,
 	
 	input	[WindCorrCoefWidth-1:0]	FilterCorrCoef_i,
+	input	[WindCorrCoefWidth-1:0]	AverageNoizeLvl_i,
 	input	[AdcCorrData-1:0]	AdcData_i,
 	input	[WindWidth-1:0]		Wind_i,
 	input	[NcoWidth-1:0]		NcoSin_i,
@@ -173,12 +174,13 @@ MyIntToFp
 )
 QToFp32
 (	
-	.Clk_i			(Clk_i),
-	.Rst_i			(Rst_i),
-	.InData_i		(AccResultQ),
-	.InDataVal_i	(StartFpConv_i),
-	.OutData_o		(qFp32Result),
-	.OutDataVal_o	(qFp32ResultVal)
+	.Clk_i				(Clk_i),
+	.Rst_i				(Rst_i),
+	.InData_i			(AccResultQ),
+	.AverageNoizeLvl_i	(AverageNoizeLvl_i),
+	.InDataVal_i		(StartFpConv_i),
+	.OutData_o			(qFp32Result),
+	.OutDataVal_o		(qFp32ResultVal)
 );
 
 MyIntToFp
@@ -190,12 +192,13 @@ MyIntToFp
 )
 IToFp32
 (	
-	.Clk_i			(Clk_i),
-	.Rst_i			(Rst_i),
-	.InData_i		(AccResultI),
-	.InDataVal_i	(StartFpConv_i),
-	.OutData_o		(iFp32Result),
-	.OutDataVal_o	(iFp32ResultVal)
+	.Clk_i				(Clk_i),
+	.Rst_i				(Rst_i),
+	.InData_i			(AccResultI),
+	.AverageNoizeLvl_i	(AverageNoizeLvl_i),
+	.InDataVal_i		(StartFpConv_i),
+	.OutData_o			(iFp32Result),
+	.OutDataVal_o		(iFp32ResultVal)
 );
 
 //===============================Result*NormCoeff=================================

+ 40 - 22
S5443_M/S5443.srcs/sources_1/new/InternalDsp/InternalDsp.v

@@ -91,6 +91,7 @@ module InternalDsp
 //  REG/WIRE
 	wire	[WindNormCoefWidth-1:0]	windNormCoef;
 	wire	[WindPNumWidth-1:0]		windPointsNum;
+	wire	[WindPNumWidth-1:0]		averageNoizeLvl;
 	wire	[WindNcoPhIncWidth-1:0]	windPhInc;
 	wire	[WindNcoPhIncWidth-1:0]	winPhIncStart;
 	
@@ -104,9 +105,12 @@ module InternalDsp
 	wire	[CorrAdcDataWidth-1:0]	adcDataBusExt	[ChNum-1:0];
 	wire	[CorrAdcDataWidth-1:0]	gatedAdcDataBus	[ChNum-1:0];
 	wire	[CorrAdcDataWidth-1:0]	calAdcData		[ChNum-1:0];
+	wire	[CorrAdcDataWidth-1:0]	prngData;
+	reg		[CorrAdcDataWidth-1:0]	prngDataBus		[ChNum-1:0];
 	wire	[ChNum-1:0]	calDone;
 	
 	genvar g;
+	integer i;
 	
 	wire	[ResultWidth-1:0]	resultImBus		[ChNum-1:0];
 	wire	[ResultWidth-1:0]	resultReBus		[ChNum-1:0];
@@ -152,6 +156,10 @@ module InternalDsp
 	assign	adcDataBus	[ChNum-3]	=	{{2{Adc1ChR1Data_i[AdcDataWidth-1]}},Adc1ChR1Data_i,4'b0};
 	assign	adcDataBus	[ChNum-4]	=	{{2{Adc1ChT1Data_i[AdcDataWidth-1]}},Adc1ChT1Data_i,4'b0};
 	
+	assign	adcDataBusExt	[ChNum-1]	=	calAdcData	[ChNum-1]+prngDataBus[ChNum-1];
+	assign	adcDataBusExt	[ChNum-2]	=	calAdcData	[ChNum-2]+prngDataBus[ChNum-2];
+	assign	adcDataBusExt	[ChNum-3]	=	calAdcData	[ChNum-3]+prngDataBus[ChNum-3];
+	assign	adcDataBusExt	[ChNum-4]	=	calAdcData	[ChNum-4]+prngDataBus[ChNum-4];
 	
 	assign	gatedAdcDataBus	[ChNum-1]	=	adc2ChT2DataGated;
 	assign	gatedAdcDataBus	[ChNum-2]	=	adc2ChR2DataGated;
@@ -255,13 +263,14 @@ WinParameters
 )
 WinParameters
 (	
-	.Clk_i			(Clk_i),
-	.Rst_i			(Rst_i),
-	.FilterCmd_i	(measCtrlReg[15-:8]),
-	.WinPhInc_o		(windPhInc),
-	.WinPhIncStart_o(winPhIncStart),
-	.WinNormCoef_o	(windNormCoef),
-	.WinPointsNum_o	(windPointsNum)
+	.Clk_i				(Clk_i),
+	.Rst_i				(Rst_i),
+	.FilterCmd_i		(measCtrlReg[15-:8]),
+	.WinPhInc_o			(windPhInc),
+	.WinPhIncStart_o	(winPhIncStart),
+	.WinNormCoef_o		(windNormCoef),
+	.WinPointsNum_o		(windPointsNum),
+	.AverageNoiseLvl_o	(averageNoizeLvl)
 );
 
 //----------------------------------------------
@@ -306,6 +315,29 @@ ncoInst
 	.Val_o		()
 );
 
+
+ComplPrng
+#(
+	.DataPrngWidth	(8),
+	.InDataWidth 	(CorrAdcDataWidth),
+	.OutDataWidth	(CorrAdcDataWidth)
+)
+ComplPrngAdderInst
+(
+	// .Data_i	(calAdcData[g]),
+	.Clk_i	(Clk_i),
+	.Rst_i	(Rst_i),
+
+	// .DataAndPrng_o	(adcDataBusExt[g]),
+	.PrngData_o		(prngData)
+);
+
+always @(posedge Clk_i) begin
+	prngDataBus[0]  <= prngData;
+	for(i=1; i<4; i=i+1) begin
+		prngDataBus	[i]<=prngDataBus[i-1];
+	end
+end
 //------------------------------------------------
 //Generating needed amount of calculating channels
 generate
@@ -328,21 +360,6 @@ generate
 			.CalDone_o				(calDone[g]),
 			.CalibratedAdcData_o	(calAdcData[g])
 		);
-
-		ComplPrng
-		#(
-			.DataPrngWidth	(8),
-			.InDataWidth 	(CorrAdcDataWidth),
-			.OutDataWidth	(CorrAdcDataWidth)
-		)
-		ComplPrngAdderInst
-		(
-			.Data_i	(calAdcData[g]),
-			.Clk_i	(Clk_i),
-			.Rst_i	(Rst_i),
-
-			.DataAndPrng_o	(adcDataBusExt[g])
-		);
 		
 		DspPipeline	
 		#(	
@@ -363,6 +380,7 @@ generate
 			.StartFpConv_i		(StartFpConv),
 			
 			.FilterCorrCoef_i	({filterCorrCoefHReg[0+:WindNcoPhIncWidth-CmdDataRegWith],filterCorrCoefLReg}),
+			.AverageNoizeLvl_i	(averageNoizeLvl),
 			.AdcData_i			(gatedAdcDataBus[g]),
 			.Wind_i				(wind),
 			.NcoSin_i			(ncoCos),

+ 53 - 5
S5443_M/S5443.srcs/sources_1/new/InternalDsp/WinParameters.v

@@ -32,7 +32,8 @@ module WinParameters
 	output		[WindPhIncWidth-1:0]	WinPhInc_o,
 	output		[WindPhIncWidth-1:0]	WinPhIncStart_o,
 	output		[WindNormCoefWidth-1:0]	WinNormCoef_o,
-	output		[WindPNumWidth-1:0]		WinPointsNum_o
+	output		[WindPNumWidth-1:0]		WinPointsNum_o,
+	output		[WindPNumWidth-1:0]		AverageNoiseLvl_o
 );
 //================================================================================
 //  REG/WIRE
@@ -40,13 +41,15 @@ module WinParameters
 	reg [WindPhIncWidth-1:0]	windPhInc;
 	reg	[WindNormCoefWidth-1:0]	winNormCoef;
 	reg	[WindPNumWidth-1:0]		winPointsNum;
+	reg	[WindPNumWidth-1:0]		averageNoiseLvl;
 //================================================================================
 //  ASSIGNMENTS
 //================================================================================	
-	assign	WinPhInc_o 		=	windPhInc;
-	assign	WinPhIncStart_o =	32'h80000000;
-	assign	WinNormCoef_o	=	winNormCoef;
-	assign	WinPointsNum_o	=	winPointsNum;
+	assign	WinPhInc_o 			=	windPhInc;
+	assign	WinPhIncStart_o		 =	32'h80000000;
+	assign	WinNormCoef_o		=	winNormCoef;
+	assign	WinPointsNum_o		=	winPointsNum;
+	assign	AverageNoiseLvl_o	=	averageNoiseLvl;
 //================================================================================
 //  CODING
 //================================================================================	
@@ -57,201 +60,241 @@ always	@	(posedge	Clk_i)	begin
 						windPhInc		<=	32'h2a8;
 						winNormCoef		<=	32'h3342b45d;
 						winPointsNum	<=	32'h30291a0;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h1 : begin//	1.5	Hz
 						windPhInc		<=	32'h3fc;
 						winNormCoef		<=	32'h3391cf5e;
 						winPointsNum	<=	32'h201b66a;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h2 : begin//	2	Hz
 						windPhInc		<=	32'h550;
 						winNormCoef		<=	32'h33c269d2;
 						winPointsNum	<=	32'h18148d0;
+						averageNoiseLvl	<=	32'h0;
 					 end
 			8'h3 : begin//	3	Hz
 						windPhInc		<=	32'h7f9;
 						winNormCoef		<=	32'h3411ccc1;
 						winPointsNum	<=	32'h100db35;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h4 : begin//	5	Hz
 						windPhInc		<=	32'hd49;
 						winNormCoef		<=	32'h347301aa;
 						winPointsNum	<=	32'h9a1d20;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h5 : begin//	7	Hz
 						windPhInc		<=	32'h129a;
 						winNormCoef		<=	32'h34aa19fd;
 						winPointsNum	<=	32'h6e14cd;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h10 : begin//	10	Hz
 						windPhInc		<=	32'h1a93;
 						winNormCoef		<=	32'h34f3005d;
 						winPointsNum	<=	32'h4d0e90;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h11 : begin//	15	Hz
 						windPhInc		<=	32'h27dd;
 						winNormCoef		<=	32'h35363ff7;
 						winPointsNum	<=	32'h335f0a;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h12 : begin//	20	Hz
 						windPhInc		<=	32'h3527;
 						winNormCoef		<=	32'h3572ffba;
 						winPointsNum	<=	32'h268748;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h13 : begin//	30	Hz
 						windPhInc		<=	32'h4fbb;
 						winNormCoef		<=	32'h35b63fa7;
 						winPointsNum	<=	32'h19af85;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h14 : begin//	50	Hz
 						windPhInc		<=	32'h84e3;
 						winNormCoef		<=	32'h3617df9c;
 						winPointsNum	<=	32'hf6950;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h15 : begin//	70	Hz
 						windPhInc		<=	32'hba0b;
 						winNormCoef		<=	32'h36549f77;
 						winPointsNum	<=	32'hb0214;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h20 : begin//	100	Hz
 						windPhInc		<=	32'h109c7;
 						winNormCoef		<=	32'h3697df93;
 						winPointsNum	<=	32'h7b4a8;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h21 : begin//	150	Hz
 						windPhInc		<=	32'h18eab;
 						winNormCoef		<=	32'h36e3cf84;
 						winPointsNum	<=	32'h5231a;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h22 : begin//	200	Hz
 						windPhInc		<=	32'h21390;
 						winNormCoef		<=	32'h3717df94;
 						winPointsNum	<=	32'h3da54;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h23 : begin//	300	Hz 
 						windPhInc		<=	32'h31d5b;
 						winNormCoef		<=	32'h3763cf83;
 						winPointsNum	<=	32'h2918d;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h24 : begin//	500	Hz
 						windPhInc		<=	32'h530e3;
 						winNormCoef		<=	32'h37bdd7e8;
 						winPointsNum	<=	32'h18a88;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h25 : begin//	700	Hz
 						windPhInc		<=	32'h7449e;
 						winNormCoef		<=	32'h3804e417;
 						winPointsNum	<=	32'h119ce;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h30 : begin//	1	kHz
 						windPhInc		<=	32'ha61fc;
 						winNormCoef		<=	32'h383dd7e8;
 						winPointsNum	<=	32'hc544;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h31 : begin//	1.5	kHz
 						windPhInc		<=	32'hf92fb;
 						winNormCoef		<=	32'h388e6329;
 						winPointsNum	<=	32'h8382;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h32 : begin//	2	kHz
 						windPhInc		<=	32'h14c3f9;
 						winNormCoef		<=	32'h38bdd900;
 						winPointsNum	<=	32'h62a2;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h33 : begin//	3	kHz
 						windPhInc		<=	32'h1f25f6;
 						winNormCoef		<=	32'h390e6466;
 						winPointsNum	<=	32'h41c1;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h34 : begin//	5	kHz
 						windPhInc		<=	32'h33ee26;
 						winNormCoef		<=	32'h396d509f;
 						winPointsNum	<=	32'h2774;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h35 : begin//	7	kHz
 						windPhInc		<=	32'h48bca9;
 						winNormCoef		<=	32'h39a61fcc;
 						winPointsNum	<=	32'h1c2e;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h40 : begin//	10	kHz
 						windPhInc		<=	32'h67dc4c;
 						winNormCoef		<=	32'h39ed577f;
 						winPointsNum	<=	32'h13ba;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h41 : begin//	15	kHz
 						windPhInc		<=	32'h9c09c0;
 						winNormCoef		<=	32'h3a3206c8;
 						winPointsNum	<=	32'hd26;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h42 : begin//	20	kHz
 						windPhInc 		<=	32'hd00d00;
 						winNormCoef		<=	32'h3a6d577f;
 						winPointsNum	<=	32'h9dd;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h43 : begin//	30	kHz
 						windPhInc		<=	32'h1381381;
 						winNormCoef		<=	32'h3ab1e1ce;
 						winPointsNum	<=	32'h693;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h44 : begin//	50	kHz
 						windPhInc		<=	32'h2082082;
 						winNormCoef		<=	32'h3b1444c4;
 						winPointsNum	<=	32'h3f2;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h45 : begin//	70	KHz
 						windPhInc		<=	32'h2d82d82;
 						winNormCoef		<=	32'h3b4fb73a;
 						winPointsNum	<=	32'h2d1;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h50 : begin//	100	KHz
 						windPhInc		<=	32'h4104104;
 						winNormCoef		<=	32'h3b944cd1;
 						winPointsNum	<=	32'h1f9;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h51 : begin//	150	KHz
 						windPhInc 		<=	32'h6186186;
 						winNormCoef		<=	32'h3bdeed44;
 						winPointsNum	<=	32'h150;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h52 : begin//	200	KHz
 						windPhInc		<=	32'h8421084;
 						winNormCoef		<=	32'h3c1442d8;
 						winPointsNum	<=	32'hfc;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h53 : begin//	300	KHz
 						windPhInc 		<=	32'hc30c30c;
 						winNormCoef		<=	32'h3c5ed0fd;
 						winPointsNum	<=	32'ha8;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h54 : begin//	500	KHz
 						windPhInc 		<=	32'h1c71c71;
 						winNormCoef		<=	32'h3ce38e38;
 						winPointsNum	<=	32'h90;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h55 : begin//	700	KHz
 						windPhInc		<=	32'h2828282;
 						winNormCoef		<=	32'h3d20a0a0;
 						winPointsNum	<=	32'h66;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h60 : begin//	1	MHz
 						windPhInc 		<=	32'h38e38e3;
 						winNormCoef		<=	32'h3d638e39;
 						winPointsNum	<=	32'h48;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h61 : begin//	1.5	MHz
 						windPhInc 		<=	32'h5555555;
 						winNormCoef		<=	32'h3daaaaab;
 						winPointsNum	<=	32'h30;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h62 : begin//	2	MHz
 						windPhInc 		<=	32'h71c71c7;
 						winNormCoef		<=	32'h3de38e39;
 						winPointsNum	<=	32'h24;
+						averageNoiseLvl	<=	32'h0;
 					end	
 			8'h63 : begin
 						windPhInc 		<=	32'h0;
 						winNormCoef		<=	32'h3e124925;
 						winPointsNum	<=	32'he;
+						averageNoiseLvl	<=	32'h3b83126f;
 					end	
 			// 8'h64 : begin//	5	MHz
 						// windPhInc 		<=	32'h12492492;
@@ -285,28 +328,33 @@ always	@	(posedge	Clk_i)	begin
 						windPhInc 		<=	32'h0;
 						winNormCoef		<=	32'h3e800000;
 						winPointsNum	<=	32'h8;
+						averageNoiseLvl	<=	32'h3bc49ba6;
 					end	
 			8'h70 : begin
 						// параметры для калибровки - прямоугольное окно 65536 отсчетов	2^16
 						windPhInc 		<=	32'h1FFFFFFF;
 						winNormCoef		<=	32'h6D13892;
 						winPointsNum	<=	32'h10000;
+						averageNoiseLvl	<=	32'h0;
 					end	
 			8'h71 : begin							
 						windPhInc 		<=	32'h0;
 						winNormCoef		<=	32'h3eaaaaab;
 						winPointsNum	<=	32'h6;
+						averageNoiseLvl	<=	32'h3c03126f;
 					end	
 			8'h72 : begin	
 						windPhInc 		<=	32'h0;
 						winNormCoef		<=	32'h3f000000;
 						winPointsNum	<=	32'h4;
+						averageNoiseLvl	<=	32'h3a83126f;
 					end
 					
 			default: begin	
 						windPhInc 		<=	32'h15555555;
 						winNormCoef		<=	32'h3e86cfea;
 						winPointsNum	<=	32'hc;
+						averageNoiseLvl	<=	32'h0;
 					 end					 
 		endcase
 	end	

+ 4 - 2
S5443_M/S5443.srcs/sources_1/new/Math/MyIntToFp.v

@@ -25,7 +25,7 @@ module	MyIntToFp
 	parameter	ManWidth	=	23,
 	parameter	FracWidth	=	17
 )
-(Clk_i,Rst_i,InData_i,InDataVal_i,OutData_o,OutDataVal_o);
+(Clk_i,Rst_i,InData_i,AverageNoizeLvl_i,InDataVal_i,OutData_o,OutDataVal_o);
 
 	input	Clk_i;
 	input	Rst_i;
@@ -35,6 +35,7 @@ module	MyIntToFp
 	localparam	OutWidth	=	1+ExpWidth+ManWidth;	//sign+ExpWidth+ManWidth
 	localparam	ExpConst	=	(2**(ExpWidth-1))-1;
 	
+	input		[OutWidth-1:0]	AverageNoizeLvl_i;
 	output	reg	[OutWidth-1:0]	OutData_o;
 	output	reg	OutDataVal_o;
 	
@@ -118,7 +119,8 @@ always	@(posedge	Clk_i	or	posedge	Rst_i)	begin
 			if	(fpOut!=0)	begin
 				OutData_o	<=	fpOut;
 			end	else	begin
-				OutData_o	<=	32'h3a83126f;
+				// OutData_o	<=	32'h3a83126f;
+				OutData_o	<=	AverageNoizeLvl_i;
 			end
 		end
 		OutDataVal_o	<=	outValR;

+ 0 - 61
S5443_M/S5443.srcs/sources_1/new/PulseMeas/PulseEventGen.v

@@ -1,61 +0,0 @@
-`timescale 1ns / 1ps
-//////////////////////////////////////////////////////////////////////////////////
-// Company: 
-// Engineer: 
-// 
-// Create Date:    10:02:35 04/20/2020 
-// Design Name: 
-// Module Name:    mult_module 
-// Project Name: 
-// Target Devices: 
-// Tool versions: 
-// Description: 
-//
-// Dependencies: 
-//
-// Revision: 
-// Revision 0.01 - File Created
-// Additional Comments: 
-//
-//////////////////////////////////////////////////////////////////////////////////
-module	MeasStartEventGen	
-#(	
-	parameter	CmdDataRegWith	=	24
-)
-(
-	input	Rst_i,
-	input	Clk_i,
-	
-	input	MeasModeReg_i,
-	input	PriRegH_i,
-	input	PriRegL_i,
-	
-	output	StartPulse_o
-);	
-
-//================================================================================
-//  LOCALPARAM
-
-//================================================================================
-	reg	startPulse;
-	
-//================================================================================
-//  ASSIGNMENTS
-	assign	StartPulse_o	=	startPulse;
-//================================================================================
-//  CODING
-
-
-
-endmodule
-
-
-
-
-
-
-
-
-
-
-

+ 1 - 22
S5443_S/S5443.srcs/constrs_1/new/S5443Top.xdc

@@ -170,25 +170,4 @@ set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets Ss_i_IBUF]
 
 
 
-create_debug_core u_ila_0 ila
-set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
-set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0]
-set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0]
-set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]
-set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0]
-set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
-set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
-set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
-set_property port_width 1 [get_debug_ports u_ila_0/clk]
-connect_debug_port u_ila_0/clk [get_nets [list gclk_BUFG]]
-set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe0]
-set_property port_width 14 [get_debug_ports u_ila_0/probe0]
-connect_debug_port u_ila_0/probe0 [get_nets [list {adc2ChR2Data[0]} {adc2ChR2Data[1]} {adc2ChR2Data[2]} {adc2ChR2Data[3]} {adc2ChR2Data[4]} {adc2ChR2Data[5]} {adc2ChR2Data[6]} {adc2ChR2Data[7]} {adc2ChR2Data[8]} {adc2ChR2Data[9]} {adc2ChR2Data[10]} {adc2ChR2Data[11]} {adc2ChR2Data[12]} {adc2ChR2Data[13]}]]
-create_debug_port u_ila_0 probe
-set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe1]
-set_property port_width 14 [get_debug_ports u_ila_0/probe1]
-connect_debug_port u_ila_0/probe1 [get_nets [list {adc1ChR1Data[0]} {adc1ChR1Data[1]} {adc1ChR1Data[2]} {adc1ChR1Data[3]} {adc1ChR1Data[4]} {adc1ChR1Data[5]} {adc1ChR1Data[6]} {adc1ChR1Data[7]} {adc1ChR1Data[8]} {adc1ChR1Data[9]} {adc1ChR1Data[10]} {adc1ChR1Data[11]} {adc1ChR1Data[12]} {adc1ChR1Data[13]}]]
-set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
-set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
-set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
-connect_debug_port dbg_hub/clk [get_nets gclk_BUFG]
+

+ 12 - 10
S5443_S/S5443.srcs/sources_1/new/InternalDsp/ComplPrng.v

@@ -22,11 +22,12 @@ module ComplPrng
 	parameter OutDataWidth = 20
 )
 (
-	input [InDataWidth-1:0] Data_i,
+	// input [InDataWidth-1:0] Data_i,
 	input Clk_i,
 	input Rst_i,
 
-	output signed	[OutDataWidth-1:0] DataAndPrng_o
+	// output signed	[OutDataWidth-1:0] DataAndPrng_o
+	output signed	[OutDataWidth-1:0] PrngData_o
 );
 //================================================================================
 //	REG/WIRE
@@ -50,7 +51,8 @@ reg	signed	[OutDataWidth-1:0]	dataAndPrngReg;
 assign	dataPrngCut			=	dataPrng[31-:DataPrngWidth];
 // assign	dataPrngCutExtended	=	{{OutDataWidth-DataPrngWidth{dataPrngCut[DataPrngWidth-1]}}, dataPrngCut};
 // assign	DataAndPrng_o		=	adcDataExtended+dataPrngCutExtended;
-assign	DataAndPrng_o		=	dataAndPrngReg;
+// assign	DataAndPrng_o		=	dataAndPrngReg;
+assign	PrngData_o			=	dataPrngCutExtended;
 //================================================================================
 //	CODING
 //================================================================================
@@ -82,12 +84,12 @@ always @(posedge Clk_i) begin
 	end
 end
 
-always @(posedge Clk_i) begin
-	if (Rst_i) begin
-		dataAndPrngReg	<=	0;
-	end else begin
-		dataAndPrngReg	<=	Data_i+dataPrngCutExtended;
-	end
-end
+// always @(posedge Clk_i) begin
+	// if (Rst_i) begin
+		// dataAndPrngReg	<=	0;
+	// end else begin
+		// dataAndPrngReg	<=	Data_i+dataPrngCutExtended;
+	// end
+// end
 
 endmodule

+ 15 - 12
S5443_S/S5443.srcs/sources_1/new/InternalDsp/DspPipeline.v

@@ -20,6 +20,7 @@ module DspPipeline
     input	StartFpConv_i,
 	
 	input	[WindCorrCoefWidth-1:0]	FilterCorrCoef_i,
+	input	[WindCorrCoefWidth-1:0]	AverageNoizeLvl_i,
 	input	[AdcCorrData-1:0]	AdcData_i,
 	input	[WindWidth-1:0]		Wind_i,
 	input	[NcoWidth-1:0]		NcoSin_i,
@@ -173,12 +174,13 @@ MyIntToFp
 )
 QToFp32
 (	
-	.Clk_i			(Clk_i),
-	.Rst_i			(Rst_i),
-	.InData_i		(AccResultQ),
-	.InDataVal_i	(StartFpConv_i),
-	.OutData_o		(qFp32Result),
-	.OutDataVal_o	(qFp32ResultVal)
+	.Clk_i				(Clk_i),
+	.Rst_i				(Rst_i),
+	.InData_i			(AccResultQ),
+	.AverageNoizeLvl_i	(AverageNoizeLvl_i),
+	.InDataVal_i		(StartFpConv_i),
+	.OutData_o			(qFp32Result),
+	.OutDataVal_o		(qFp32ResultVal)
 );
 
 MyIntToFp
@@ -190,12 +192,13 @@ MyIntToFp
 )
 IToFp32
 (	
-	.Clk_i			(Clk_i),
-	.Rst_i			(Rst_i),
-	.InData_i		(AccResultI),
-	.InDataVal_i	(StartFpConv_i),
-	.OutData_o		(iFp32Result),
-	.OutDataVal_o	(iFp32ResultVal)
+	.Clk_i				(Clk_i),
+	.Rst_i				(Rst_i),
+	.InData_i			(AccResultI),
+	.AverageNoizeLvl_i	(AverageNoizeLvl_i),
+	.InDataVal_i		(StartFpConv_i),
+	.OutData_o			(iFp32Result),
+	.OutDataVal_o		(iFp32ResultVal)
 );
 
 //===============================Result*NormCoeff=================================

+ 40 - 22
S5443_S/S5443.srcs/sources_1/new/InternalDsp/InternalDsp.v

@@ -91,6 +91,7 @@ module InternalDsp
 //  REG/WIRE
 	wire	[WindNormCoefWidth-1:0]	windNormCoef;
 	wire	[WindPNumWidth-1:0]		windPointsNum;
+	wire	[WindPNumWidth-1:0]		averageNoizeLvl;
 	wire	[WindNcoPhIncWidth-1:0]	windPhInc;
 	wire	[WindNcoPhIncWidth-1:0]	winPhIncStart;
 	
@@ -104,9 +105,12 @@ module InternalDsp
 	wire	[CorrAdcDataWidth-1:0]	adcDataBusExt	[ChNum-1:0];
 	wire	[CorrAdcDataWidth-1:0]	gatedAdcDataBus	[ChNum-1:0];
 	wire	[CorrAdcDataWidth-1:0]	calAdcData		[ChNum-1:0];
+	wire	[CorrAdcDataWidth-1:0]	prngData;
+	reg		[CorrAdcDataWidth-1:0]	prngDataBus		[ChNum-1:0];
 	wire	[ChNum-1:0]	calDone;
 	
 	genvar g;
+	integer i;
 	
 	wire	[ResultWidth-1:0]	resultImBus		[ChNum-1:0];
 	wire	[ResultWidth-1:0]	resultReBus		[ChNum-1:0];
@@ -152,6 +156,10 @@ module InternalDsp
 	assign	adcDataBus	[ChNum-3]	=	{{2{Adc1ChR1Data_i[AdcDataWidth-1]}},Adc1ChR1Data_i,4'b0};
 	assign	adcDataBus	[ChNum-4]	=	{{2{Adc1ChT1Data_i[AdcDataWidth-1]}},Adc1ChT1Data_i,4'b0};
 	
+	assign	adcDataBusExt	[ChNum-1]	=	calAdcData	[ChNum-1]+prngDataBus[ChNum-1];
+	assign	adcDataBusExt	[ChNum-2]	=	calAdcData	[ChNum-2]+prngDataBus[ChNum-2];
+	assign	adcDataBusExt	[ChNum-3]	=	calAdcData	[ChNum-3]+prngDataBus[ChNum-3];
+	assign	adcDataBusExt	[ChNum-4]	=	calAdcData	[ChNum-4]+prngDataBus[ChNum-4];
 	
 	assign	gatedAdcDataBus	[ChNum-1]	=	adc2ChT2DataGated;
 	assign	gatedAdcDataBus	[ChNum-2]	=	adc2ChR2DataGated;
@@ -255,13 +263,14 @@ WinParameters
 )
 WinParameters
 (	
-	.Clk_i			(Clk_i),
-	.Rst_i			(Rst_i),
-	.FilterCmd_i	(measCtrlReg[15-:8]),
-	.WinPhInc_o		(windPhInc),
-	.WinPhIncStart_o(winPhIncStart),
-	.WinNormCoef_o	(windNormCoef),
-	.WinPointsNum_o	(windPointsNum)
+	.Clk_i				(Clk_i),
+	.Rst_i				(Rst_i),
+	.FilterCmd_i		(measCtrlReg[15-:8]),
+	.WinPhInc_o			(windPhInc),
+	.WinPhIncStart_o	(winPhIncStart),
+	.WinNormCoef_o		(windNormCoef),
+	.WinPointsNum_o		(windPointsNum),
+	.AverageNoiseLvl_o	(averageNoizeLvl)
 );
 
 //----------------------------------------------
@@ -306,6 +315,29 @@ ncoInst
 	.Val_o		()
 );
 
+
+ComplPrng
+#(
+	.DataPrngWidth	(8),
+	.InDataWidth 	(CorrAdcDataWidth),
+	.OutDataWidth	(CorrAdcDataWidth)
+)
+ComplPrngAdderInst
+(
+	// .Data_i	(calAdcData[g]),
+	.Clk_i	(Clk_i),
+	.Rst_i	(Rst_i),
+
+	// .DataAndPrng_o	(adcDataBusExt[g]),
+	.PrngData_o		(prngData)
+);
+
+always @(posedge Clk_i) begin
+	prngDataBus[0]  <= prngData;
+	for(i=1; i<4; i=i+1) begin
+		prngDataBus	[i]<=prngDataBus[i-1];
+	end
+end
 //------------------------------------------------
 //Generating needed amount of calculating channels
 generate
@@ -328,21 +360,6 @@ generate
 			.CalDone_o				(calDone[g]),
 			.CalibratedAdcData_o	(calAdcData[g])
 		);
-
-		ComplPrng
-		#(
-			.DataPrngWidth	(8),
-			.InDataWidth 	(CorrAdcDataWidth),
-			.OutDataWidth	(CorrAdcDataWidth)
-		)
-		ComplPrngAdderInst
-		(
-			.Data_i	(calAdcData[g]),
-			.Clk_i	(Clk_i),
-			.Rst_i	(Rst_i),
-
-			.DataAndPrng_o	(adcDataBusExt[g])
-		);
 		
 		DspPipeline	
 		#(	
@@ -363,6 +380,7 @@ generate
 			.StartFpConv_i		(StartFpConv),
 			
 			.FilterCorrCoef_i	({filterCorrCoefHReg[0+:WindNcoPhIncWidth-CmdDataRegWith],filterCorrCoefLReg}),
+			.AverageNoizeLvl_i	(averageNoizeLvl),
 			.AdcData_i			(gatedAdcDataBus[g]),
 			.Wind_i				(wind),
 			.NcoSin_i			(ncoCos),

+ 53 - 5
S5443_S/S5443.srcs/sources_1/new/InternalDsp/WinParameters.v

@@ -32,7 +32,8 @@ module WinParameters
 	output		[WindPhIncWidth-1:0]	WinPhInc_o,
 	output		[WindPhIncWidth-1:0]	WinPhIncStart_o,
 	output		[WindNormCoefWidth-1:0]	WinNormCoef_o,
-	output		[WindPNumWidth-1:0]		WinPointsNum_o
+	output		[WindPNumWidth-1:0]		WinPointsNum_o,
+	output		[WindPNumWidth-1:0]		AverageNoiseLvl_o
 );
 //================================================================================
 //  REG/WIRE
@@ -40,13 +41,15 @@ module WinParameters
 	reg [WindPhIncWidth-1:0]	windPhInc;
 	reg	[WindNormCoefWidth-1:0]	winNormCoef;
 	reg	[WindPNumWidth-1:0]		winPointsNum;
+	reg	[WindPNumWidth-1:0]		averageNoiseLvl;
 //================================================================================
 //  ASSIGNMENTS
 //================================================================================	
-	assign	WinPhInc_o 		=	windPhInc;
-	assign	WinPhIncStart_o =	32'h80000000;
-	assign	WinNormCoef_o	=	winNormCoef;
-	assign	WinPointsNum_o	=	winPointsNum;
+	assign	WinPhInc_o 			=	windPhInc;
+	assign	WinPhIncStart_o		 =	32'h80000000;
+	assign	WinNormCoef_o		=	winNormCoef;
+	assign	WinPointsNum_o		=	winPointsNum;
+	assign	AverageNoiseLvl_o	=	averageNoiseLvl;
 //================================================================================
 //  CODING
 //================================================================================	
@@ -57,201 +60,241 @@ always	@	(posedge	Clk_i)	begin
 						windPhInc		<=	32'h2a8;
 						winNormCoef		<=	32'h3342b45d;
 						winPointsNum	<=	32'h30291a0;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h1 : begin//	1.5	Hz
 						windPhInc		<=	32'h3fc;
 						winNormCoef		<=	32'h3391cf5e;
 						winPointsNum	<=	32'h201b66a;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h2 : begin//	2	Hz
 						windPhInc		<=	32'h550;
 						winNormCoef		<=	32'h33c269d2;
 						winPointsNum	<=	32'h18148d0;
+						averageNoiseLvl	<=	32'h0;
 					 end
 			8'h3 : begin//	3	Hz
 						windPhInc		<=	32'h7f9;
 						winNormCoef		<=	32'h3411ccc1;
 						winPointsNum	<=	32'h100db35;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h4 : begin//	5	Hz
 						windPhInc		<=	32'hd49;
 						winNormCoef		<=	32'h347301aa;
 						winPointsNum	<=	32'h9a1d20;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h5 : begin//	7	Hz
 						windPhInc		<=	32'h129a;
 						winNormCoef		<=	32'h34aa19fd;
 						winPointsNum	<=	32'h6e14cd;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h10 : begin//	10	Hz
 						windPhInc		<=	32'h1a93;
 						winNormCoef		<=	32'h34f3005d;
 						winPointsNum	<=	32'h4d0e90;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h11 : begin//	15	Hz
 						windPhInc		<=	32'h27dd;
 						winNormCoef		<=	32'h35363ff7;
 						winPointsNum	<=	32'h335f0a;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h12 : begin//	20	Hz
 						windPhInc		<=	32'h3527;
 						winNormCoef		<=	32'h3572ffba;
 						winPointsNum	<=	32'h268748;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h13 : begin//	30	Hz
 						windPhInc		<=	32'h4fbb;
 						winNormCoef		<=	32'h35b63fa7;
 						winPointsNum	<=	32'h19af85;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h14 : begin//	50	Hz
 						windPhInc		<=	32'h84e3;
 						winNormCoef		<=	32'h3617df9c;
 						winPointsNum	<=	32'hf6950;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h15 : begin//	70	Hz
 						windPhInc		<=	32'hba0b;
 						winNormCoef		<=	32'h36549f77;
 						winPointsNum	<=	32'hb0214;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h20 : begin//	100	Hz
 						windPhInc		<=	32'h109c7;
 						winNormCoef		<=	32'h3697df93;
 						winPointsNum	<=	32'h7b4a8;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h21 : begin//	150	Hz
 						windPhInc		<=	32'h18eab;
 						winNormCoef		<=	32'h36e3cf84;
 						winPointsNum	<=	32'h5231a;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h22 : begin//	200	Hz
 						windPhInc		<=	32'h21390;
 						winNormCoef		<=	32'h3717df94;
 						winPointsNum	<=	32'h3da54;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h23 : begin//	300	Hz 
 						windPhInc		<=	32'h31d5b;
 						winNormCoef		<=	32'h3763cf83;
 						winPointsNum	<=	32'h2918d;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h24 : begin//	500	Hz
 						windPhInc		<=	32'h530e3;
 						winNormCoef		<=	32'h37bdd7e8;
 						winPointsNum	<=	32'h18a88;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h25 : begin//	700	Hz
 						windPhInc		<=	32'h7449e;
 						winNormCoef		<=	32'h3804e417;
 						winPointsNum	<=	32'h119ce;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h30 : begin//	1	kHz
 						windPhInc		<=	32'ha61fc;
 						winNormCoef		<=	32'h383dd7e8;
 						winPointsNum	<=	32'hc544;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h31 : begin//	1.5	kHz
 						windPhInc		<=	32'hf92fb;
 						winNormCoef		<=	32'h388e6329;
 						winPointsNum	<=	32'h8382;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h32 : begin//	2	kHz
 						windPhInc		<=	32'h14c3f9;
 						winNormCoef		<=	32'h38bdd900;
 						winPointsNum	<=	32'h62a2;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h33 : begin//	3	kHz
 						windPhInc		<=	32'h1f25f6;
 						winNormCoef		<=	32'h390e6466;
 						winPointsNum	<=	32'h41c1;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h34 : begin//	5	kHz
 						windPhInc		<=	32'h33ee26;
 						winNormCoef		<=	32'h396d509f;
 						winPointsNum	<=	32'h2774;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h35 : begin//	7	kHz
 						windPhInc		<=	32'h48bca9;
 						winNormCoef		<=	32'h39a61fcc;
 						winPointsNum	<=	32'h1c2e;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h40 : begin//	10	kHz
 						windPhInc		<=	32'h67dc4c;
 						winNormCoef		<=	32'h39ed577f;
 						winPointsNum	<=	32'h13ba;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h41 : begin//	15	kHz
 						windPhInc		<=	32'h9c09c0;
 						winNormCoef		<=	32'h3a3206c8;
 						winPointsNum	<=	32'hd26;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h42 : begin//	20	kHz
 						windPhInc 		<=	32'hd00d00;
 						winNormCoef		<=	32'h3a6d577f;
 						winPointsNum	<=	32'h9dd;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h43 : begin//	30	kHz
 						windPhInc		<=	32'h1381381;
 						winNormCoef		<=	32'h3ab1e1ce;
 						winPointsNum	<=	32'h693;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h44 : begin//	50	kHz
 						windPhInc		<=	32'h2082082;
 						winNormCoef		<=	32'h3b1444c4;
 						winPointsNum	<=	32'h3f2;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h45 : begin//	70	KHz
 						windPhInc		<=	32'h2d82d82;
 						winNormCoef		<=	32'h3b4fb73a;
 						winPointsNum	<=	32'h2d1;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h50 : begin//	100	KHz
 						windPhInc		<=	32'h4104104;
 						winNormCoef		<=	32'h3b944cd1;
 						winPointsNum	<=	32'h1f9;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h51 : begin//	150	KHz
 						windPhInc 		<=	32'h6186186;
 						winNormCoef		<=	32'h3bdeed44;
 						winPointsNum	<=	32'h150;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h52 : begin//	200	KHz
 						windPhInc		<=	32'h8421084;
 						winNormCoef		<=	32'h3c1442d8;
 						winPointsNum	<=	32'hfc;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h53 : begin//	300	KHz
 						windPhInc 		<=	32'hc30c30c;
 						winNormCoef		<=	32'h3c5ed0fd;
 						winPointsNum	<=	32'ha8;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h54 : begin//	500	KHz
 						windPhInc 		<=	32'h1c71c71;
 						winNormCoef		<=	32'h3ce38e38;
 						winPointsNum	<=	32'h90;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h55 : begin//	700	KHz
 						windPhInc		<=	32'h2828282;
 						winNormCoef		<=	32'h3d20a0a0;
 						winPointsNum	<=	32'h66;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h60 : begin//	1	MHz
 						windPhInc 		<=	32'h38e38e3;
 						winNormCoef		<=	32'h3d638e39;
 						winPointsNum	<=	32'h48;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h61 : begin//	1.5	MHz
 						windPhInc 		<=	32'h5555555;
 						winNormCoef		<=	32'h3daaaaab;
 						winPointsNum	<=	32'h30;
+						averageNoiseLvl	<=	32'h0;
 					end
 			8'h62 : begin//	2	MHz
 						windPhInc 		<=	32'h71c71c7;
 						winNormCoef		<=	32'h3de38e39;
 						winPointsNum	<=	32'h24;
+						averageNoiseLvl	<=	32'h0;
 					end	
 			8'h63 : begin
 						windPhInc 		<=	32'h0;
 						winNormCoef		<=	32'h3e124925;
 						winPointsNum	<=	32'he;
+						averageNoiseLvl	<=	32'h3b83126f;
 					end	
 			// 8'h64 : begin//	5	MHz
 						// windPhInc 		<=	32'h12492492;
@@ -285,28 +328,33 @@ always	@	(posedge	Clk_i)	begin
 						windPhInc 		<=	32'h0;
 						winNormCoef		<=	32'h3e800000;
 						winPointsNum	<=	32'h8;
+						averageNoiseLvl	<=	32'h3bc49ba6;
 					end	
 			8'h70 : begin
 						// параметры для калибровки - прямоугольное окно 65536 отсчетов	2^16
 						windPhInc 		<=	32'h1FFFFFFF;
 						winNormCoef		<=	32'h6D13892;
 						winPointsNum	<=	32'h10000;
+						averageNoiseLvl	<=	32'h0;
 					end	
 			8'h71 : begin							
 						windPhInc 		<=	32'h0;
 						winNormCoef		<=	32'h3eaaaaab;
 						winPointsNum	<=	32'h6;
+						averageNoiseLvl	<=	32'h3c03126f;
 					end	
 			8'h72 : begin	
 						windPhInc 		<=	32'h0;
 						winNormCoef		<=	32'h3f000000;
 						winPointsNum	<=	32'h4;
+						averageNoiseLvl	<=	32'h3a83126f;
 					end
 					
 			default: begin	
 						windPhInc 		<=	32'h15555555;
 						winNormCoef		<=	32'h3e86cfea;
 						winPointsNum	<=	32'hc;
+						averageNoiseLvl	<=	32'h0;
 					 end					 
 		endcase
 	end	

+ 4 - 2
S5443_S/S5443.srcs/sources_1/new/Math/MyIntToFp.v

@@ -25,7 +25,7 @@ module	MyIntToFp
 	parameter	ManWidth	=	23,
 	parameter	FracWidth	=	17
 )
-(Clk_i,Rst_i,InData_i,InDataVal_i,OutData_o,OutDataVal_o);
+(Clk_i,Rst_i,InData_i,AverageNoizeLvl_i,InDataVal_i,OutData_o,OutDataVal_o);
 
 	input	Clk_i;
 	input	Rst_i;
@@ -35,6 +35,7 @@ module	MyIntToFp
 	localparam	OutWidth	=	1+ExpWidth+ManWidth;	//sign+ExpWidth+ManWidth
 	localparam	ExpConst	=	(2**(ExpWidth-1))-1;
 	
+	input		[OutWidth-1:0]	AverageNoizeLvl_i;
 	output	reg	[OutWidth-1:0]	OutData_o;
 	output	reg	OutDataVal_o;
 	
@@ -118,7 +119,8 @@ always	@(posedge	Clk_i	or	posedge	Rst_i)	begin
 			if	(fpOut!=0)	begin
 				OutData_o	<=	fpOut;
 			end	else	begin
-				OutData_o	<=	32'h3a83126f;
+				// OutData_o	<=	32'h3a83126f;
+				OutData_o	<=	AverageNoizeLvl_i;
 			end
 		end
 		OutDataVal_o	<=	outValR;