소스 검색

Исправлены ошибки, добавлены фильтры для R=2, R=3.

ChStepan 1 년 전
부모
커밋
9623b40257

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 17 - 31
src/constrs/S5243Top.xdc


+ 4 - 7
src/src/ExtDspInterface/DspInterface.v

@@ -233,18 +233,15 @@ DecimFilterWrapper	DecimFilter
 (
 	.Clk_i			(Clk_i),
 	.Rst_i			(Rst_i),
-	.OscWind_i		(OscWind_i),
+	.DataVal_i		(OscWind_i),
 	.DecimFactor_i	(DecimFactor_i),
 	
-	.IfFtwL_i		(IfFtwL_i),
-	.IfFtwH_i		(IfFtwH_i),
 	
-	.AdcData_i		(currDataChannel),
+	.Data_i		(currDataChannel),
 	// .TestData_o		(testData),
 	
-	.FilteredAdcDataI_o	(filteredDecimDataI),
-	.FilteredAdcDataQ_o	(filteredDecimDataQ),
-	.FilteredDataVal_o	(filteredDecimDataVal)
+	.Data_o	(filteredDecimDataI),
+	.DataVal_o	(filteredDecimDataVal)
 );
 
 OscDataFormer	DecimDataFormer

+ 19 - 35
src/src/FftDataFiltering/DecimFilterWrapper.v

@@ -34,16 +34,12 @@ module	DecimFilterWrapper
 	input	Clk_i,
 	input	[2:0]	DecimFactor_i,
 	input	Rst_i,
-	input	OscWind_i,
 	
-	input	[24-1:0]	IfFtwL_i,
-	input	[24-1:0]	IfFtwH_i,
+	input	DataVal_i,
+	input	signed	[AdcDataWidth-1:0]	Data_i,
 	
-	input	signed	[AdcDataWidth-1:0]	AdcData_i,
-	
-	output	signed	[16-1:0]	FilteredAdcDataI_o,
-	output	signed	[16-1:0]	FilteredAdcDataQ_o,
-	output	FilteredDataVal_o
+	output	signed	[16-1:0]	Data_o,
+	output	DataVal_o
 );
 //================================================================================
 //	REG/WIRE
@@ -55,20 +51,7 @@ module	DecimFilterWrapper
 	wire	decimDataVal;
 	
 	reg		decimDataValR;
-	
-	wire	signed	[FirOutDataWidth-1:0]	firDataOut;
-	wire	firDataOutVal;
-	
-	wire	[AdcDataWidth-1:0]	ncoCos;
-	wire	[AdcDataWidth-1:0]	ncoSin;
-	
-	wire	[AdcDataWidth-1:0]	adcSinResult;
-	wire	adcSinVal;
-	wire	[AdcDataWidth-1:0]	adcCosResult;
-	wire	adcCosVal;
-	
-	reg		[24-1:0]	ifFtwLReg;
-	reg		[24-1:0]	ifFtwHReg;
+
 	
 	reg		[15:0]	outDataI;
 	
@@ -78,34 +61,35 @@ module	DecimFilterWrapper
 	wire	firDataVal;
 	wire	bypassFlag = (DecimFactor_i==3'd0 | DecimFactor_i==3'd1);
 	
-	wire	[17:0]	adcExtData	=	{{extendBitNum{AdcData_i[AdcDataWidth-1]}},AdcData_i};
+	wire	[17:0]	adcExtData	=	{{extendBitNum{Data_i[AdcDataWidth-1]}},Data_i};
 	
 	wire [8:0] coefAddr;
 	wire [17:0] coefData;
 	wire coefDataVal;
 	
 	wire	oscWindVal;
+	
 //================================================================================
 //	ASSIGNMENTS
 //================================================================================
-	assign oscWindVal = !coefDataVal&OscWind_i;
+	assign oscWindVal = DataVal_i;
 
-	assign FilteredAdcDataI_o	=	(bypassFlag)? adcExtData[LsbForR1-1-:16]:decimData[17-:16];
-	assign FilteredDataVal_o	=	(bypassFlag)? OscWind_i:decimDataVal;
+	assign Data_o	=	(bypassFlag)? adcExtData[LsbForR1-1-:16]:decimData[17-:16];
+	assign DataVal_o	=	(bypassFlag)? DataVal_i:decimDataVal;
 
 //================================================================================
 //	CODING
 //================================================================================
 
