Project

General

Profile

// Dave Muscle

//Decimator designed for use in a multi-stage CIC filter

/*
x[n] --|---------> + ----> y[n]
| x (-1)
---[z^-1]-->|
*/

module cic_comb #(
parameter int WIDTH = 32
)(
input bit clk,
input bit rst,
input bit ena,
input bit [WIDTH-1:0] data_in ,
output bit [WIDTH-1:0] data_out
);
bit [WIDTH-1:0] r_data;

always_ff @(posedge clk) begin
if(ena) begin
r_data <= data_in ;
data_out <= r_data - data_in ;
end
if(rst) begin
data_out <= 0;
r_data <= 0;
end
end

endmodule: cic_comb
(1-1/4)