|
|
@@ -25,7 +25,10 @@ module DecimFilterWrapper
|
|
|
parameter M = 2,
|
|
|
parameter FilteredDataWidth = 38,
|
|
|
parameter FirOutDataWidth = 48,
|
|
|
- parameter FirOutCutBit = 42
|
|
|
+ parameter FirOutCutBit = 42,
|
|
|
+ parameter LsbForR1 = 10'd16,
|
|
|
+ parameter LsbForR2 = 10'd16,
|
|
|
+ parameter LsbForR4 = 10'd16
|
|
|
)
|
|
|
(
|
|
|
input Clk_i,
|
|
|
@@ -71,13 +74,13 @@ module DecimFilterWrapper
|
|
|
|
|
|
localparam extendBitNum = FilteredDataWidth-AdcDataWidth;
|
|
|
|
|
|
- localparam maxWidthForR1 = 10'd16; //msb for R = 2;
|
|
|
- localparam maxWidthForR2 = 10'd23; //msb for R = 2;
|
|
|
- localparam maxWidthForR3 = 10'd26; //msb for R = 3;
|
|
|
- localparam maxWidthForR4 = 10'd30; //msb for R = 4;
|
|
|
- localparam maxWidthForR5 = 10'd31; //msb for R = 5;
|
|
|
- localparam maxWidthForR6 = 10'd33; //msb for R = 6;
|
|
|
- localparam maxWidthForR7 = 10'd34; //msb for R = 7;
|
|
|
+ // localparam maxWidthForR1 = 10'd16; //msb for R = 2;
|
|
|
+ // localparam maxWidthForR2 = 10'd16; //msb for R = 2;
|
|
|
+ // localparam maxWidthForR3 = 10'd26; //msb for R = 3;
|
|
|
+ // localparam maxWidthForR4 = 10'd30; //msb for R = 4;
|
|
|
+ // localparam maxWidthForR5 = 10'd31; //msb for R = 5;
|
|
|
+ // localparam maxWidthForR6 = 10'd33; //msb for R = 6;
|
|
|
+ // localparam maxWidthForR7 = 10'd34; //msb for R = 7;
|
|
|
// localparam maxWidthForR8 = 5'd26; //msb for R = 8;
|
|
|
// localparam maxWidthForR9 = 5'd27; //msb for R = 9;
|
|
|
// localparam maxWidthForR10 = 5'd28; //msb for R = 10;
|
|
|
@@ -89,9 +92,9 @@ module DecimFilterWrapper
|
|
|
// ASSIGNMENTS
|
|
|
//================================================================================
|
|
|
|
|
|
- // assign FilteredAdcDataI_o = outDataI;
|
|
|
+ assign FilteredAdcDataI_o = outDataI;
|
|
|
+ // assign FilteredAdcDataI_o = (bypassData)?{{2{AdcData_i[AdcDataWidth-1]}},AdcData_i}:firData[33-:16];
|
|
|
// assign FilteredAdcDataI_o = (bypassData)?{{2{AdcData_i[AdcDataWidth-1]}},AdcData_i}:firData[33-:16];
|
|
|
- assign FilteredAdcDataI_o = (bypassData)?{{2{AdcData_i[AdcDataWidth-1]}},AdcData_i}:firData[33-:16];
|
|
|
|
|
|
assign FilteredDataVal_o = decimDataValIR;
|
|
|
// assign FilteredDataVal_o = (bypassData)?1'b1:firDataVal;
|
|
|
@@ -107,40 +110,37 @@ always @(posedge Clk_i) begin
|
|
|
if (!Rst_i) begin
|
|
|
case(DecimFactor_i)
|
|
|
3'd0: begin
|
|
|
- // outDataI <= {{2{AdcData_i[AdcDataWidth-1]}},AdcData_i};
|
|
|
- outDataI <= AdcData_i;
|
|
|
+ outDataI <= decimDataI[LsbForR1-1-:16];
|
|
|
decimDataValIR <= OscWind_i;
|
|
|
end
|
|
|
3'd1: begin
|
|
|
- // outDataI <= {{2{AdcData_i[AdcDataWidth-1]}},AdcData_i};
|
|
|
- outDataI <= decimDataI[maxWidthForR1-1-:16];
|
|
|
+ outDataI <= decimDataI[LsbForR1-1-:16];
|
|
|
decimDataValIR <= OscWind_i;
|
|
|
end
|
|
|
3'd2: begin
|
|
|
- outDataI <= decimDataI[maxWidthForR2-1-:16];
|
|
|
- // decimDataValIR <= 1'b1;
|
|
|
- decimDataValIR <= decimDataValI;
|
|
|
- end
|
|
|
- 3'd3: begin
|
|
|
- outDataI <= decimDataI[maxWidthForR3-1-:16];
|
|
|
+ outDataI <= decimDataI[LsbForR2-1-:16];
|
|
|
decimDataValIR <= decimDataValI;
|
|
|
end
|
|
|
+ // 3'd3: begin
|
|
|
+ // outDataI <= decimDataI[maxWidthForR3-1-:16];
|
|
|
+ // decimDataValIR <= decimDataValI;
|
|
|
+ // end
|
|
|
3'd4: begin
|
|
|
- outDataI <= decimDataI[maxWidthForR4-1-:16];
|
|
|
- decimDataValIR <= decimDataValI;
|
|
|
- end
|
|
|
- 3'd5: begin
|
|
|
- outDataI <= decimDataI[maxWidthForR5-1-:16];
|
|
|
- decimDataValIR <= decimDataValI;
|
|
|
- end
|
|
|
- 3'd6: begin
|
|
|
- outDataI <= decimDataI[maxWidthForR6-1-:16];
|
|
|
- decimDataValIR <= decimDataValI;
|
|
|
- end
|
|
|
- 3'd7: begin
|
|
|
- outDataI <= decimDataI[maxWidthForR7-:16];
|
|
|
+ outDataI <= decimDataI[LsbForR4-1-:16];
|
|
|
decimDataValIR <= decimDataValI;
|
|
|
end
|
|
|
+ // 3'd5: begin
|
|
|
+ // outDataI <= decimDataI[maxWidthForR5-1-:16];
|
|
|
+ // decimDataValIR <= decimDataValI;
|
|
|
+ // end
|
|
|
+ // 3'd6: begin
|
|
|
+ // outDataI <= decimDataI[maxWidthForR6-1-:16];
|
|
|
+ // decimDataValIR <= decimDataValI;
|
|
|
+ // end
|
|
|
+ // 3'd7: begin
|
|
|
+ // outDataI <= decimDataI[maxWidthForR7-:16];
|
|
|
+ // decimDataValIR <= decimDataValI;
|
|
|
+ // end
|
|
|
endcase
|
|
|
end else begin
|
|
|
outDataI <= 16'd0;
|