-RomCtrl	RomCtrl
-(
-	.Clk_i		(Clk_i),
-	.Rst_i		(Rst_i),
-	.OscWind_i	(OscWind_i),
-	.CoefDataVal_o	(coefDataVal),
-	.DecimFactor_i	(DecimFactor_i),
-	.CoefAddr_o	(coefAddr)
-);
+// RomCtrl	RomCtrl
+// (
+	// .Clk_i		(Clk_i),
+	// .Rst_i		(Rst_i),
+	// .DataVal_i	(DataVal_i),
+	// .CoefDataVal_o	(coefDataVal),
+	// .DecimFactor_i	(DecimFactor_i),
+	// .CoefAddr_o	(coefAddr)
+// );
 
 CoefROM CoefRom (
   .a(coefAddr),      // input wire [8 : 0] a

+ 11 - 3
src/src/Sim/BitWidthCalc.m

@@ -18,15 +18,23 @@ Bmax = ceil(log2(((R*M)^N)/R)+B);
 MaxWidthR2 = ceil(log2(((2*M)^N)/2)+B);
 MaxWidthR4 = ceil(log2(((4*M)^N)/4)+B);
 
-ReadFilterCoefsId = fopen('C:\S5243_FFT_REPO\src\src\Sim\R2Test.fcf','r');
+ReadFilterCoefsId = fopen('C:\S5243_FFT_REPO\src\src\Sim\R3Test.fcf','r');
 FilterCoefs = fscanf(ReadFilterCoefsId,FormatSpecR);
 fclose(ReadFilterCoefsId);
 
-CorrValue = 2^17;
+CorrValue = 2^18;
 
 CorrCoeffs = FilterCoefs*CorrValue;
 CorrCoeffs = floor(CorrCoeffs);
 
-WriteFilterCoefsId = fopen('C:\S5243_FFT_REPO\src\src\Sim\untitled.txt','w');
+WriteFilterCoefsId = fopen('C:\S5243_FFT_REPO\src\src\Sim\R3.txt','w');
 fprintf(WriteFilterCoefsId,'%d\n', CorrCoeffs);
 fclose(WriteFilterCoefsId);
+
+s=64;
+test = 0;
+
+for c=1:s
+    test = test+FilterCoefs(c);
+end
+

+ 62 - 62
src/src/Sim/CoeffsForR2.vh

@@ -1,67 +1,67 @@
 
 wire signed [17:0] coeffForR2[0:CoeffCount-1];
 
-assign coeffForR2[0]  =141;
-assign coeffForR2[1]  =496;
-assign coeffForR2[2]  =751;
-assign coeffForR2[3]  =288;
-assign coeffForR2[4]  =-959;
-assign coeffForR2[5]  =-1932;
-assign coeffForR2[6]  =-1462;
+assign coeffForR2[0]  =282;
+assign coeffForR2[1]  =992;
+assign coeffForR2[2]  =1502;
+assign coeffForR2[3]  =576;
+assign coeffForR2[4]  =-1918;
+assign coeffForR2[5]  =-3864;
+assign coeffForR2[6]  =-2924;
 assign coeffForR2[7]  =0;
-assign coeffForR2[8]  =594;
-assign coeffForR2[9]  =-427;
-assign coeffForR2[10] =-1360;
-assign coeffForR2[11] =-466;
-assign coeffForR2[12] =1099;
-assign coeffForR2[13] =764;
-assign coeffForR2[14] =-1193;
-assign coeffForR2[15] =-1544;
-assign coeffForR2[16] =733;
-assign coeffForR2[17] =2116;
-assign coeffForR2[18] =-108;
-assign coeffForR2[19] =-2714;
-assign coeffForR2[20] =-987;
-assign coeffForR2[21] =3007;
-assign coeffForR2[22] =2457;
-assign coeffForR2[23] =-2920;
-assign coeffForR2[24] =-4456;
-assign coeffForR2[25] =2118;
-assign coeffForR2[26] =7173;
-assign coeffForR2[27] =-38;
-assign coeffForR2[28] =-11561;
-assign coeffForR2[29] =-5634;
-assign coeffForR2[30] =24031;
-assign coeffForR2[31] =53597;
-assign coeffForR2[32] =53597;
-assign coeffForR2[33] =24031;
-assign coeffForR2[34] =-5634;
-assign coeffForR2[35] =-11561;
-assign coeffForR2[36] =-38;
-assign coeffForR2[37] =7173;
-assign coeffForR2[38] =2118;
-assign coeffForR2[39] =-4456;
-assign coeffForR2[40] =-2920;
-assign coeffForR2[41] =2457;
-assign coeffForR2[42] =3007;
-assign coeffForR2[43] =-987;
-assign coeffForR2[44] =-2714;
-assign coeffForR2[45] =-108;
-assign coeffForR2[46] =2116;
-assign coeffForR2[47] =733;
-assign coeffForR2[48] =-1544;
-assign coeffForR2[49] =-1193;
-assign coeffForR2[50] =764;
-assign coeffForR2[51] =1099;
-assign coeffForR2[52] =-466;
-assign coeffForR2[53] =-1360;
-assign coeffForR2[54] =-427;
-assign coeffForR2[55] =594;
+assign coeffForR2[8]  =1188;
+assign coeffForR2[9]  =-854;
+assign coeffForR2[10] =-2720;
+assign coeffForR2[11] =-932;
+assign coeffForR2[12] =2198;
+assign coeffForR2[13] =1528;
+assign coeffForR2[14] =-2386;
+assign coeffForR2[15] =-3088;
+assign coeffForR2[16] =1466;
+assign coeffForR2[17] =4232;
+assign coeffForR2[18] =-216;
+assign coeffForR2[19] =-5428;
+assign coeffForR2[20] =-1974;
+assign coeffForR2[21] =6014;
+assign coeffForR2[22] =4914;
+assign coeffForR2[23] =-5840;
+assign coeffForR2[24] =-8912;
+assign coeffForR2[25] =4236;
+assign coeffForR2[26] =14346;
+assign coeffForR2[27] =-76;
+assign coeffForR2[28] =-23122;
+assign coeffForR2[29] =-11268;
+assign coeffForR2[30] =48062;
+assign coeffForR2[31] =107194;
+assign coeffForR2[32] =107194;
+assign coeffForR2[33] =48062;
+assign coeffForR2[34] =-11268;
+assign coeffForR2[35] =-23122;
+assign coeffForR2[36] =-76;
+assign coeffForR2[37] =14346;
+assign coeffForR2[38] =4236;
+assign coeffForR2[39] =-8912;
+assign coeffForR2[40] =-5840;
+assign coeffForR2[41] =4914;
+assign coeffForR2[42] =6014;
+assign coeffForR2[43] =-1974;
+assign coeffForR2[44] =-5428;
+assign coeffForR2[45] =-216;
+assign coeffForR2[46] =4232;
+assign coeffForR2[47] =1466;
+assign coeffForR2[48] =-3088;
+assign coeffForR2[49] =-2386;
+assign coeffForR2[50] =1528;
+assign coeffForR2[51] =2198;
+assign coeffForR2[52] =-932;
+assign coeffForR2[53] =-2720;
+assign coeffForR2[54] =-854;
+assign coeffForR2[55] =1188;
 assign coeffForR2[56] =0;
-assign coeffForR2[57] =-1462;
-assign coeffForR2[58] =-1932;
-assign coeffForR2[59] =-959;
-assign coeffForR2[60] =288;
-assign coeffForR2[61] =751;
-assign coeffForR2[62] =496;
-assign coeffForR2[63] =141;
+assign coeffForR2[57] =-2924;
+assign coeffForR2[58] =-3864;
+assign coeffForR2[59] =-1918;
+assign coeffForR2[60] =576;
+assign coeffForR2[61] =1502;
+assign coeffForR2[62] =992;
+assign coeffForR2[63] =282;

+ 64 - 64
src/src/Sim/CoeffsForR3.vh

@@ -1,67 +1,67 @@
 
 wire signed [17:0] coeffForR3[0:CoeffCount-1];
 
-assign coeffForR3[0]  = 18'h3ffce;
-assign coeffForR3[1]  = 18'h3ff73;
-assign coeffForR3[2]  = 18'h3ff10;
-assign coeffForR3[3]  = 18'h3ff10;
-assign coeffForR3[4]  = 18'h3fff3;
-assign coeffForR3[5]  = 18'h001ec;
-assign coeffForR3[6]  = 18'h0047f;
-assign coeffForR3[7]  = 18'h0067c;
-assign coeffForR3[8]  = 18'h00686;
-assign coeffForR3[9]  = 18'h00402;
-assign coeffForR3[10] = 18'h3ffcf;
-assign coeffForR3[11] = 18'h3fc24;
-assign coeffForR3[12] = 18'h3fb5d;
-assign coeffForR3[13] = 18'h3fe53;
-assign coeffForR3[14] = 18'h00360;
-assign coeffForR3[15] = 18'h00702;
-assign coeffForR3[16] = 18'h00614;
-assign coeffForR3[17] = 18'h0003f;
-assign coeffForR3[18] = 18'h3f8eb;
-assign coeffForR3[19] = 18'h3f579;
-assign coeffForR3[20] = 18'h3f994;
-assign coeffForR3[21] = 18'h003f1;
-assign coeffForR3[22] = 18'h00e02;
-assign coeffForR3[23] = 18'h00fa0;
-assign coeffForR3[24] = 18'h004d3;
-assign coeffForR3[25] = 18'h3f212;
-assign coeffForR3[26] = 18'h3e399;
-assign coeffForR3[27] = 18'h3e754;
-assign coeffForR3[28] = 18'h0045b;
-assign coeffForR3[29] = 18'h0352b;
-assign coeffForR3[30] = 18'h0688d;
-assign coeffForR3[31] = 18'h08966;
-assign coeffForR3[32] = 18'h08966;
-assign coeffForR3[33] = 18'h0688d;
-assign coeffForR3[34] = 18'h0352b;
-assign coeffForR3[35] = 18'h0045b;
-assign coeffForR3[36] = 18'h3e754;
-assign coeffForR3[37] = 18'h3e399;
-assign coeffForR3[38] = 18'h3f212;
-assign coeffForR3[39] = 18'h004d3;
-assign coeffForR3[40] = 18'h00fa0;
-assign coeffForR3[41] = 18'h00e02;
-assign coeffForR3[42] = 18'h003f1;
-assign coeffForR3[43] = 18'h3f994;
-assign coeffForR3[44] = 18'h3f579;
-assign coeffForR3[45] = 18'h3f8eb;
-assign coeffForR3[46] = 18'h0003f;
-assign coeffForR3[47] = 18'h00614;
-assign coeffForR3[48] = 18'h00702;
-assign coeffForR3[49] = 18'h00360;
-assign coeffForR3[50] = 18'h3fe53;
-assign coeffForR3[51] = 18'h3fb5d;
-assign coeffForR3[52] = 18'h3fc24;
-assign coeffForR3[53] = 18'h3ffcf;
-assign coeffForR3[54] = 18'h00402;
-assign coeffForR3[55] = 18'h00686;
-assign coeffForR3[56] = 18'h0067c;
-assign coeffForR3[57] = 18'h0047f;
-assign coeffForR3[58] = 18'h001ec;
-assign coeffForR3[59] = 18'h3fff3;
-assign coeffForR3[60] = 18'h3ff10;
-assign coeffForR3[61] = 18'h3ff10;
-assign coeffForR3[62] = 18'h3ff73;
-assign coeffForR3[63] = 18'h3ffce;
+assign coeffForR3[0]  =-100;
+assign coeffForR3[1]  =-282;
+assign coeffForR3[2]  =-481;
+assign coeffForR3[3]  =-481;
+assign coeffForR3[4]  =-26;
+assign coeffForR3[5]  =984;
+assign coeffForR3[6]  =2303;
+assign coeffForR3[7]  =3320;
+assign coeffForR3[8]  =3340;
+assign coeffForR3[9]  =2052;
+assign coeffForR3[10] =-97;
+assign coeffForR3[11] =-1976;
+assign coeffForR3[12] =-2374;
+assign coeffForR3[13] =-859;
+assign coeffForR3[14] =1727;
+assign coeffForR3[15] =3589;
+assign coeffForR3[16] =3111;
+assign coeffForR3[17] =127;
+assign coeffForR3[18] =-3626;
+assign coeffForR3[19] =-5391;
+assign coeffForR3[20] =-3288;
+assign coeffForR3[21] =2018;
+assign coeffForR3[22] =7172;
+assign coeffForR3[23] =7999;
+assign coeffForR3[24] =2469;
+assign coeffForR3[25] =-7133;
+assign coeffForR3[26] =-14541;
+assign coeffForR3[27] =-12632;
+assign coeffForR3[28] =2230;
+assign coeffForR3[29] =27222;
+assign coeffForR3[30] =53530;
+assign coeffForR3[31] =70347;
+assign coeffForR3[32] =70347;
+assign coeffForR3[33] =53530;
+assign coeffForR3[34] =27222;
+assign coeffForR3[35] =2230;
+assign coeffForR3[36] =-12632;
+assign coeffForR3[37] =-14541;
+assign coeffForR3[38] =-7133;
+assign coeffForR3[39] =2469;
+assign coeffForR3[40] =7999;
+assign coeffForR3[41] =7172;
+assign coeffForR3[42] =2018;
+assign coeffForR3[43] =-3288;
+assign coeffForR3[44] =-5391;
+assign coeffForR3[45] =-3626;
+assign coeffForR3[46] =127;
+assign coeffForR3[47] =3111;
+assign coeffForR3[48] =3589;
+assign coeffForR3[49] =1727;
+assign coeffForR3[50] =-859;
+assign coeffForR3[51] =-2374;
+assign coeffForR3[52] =-1976;
+assign coeffForR3[53] =-97;
+assign coeffForR3[54] =2052;
+assign coeffForR3[55] =3340;
+assign coeffForR3[56] =3320;
+assign coeffForR3[57] =2303;
+assign coeffForR3[58] =984;
+assign coeffForR3[59] =-26;
+assign coeffForR3[60] =-481;
+assign coeffForR3[61] =-481;
+assign coeffForR3[62] =-282;
+assign coeffForR3[63] =-100;

+ 38 - 46
src/src/Sim/DecimFilterWrapperTb.v

@@ -46,7 +46,7 @@ reg		signed	[13:0]	currTestData;
 wire	signed	[17:0]	wind;
 
 // wire	signed	[13:0]	singlePulse	=	(tbCnt>=4500&tbCnt<=4550)?	14'h1fff:14'h0;
-wire	signed	[13:0]	singlePulse	=	(tbCnt==4550)?	14'h1fff:14'h0;
+wire	signed	[13:0]	singlePulse	=	(tbCnt==5550)?	14'h1fff:14'h0;
 wire	signed	[17:0]	singlePulseExt	=	(tbCnt==4500)?	18'h1ffff:14'h0;
 // wire	signed	[15:0]	singlePulseExt	=	(tbCnt>=4500&tbCnt<=4501)?	16'h7fff:14'h0;
 wire	inglePulseExtVal	=	(tbCnt==4500)?	1:0;
@@ -60,13 +60,13 @@ parameter	M	=	1;
 
 parameter	MaxWidth	=	18;
 
-parameter	LsbForR1	=	10'd18;
+parameter	LsbForR1	=	10'd16;
 parameter	LsbForR2	=	10'd18;
 parameter	LsbForR4	=	10'd18;
 	
 parameter	[31:0]	Nco1PhaseInc	=	32'ha0000000;	
 // parameter	[31:0]	Nco2PhaseInc	=	32'h428f5c28;	
-parameter	[31:0]	Nco2PhaseInc	=	32'h0F5C28F6;	
+parameter	[31:0]	Nco2PhaseInc	=	32'hf5c28f5;	
 parameter	[31:0]	Nco3PhaseInc	=	32'h428f5c28;	
 
 initial begin
@@ -124,11 +124,11 @@ end
 always	@(posedge	Clk50)	begin
 	if	(!Rst)	begin
 		if (tbCnt == 100) begin
-			decimFactor	<= 2;
+			decimFactor	<= 1;
 		end else if (tbCnt == 5400) begin
-			decimFactor	<= 3;
+			decimFactor	<= 2;
 		end else if (tbCnt == 6400) begin
-			decimFactor	<= 4;
+			decimFactor	<= 3;
 		end else if (tbCnt == 7400) begin
 			decimFactor	<= 5;
 		end else if (tbCnt == 8400) begin
@@ -137,7 +137,7 @@ always	@(posedge	Clk50)	begin
 			decimFactor	<= 7;
 		end 
 	end else begin
-	 decimFactor <= 0;
+	 decimFactor <= 2;
 	end 
 end
 
@@ -222,49 +222,41 @@ DecimFilter
 	.Clk_i			(Clk50),
 	.DecimFactor_i	(decimFactor),
 	.Rst_i			(Rst),
-	.OscWind_i		(oscWind),
-	
-	.IfFtwL_i		(24'h51eb85),
-	.IfFtwH_i		(24'h23),
-	
-	// .AdcData_i		(sinAdd),
-	// .AdcData_i		(adcDataMixedCut),
-	// .AdcData_i		(adcData),
-	.AdcData_i		(ncoSin2),
+	.DataVal_i		(oscWind),
+
+	// .Data_i		(sinAdd),
+	// .Data_i		(adcDataMixedCut),
+	// .Data_i		(adcData),
+	.Data_i		(ncoSin2),
 	
-	.FilteredAdcDataI_o	(filteredDataOut),
-	.FilteredAdcDataQ_o	(),
-	.FilteredDataVal_o	(resultVal)
+	.Data_o	(filteredDataOut),
+	.DataVal_o	(resultVal)
 );
 
-// DecimFilterWrapper	
-// #(	
-	// .AdcDataWidth	(14),
-	// .N	(N),
-	// .M	(M),
-	// .FilteredDataWidth	(MaxWidth),
-	// .FirOutDataWidth	(48),
-	// .FirOutCutBit		(42),
-	// .LsbForR1			(LsbForR1),
-	// .LsbForR2			(LsbForR2),
-	// .LsbForR4			(LsbForR4)
-// )
-// ImpulseResponseFilter
-// (
-	// .Clk_i			(Clk50),
-	// .DecimFactor_i	(decimFactor),
-	// .Rst_i			(Rst),
-	// .OscWind_i		(oscWind),
-	
-	// .IfFtwL_i		(24'h51eb85),
-	// .IfFtwH_i		(24'h23),
-	
-	// .AdcData_i		(singlePulse),
+DecimFilterWrapper	
+#(	
+	.AdcDataWidth	(14),
+	.N	(N),
+	.M	(M),
+	.FilteredDataWidth	(MaxWidth),
+	.FirOutDataWidth	(48),
+	.FirOutCutBit		(42),
+	.LsbForR1			(LsbForR1),
+	.LsbForR2			(LsbForR2),
+	.LsbForR4			(LsbForR4)
+)
+ImpulseResponseFilter
+(
+	.Clk_i			(Clk50),
+	.DecimFactor_i	(decimFactor),
+	.Rst_i			(Rst),
+	.DataVal_i		(oscWind),
+
+	.Data_i		(singlePulse),
 	
-	// .FilteredAdcDataI_o	(impResponse),
-	// .FilteredAdcDataQ_o	(),
-	// .FilteredDataVal_o	()
-// );
+	.Data_o	(impResponse),
+	.DataVal_o	()
+);
 
 // reg		[32-1:0]	windArg;
 // wire	[31:0]	WindPhInc		=	32'h418937<<<decimFactor-2;

+ 64 - 0
src/src/Sim/R3.txt

@@ -0,0 +1,64 @@
+-100
+-282
+-481
+-481
+-26
+984
+2303
+3320
+3340
+2052
+-97
+-1976
+-2374
+-859
+1727
+3589
+3111
+127
+-3626
+-5391
+-3288
+2018
+7172
+7999
+2469
+-7133
+-14541
+-12632
+2230
+27222
+53530
+70347
+70347
+53530
+27222
+2230
+-12632
+-14541
+-7133
+2469
+7999
+7172
+2018
+-3288
+-5391
+-3626
+127
+3111
+3589
+1727
+-859
+-2374
+-1976
+-97
+2052
+3340
+3320
+2303
+984
+-26
+-481
+-481
+-282
+-100

+ 67 - 0
src/src/Sim/R3Test.fcf

@@ -0,0 +1,67 @@
+-0.0003814697265625                                                            
+-0.00107574462890625                                                           
+-0.001834869384765625                                                          
+-0.001834869384765625                                                          
+-0.00009918212890625                                                           
+ 0.003753662109375                                                             
+ 0.008785247802734375                                                          
+ 0.012664794921875                                                             
+ 0.0127410888671875                                                            
+ 0.0078277587890625                                                            
+-0.000370025634765625                                                          
+-0.007537841796875                                                             
+-0.00905609130859375                                                           
+-0.003276824951171875                                                          
+ 0.006587982177734375                                                          
+ 0.013690948486328125                                                          
+ 0.011867523193359375                                                          
+ 0.000484466552734375                                                          
+-0.01383209228515625                                                           
+-0.020565032958984375                                                          
+-0.012542724609375                                                             
+ 0.00769805908203125                                                           
+ 0.0273590087890625                                                            
+ 0.030513763427734375                                                          
+ 0.009418487548828125                                                          
+-0.027210235595703125                                                          
+-0.055469512939453125                                                          
+-0.048187255859375                                                             
+ 0.00850677490234375                                                           
+ 0.10384368896484375                                                           
+ 0.20420074462890625                                                           
+ 0.268352508544921875                                                          
+ 0.268352508544921875                                                          
+ 0.20420074462890625                                                           
+ 0.10384368896484375                                                           
+ 0.00850677490234375                                                           
+-0.048187255859375                                                             
+-0.055469512939453125                                                          
+-0.027210235595703125                                                          
+ 0.009418487548828125                                                          
+ 0.030513763427734375                                                          
+ 0.0273590087890625                                                            
+ 0.00769805908203125                                                           
+-0.012542724609375                                                             
+-0.020565032958984375                                                          
+-0.01383209228515625                                                           
+ 0.000484466552734375                                                          
+ 0.011867523193359375                                                          
+ 0.013690948486328125                                                          
+ 0.006587982177734375                                                          
+-0.003276824951171875                                                          
+-0.00905609130859375                                                           
+-0.007537841796875                                                             
+-0.000370025634765625                                                          
+ 0.0078277587890625                                                            
+ 0.0127410888671875                                                            
+ 0.012664794921875                                                             
+ 0.008785247802734375                                                          
+ 0.003753662109375                                                             
+-0.00009918212890625                                                           
+-0.001834869384765625                                                          
+-0.001834869384765625                                                          
+-0.00107574462890625                                                           
+-0.0003814697265625                                                            
+
+                                                                              
+

+ 7 - 2
src/src/Sim/firFilter/systolicFilter.v

@@ -18,6 +18,10 @@ module systolicFilter
 
 	wire [47:0] outData;
 	wire outDataValid;
+	
+	wire	[17:0]	test2 = outData[35-:18];
+	
+	
 	systolicFilterBlockTest # (
 		.CoeffCount(CoeffCount)
 	)
