瀏覽代碼

Добавлен тестовый паттерн для режима ГВЗ.

ChStepan 1 年之前
父節點
當前提交
dc6dbd1df5

File diff suppressed because it is too large
+ 37 - 11
S5444_M/src/constrs/S5443Top.xdc


+ 44 - 30
S5444_M/src/src/InternalDsp/InternalDsp.v

@@ -198,40 +198,53 @@ module InternalDsp
 
 //----------------------------------------------
 //Module generates event signals for measurement
+wire signed [AdcDataWidth-1:0] ncoSinFirstToneCut = ncoSinFirstTone[NcoWidth-1-:AdcDataWidth];
+wire signed [AdcDataWidth-1:0] ncoSinSecondToneCut = ncoSinSecondTone[NcoWidth-1-:AdcDataWidth];
+wire signed [AdcDataWidth-1:0] notNcoSinSecondToneCut = ~ncoSinSecondToneCut;
 
-always	@(posedge	Clk_i)	begin
+
+wire signed [AdcDataWidth-1:0] ncoSum = ncoSinFirstToneCut+notNcoSinSecondToneCut;
+wire signed [AdcDataWidth-1:0] ncoSumShifted = ncoSum>>>1;
+
+
+always	@(*)	begin
 	if	(Rst_i)	begin
-		adc1ChT1DataR	<= 0;
-		adc1ChR1DataR	<= 0;
-		adc2ChR2DataR	<= 0;
-		adc2ChT2DataR	<= 0;
+		adc1ChT1DataR	= 0;
+		adc1ChR1DataR	= 0;
+		adc2ChR2DataR	= 0;
+		adc2ChT2DataR	= 0;
 	end	else	begin
 		if (grDelayMeasFlag) begin
-			adc1ChT1DataR	<= Adc1ChT1Data_i;
-			adc1ChR1DataR	<= Adc1ChR1Data_i;
-			adc2ChR2DataR	<= Adc1ChR1Data_i;
-			adc2ChT2DataR	<= Adc1ChT1Data_i;
-			currNcoSinTone [0] <= ncoSinFirstTone;
-			currNcoSinTone [1] <= ncoSinFirstTone;
-			currNcoSinTone [2] <= ncoSinSecondTone;
-			currNcoSinTone [3] <= ncoSinSecondTone;
-			currNcoCosTone [0] <= ncoCosFirstTone;
-			currNcoCosTone [1] <= ncoCosFirstTone;
-			currNcoCosTone [2] <= ncoCosSecondTone;
-			currNcoCosTone [3] <= ncoCosSecondTone;
+			// adc1ChT1DataR	<= Adc1ChT1Data_i;
+			// adc1ChR1DataR	<= Adc1ChR1Data_i;
+			// adc2ChR2DataR	<= Adc1ChR1Data_i;
+			// adc2ChT2DataR	<= Adc1ChT1Data_i;			
+			
+			adc1ChT1DataR	= ncoSumShifted;
+			adc1ChR1DataR	= ncoSum;
+			adc2ChR2DataR	= ncoSum;
+			adc2ChT2DataR	= ncoSumShifted;
+			currNcoSinTone [0] = ncoSinFirstTone;
+			currNcoSinTone [1] = ncoSinFirstTone;
+			currNcoSinTone [2] = ncoSinSecondTone;
+			currNcoSinTone [3] = ncoSinSecondTone;
+			currNcoCosTone [0] = ncoCosFirstTone;
+			currNcoCosTone [1] = ncoCosFirstTone;
+			currNcoCosTone [2] = ncoCosSecondTone;
+			currNcoCosTone [3] = ncoCosSecondTone;
 		end else begin
-			adc1ChT1DataR	<= Adc1ChT1Data_i;
-			adc1ChR1DataR	<= Adc1ChR1Data_i;
-			adc2ChR2DataR	<= Adc2ChR2Data_i;
-			adc2ChT2DataR	<= Adc2ChT2Data_i;
-			currNcoSinTone [0] <= ncoSinFirstTone;
-			currNcoSinTone [1] <= ncoSinFirstTone;
-			currNcoSinTone [2] <= ncoSinFirstTone;
-			currNcoSinTone [3] <= ncoSinFirstTone;
-			currNcoCosTone [0] <= ncoCosFirstTone;
-			currNcoCosTone [1] <= ncoCosFirstTone;
-			currNcoCosTone [2] <= ncoCosFirstTone;
-			currNcoCosTone [3] <= ncoCosFirstTone;
+			adc1ChT1DataR	= Adc1ChT1Data_i;
+			adc1ChR1DataR	= Adc1ChR1Data_i;
+			adc2ChR2DataR	= Adc2ChR2Data_i;
+			adc2ChT2DataR	= Adc2ChT2Data_i;
+			currNcoSinTone [0] = ncoSinFirstTone;
+			currNcoSinTone [1] = ncoSinFirstTone;
+			currNcoSinTone [2] = ncoSinFirstTone;
+			currNcoSinTone [3] = ncoSinFirstTone;
+			currNcoCosTone [0] = ncoCosFirstTone;
+			currNcoCosTone [1] = ncoCosFirstTone;
+			currNcoCosTone [2] = ncoCosFirstTone;
+			currNcoCosTone [3] = ncoCosFirstTone;
 		end
 	end 
 end
