|
// 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
|