@@ -35,14 +39,15 @@ module systolicFilter
 	
 	roundSymmetric #
 	( 
-		.inDataWidth(filteredDataWidth),
+		.inDataWidth(inOutDataWidth),
 		.outDataWidth(inOutDataWidth)
 	)
 	roundInst
 	(
 		.Rst_i(Rst_i),
 		.Clk_i(Clk_i),
-		.Data_i(outData[34:0]),
+		// .Data_i(outData[35:0]),
+		.Data_i(outData[33-:18]),
 		.DataNd_i(outDataValid),
 		.Data_o(Data_o),
 		.DataValid_o(DataValid_o)

+ 0 - 6
src/src/Sim/firFilter/systolicFilterBlockTest.v

@@ -68,12 +68,6 @@ module systolicFilterBlockTest # (
 				
 					if (ndShReg[0]|ndShReg[CoeffCount-2]) begin
 						case (DecimFactor_i) 
-							// 0:	begin
-									// multResult[i] <= inReg1[i] * coeffForR2[i];
-								// end
-							// 1:	begin
-									// multResult[i] <= inReg1[i] * coeffForR2[i];
-								// end
 							2:	begin
 									multResult[i] <= inReg1[i] * coeffForR2[i];
 								end

+ 65 - 65
src/src/Sim/fir_filter3.coe

@@ -1,69 +1,69 @@
 ; XILINX CORE Generator(tm)Distributed Arithmetic FIR filter coefficient (.COE) File
 ; Generated by MATLAB(R) 9.13 and DSP System Toolbox 9.15.
-; Generated on: 27-Feb-2024 15:55:00
+; Generated on: 20-Mar-2024 12:50:47
 Radix = 16; 
 Coefficient_Width = 18; 
-CoefData = 3ffce,
-3ff73,
-3ff10,
-3ff10,
-3fff3,
-001ec,
-0047f,
-0067c,
-00686,
-00402,
-3ffcf,
-3fc24,
-3fb5d,
-3fe53,
-00360,
-00702,
-00614,
-0003f,
-3f8eb,
-3f579,
-3f994,
-003f1,
-00e02,
-00fa0,
-004d3,
-3f212,
-3e399,
-3e754,
-0045b,
-0352b,
-0688d,
-08966,
-08966,
-0688d,
-0352b,
-0045b,
-3e754,
-3e399,
-3f212,
-004d3,
-00fa0,
-00e02,
-003f1,
-3f994,
-3f579,
-3f8eb,
-0003f,
-00614,
-00702,
-00360,
-3fe53,
-3fb5d,
-3fc24,
-3ffcf,
-00402,
-00686,
-0067c,
-0047f,
-001ec,
-3fff3,
-3ff10,
-3ff10,
-3ff73,
-3ffce;
+CoefData = 3ff9c,
+3fee6,
+3fe1f,
+3fe1f,
+3ffe6,
+003d8,
+008ff,
+00cf8,
+00d0c,
+00804,
+3ff9f,
+3f848,
+3f6ba,
+3fca5,
+006bf,
+00e05,
+00c27,
+0007f,
+3f1d6,
+3eaf1,
+3f328,
+007e2,
+01c04,
+01f3f,
+009a5,
+3e423,
+3c733,
+3cea8,
+008b6,
+06a56,
+0d11a,
+112cb,
+112cb,
+0d11a,
+06a56,
+008b6,
+3cea8,
+3c733,
+3e423,
+009a5,
+01f3f,
+01c04,
+007e2,
+3f328,
+3eaf1,
+3f1d6,
+0007f,
+00c27,
+00e05,
+006bf,
+3fca5,
+3f6ba,
+3f848,
+3ff9f,
+00804,
+00d0c,
+00cf8,
+008ff,
+003d8,
+3ffe6,
+3fe1f,
+3fe1f,
+3fee6,
+3ff9c;

+ 62 - 62
src/src/Sim/untitled.txt

@@ -1,64 +1,64 @@
-141
-496
-751
-288
--959
--1932
--1462
+282
+992
+1502
+576
+-1918
+-3864
+-2924
 0
-594
--427
--1360
--466
-1099
-764
--1193
--1544
-733
-2116
--108
--2714
--987
-3007
-2457
--2920
--4456
-2118
-7173
--38
--11561
--5634
-24031
-53597
-53597
-24031
--5634
--11561
--38
-7173
-2118
--4456
--2920
-2457
-3007
--987
--2714
--108
-2116
-733
--1544
--1193
-764
-1099
--466
--1360
--427
-594
+1188
+-854
+-2720
+-932
+2198
+1528
+-2386
+-3088
+1466
+4232
+-216
+-5428
+-1974
+6014
+4914
+-5840
+-8912
+4236
+14346
+-76
+-23122
+-11268
+48062
+107194
+107194
+48062
+-11268
+-23122
+-76
+14346
+4236
+-8912
+-5840
+4914
+6014
+-1974
+-5428
+-216
+4232
+1466
+-3088
+-2386
+1528
+2198
+-932
+-2720
+-854
+1188
 0
--1462
--1932
--959
-288
-751
-496
-141
+-2924
+-3864
+-1918
+576
+1502
+992
+282