@@ -441,7 +454,8 @@ generate
 			.FilterCorrCoef_i	({filterCorrCoefHReg[0+:WindNcoPhIncWidth-CmdDataRegWith],filterCorrCoefLReg}),
 			// .FilterCorrCoef_i	(32'h3f800000),
 			.AverageNoizeLvl_i	(averageNoizeLvl),
-			.AdcData_i			(gatedAdcDataBus[g]),
+			// .AdcData_i			(gatedAdcDataBus[g]),
+			.AdcData_i			(adcDataBus[g]),
 			// .AdcData_i			({{2{ncoCosFirstTone[17]}},ncoCosFirstTone}),
 			.Wind_i				(wind),
 			// .NcoSin_i			(ncoSinFirstTone),

+ 10 - 4
S5444_M/src/src/Sim/S5443TopPulseProfileTb.v

@@ -80,8 +80,10 @@ module S5443TopPulseProfileTb;
 	parameter	[31:0]	SensCtrlCmd =	{1'b0,27'h0,4'b1};
 	// parameter	[31:0]	DitherCmd 	= {8'h0E,24'h100192};
 	parameter	[31:0]	DitherCmd 	= {8'h0E,8'd9,4'h0,4'h1,4'd11,4'h3};
-	parameter	[31:0]	IfFtwH 	=	{8'h15,16'h0,8'h40};
-	parameter	[31:0]	IfFtwL 	=	{8'h16,24'h000000};
+	parameter	[31:0]	IfFtw1H 	=	{8'h15,16'h0,8'h31};
+	parameter	[31:0]	IfFtw1L 	=	{8'h16,24'heb851e};
+	parameter	[31:0]	IfFtw2H 	=	{8'h0c,16'h0,8'h40};
+	parameter	[31:0]	IfFtw2L 	=	{8'h0d,24'h000000};
 	parameter	[31:0]	FilterCorrCmdH 		=	{8'h17,24'hD70A3D};
 	parameter	[31:0]	FilterCorrCmdL 		=	{8'h18,24'hD70A3D};
 	
@@ -453,9 +455,9 @@ always	@(posedge	Clk41)	begin
 		if	(cmdCnt	==	0)	begin
 			DspSpiData		<=	MeasCmd;
 		end	else	if	(cmdCnt	==	1)	begin
-			DspSpiData		<=	IfFtwH;
+			DspSpiData		<=	IfFtw1H;
 		end	else	if	(cmdCnt	==	2)	begin
-			DspSpiData		<=	IfFtwL;
+			DspSpiData		<=	IfFtw1L;
 		end	else	if	(cmdCnt	==	3)	begin
 			DspSpiData		<=	FilterCorrCmdH;
 		end	else	if	(cmdCnt	==	4)	begin
@@ -592,6 +594,10 @@ always	@(posedge	Clk41)	begin
 			DspSpiData		<=	MuxCtrl6RegCmd;
 		end	else	if	(cmdCnt	==	100)	begin
 			DspSpiData		<=	MuxCtrl7RegCmd;
+		end else	if	(cmdCnt	==	101)	begin
+			DspSpiData		<=	IfFtw2H;
+		end else	if	(cmdCnt	==	102)	begin
+			DspSpiData		<=	IfFtw2H;
 		end else	begin
 			DspSpiData	<=	32'hfffffff;
 		end

+ 0 - 6
S5444_M/src/src/Top/S5443Top.v

@@ -531,12 +531,6 @@ module	S5443Top
 	assign	adcDataBus	[ChNum-2]	=	(IsSim)?AdcData_i:adc2ChR2Data;
 	assign	adcDataBus	[ChNum-1]	=	(IsSim)?AdcData_i:adc2ChT2Data;
 	
-	// assign	adcDataBus	[ChNum-4]	=	14'h0;
-	// assign	adcDataBus	[ChNum-3]	=	14'h1;
-	// assign	adcDataBus	[ChNum-2]	=	14'h1;
-	// assign	adcDataBus	[ChNum-1]	=	14'h0;
-	
-	
 	assign	gainManual	[ChNum-4]	=	gainCtrl[5];
 	assign	gainManual	[ChNum-3]	=	gainCtrl[4];
 	assign	gainManual	[ChNum-2]	=	gainCtrl[6];

+ 44 - 30
S5444_S/src/src/InternalDsp/InternalDsp.v

@@ -198,40 +198,53 @@ module InternalDsp
 
 //----------------------------------------------
 //Module generates event signals for measurement
+wire signed [AdcDataWidth-1:0] ncoSinFirstToneCut = ncoSinFirstTone[NcoWidth-1-:AdcDataWidth];
+wire signed [AdcDataWidth-1:0] ncoSinSecondToneCut = ncoSinSecondTone[NcoWidth-1-:AdcDataWidth];
+wire signed [AdcDataWidth-1:0] notNcoSinSecondToneCut = ~ncoSinSecondToneCut;
 
-always	@(posedge	Clk_i)	begin
+
+wire signed [AdcDataWidth-1:0] ncoSum = ncoSinFirstToneCut+notNcoSinSecondToneCut;
+wire signed [AdcDataWidth-1:0] ncoSumShifted = ncoSum>>>1;
+
+
+always	@(*)	begin
 	if	(Rst_i)	begin
-		adc1ChT1DataR	<= 0;
-		adc1ChR1DataR	<= 0;
-		adc2ChR2DataR	<= 0;
-		adc2ChT2DataR	<= 0;
+		adc1ChT1DataR	= 0;
+		adc1ChR1DataR	= 0;
+		adc2ChR2DataR	= 0;
+		adc2ChT2DataR	= 0;
 	end	else	begin
 		if (grDelayMeasFlag) begin
-			adc1ChT1DataR	<= Adc1ChT1Data_i;
-			adc1ChR1DataR	<= Adc1ChR1Data_i;
-			adc2ChR2DataR	<= Adc1ChR1Data_i;
-			adc2ChT2DataR	<= Adc1ChT1Data_i;
-			currNcoSinTone [0] <= ncoSinFirstTone;
-			currNcoSinTone [1] <= ncoSinFirstTone;
-			currNcoSinTone [2] <= ncoSinSecondTone;
-			currNcoSinTone [3] <= ncoSinSecondTone;
-			currNcoCosTone [0] <= ncoCosFirstTone;
-			currNcoCosTone [1] <= ncoCosFirstTone;
-			currNcoCosTone [2] <= ncoCosSecondTone;
-			currNcoCosTone [3] <= ncoCosSecondTone;
+			// adc1ChT1DataR	<= Adc1ChT1Data_i;
+			// adc1ChR1DataR	<= Adc1ChR1Data_i;
+			// adc2ChR2DataR	<= Adc1ChR1Data_i;
+			// adc2ChT2DataR	<= Adc1ChT1Data_i;			
+			
+			adc1ChT1DataR	= ncoSumShifted;
+			adc1ChR1DataR	= ncoSum;
+			adc2ChR2DataR	= ncoSum;
+			adc2ChT2DataR	= ncoSumShifted;
+			currNcoSinTone [0] = ncoSinFirstTone;
+			currNcoSinTone [1] = ncoSinFirstTone;
+			currNcoSinTone [2] = ncoSinSecondTone;
+			currNcoSinTone [3] = ncoSinSecondTone;
+			currNcoCosTone [0] = ncoCosFirstTone;
+			currNcoCosTone [1] = ncoCosFirstTone;
+			currNcoCosTone [2] = ncoCosSecondTone;
+			currNcoCosTone [3] = ncoCosSecondTone;
 		end else begin
-			adc1ChT1DataR	<= Adc1ChT1Data_i;
-			adc1ChR1DataR	<= Adc1ChR1Data_i;
-			adc2ChR2DataR	<= Adc2ChR2Data_i;
-			adc2ChT2DataR	<= Adc2ChT2Data_i;
-			currNcoSinTone [0] <= ncoSinFirstTone;
-			currNcoSinTone [1] <= ncoSinFirstTone;
-			currNcoSinTone [2] <= ncoSinFirstTone;
-			currNcoSinTone [3] <= ncoSinFirstTone;
-			currNcoCosTone [0] <= ncoCosFirstTone;
-			currNcoCosTone [1] <= ncoCosFirstTone;
-			currNcoCosTone [2] <= ncoCosFirstTone;
-			currNcoCosTone [3] <= ncoCosFirstTone;
+			adc1ChT1DataR	= Adc1ChT1Data_i;
+			adc1ChR1DataR	= Adc1ChR1Data_i;
+			adc2ChR2DataR	= Adc2ChR2Data_i;
+			adc2ChT2DataR	= Adc2ChT2Data_i;
+			currNcoSinTone [0] = ncoSinFirstTone;
+			currNcoSinTone [1] = ncoSinFirstTone;
+			currNcoSinTone [2] = ncoSinFirstTone;
+			currNcoSinTone [3] = ncoSinFirstTone;
+			currNcoCosTone [0] = ncoCosFirstTone;
+			currNcoCosTone [1] = ncoCosFirstTone;
+			currNcoCosTone [2] = ncoCosFirstTone;
+			currNcoCosTone [3] = ncoCosFirstTone;
 		end
 	end 
 end
@@ -441,7 +454,8 @@ generate
 			.FilterCorrCoef_i	({filterCorrCoefHReg[0+:WindNcoPhIncWidth-CmdDataRegWith],filterCorrCoefLReg}),
 			// .FilterCorrCoef_i	(32'h3f800000),
 			.AverageNoizeLvl_i	(averageNoizeLvl),
-			.AdcData_i			(gatedAdcDataBus[g]),
+			// .AdcData_i			(gatedAdcDataBus[g]),
+			.AdcData_i			(adcDataBus[g]),
 			// .AdcData_i			({{2{ncoCosFirstTone[17]}},ncoCosFirstTone}),
 			.Wind_i				(wind),
 			// .NcoSin_i			(ncoSinFirstTone),