module SingleCIC_Decimation
(
input sclk,
input rst_n,
input signed [7:0] din,
output tvalid,
output signed [10:0] dout
);
reg tvalid_reg;
reg [2:0] cnt;
reg signed [10:0] sum, dout_reg;
always @ (posedge sclk or negedge rst_n)
if (!rst_n) begin
cnt <= 'd0; tvalid_reg <= 1'b0;
sum <= 'd0; dout_reg <= 'd0;
end
else begin
if (cnt == 4) begin
tvalid_reg <= 1'b1;
dout_reg <= sum + din;
cnt <= 'd0;
sum <= 'd0;
end
else begin
tvalid_reg <= 1'b0;
sum <= sum + din;
cnt <= cnt + 1'b1;
end
end