Trying to fix audio issues
This commit is contained in:
+26
-17
@@ -13,11 +13,12 @@ module clipping_effect #( parameter
|
||||
);
|
||||
|
||||
//-------------Internal Constants---------------------------
|
||||
localparam [2:0] IDLE = 'd0,
|
||||
localparam [1:0] IDLE = 'd0,
|
||||
CLIP = 'd1,
|
||||
OUTPUT = 'd2;
|
||||
OUTPUT = 'd2,
|
||||
CLEAR = 'd3;
|
||||
|
||||
reg [2:0] r_state=IDLE, r_next=IDLE;
|
||||
reg [1:0] r_state=IDLE, r_next=IDLE;
|
||||
|
||||
reg signed [data_width-1: 0] r_data = 'b0;
|
||||
reg [data_width-1: 0] r_treshhold_p = 'b0;
|
||||
@@ -32,12 +33,7 @@ assign o_data = r_data;
|
||||
|
||||
//---------state register sequential always block-----------
|
||||
always @(posedge clk ) begin
|
||||
if (reset == 1) begin
|
||||
// clear state
|
||||
r_state <= IDLE;
|
||||
r_next <= IDLE;
|
||||
end
|
||||
else begin
|
||||
if (~reset) begin
|
||||
r_state <= r_next;
|
||||
end
|
||||
end
|
||||
@@ -45,7 +41,12 @@ end
|
||||
//----next state & outputs, combinational always block------
|
||||
|
||||
always @(posedge clk ) begin
|
||||
|
||||
if (reset) begin
|
||||
r_next <= IDLE;
|
||||
r_read_enable <= 0; // redy to read data
|
||||
r_data_valid <= 0;
|
||||
end
|
||||
else begin
|
||||
case(r_state)
|
||||
IDLE : begin
|
||||
if (i_data_ready == 1) begin
|
||||
@@ -65,12 +66,12 @@ always @(posedge clk ) begin
|
||||
CLIP : begin
|
||||
case (r_data[data_width-1])
|
||||
0 : begin // positive number
|
||||
if (r_data > r_treshhold_p)
|
||||
r_data <= r_treshhold_p;
|
||||
if (r_data > r_treshhold_p) begin
|
||||
r_data <= r_treshhold_p; end
|
||||
end
|
||||
1 : begin // negative number
|
||||
if (r_data < r_treshhold_n)
|
||||
r_data <= r_treshhold_n;
|
||||
if (r_data < r_treshhold_n) begin
|
||||
r_data <= r_treshhold_n; end
|
||||
end
|
||||
endcase
|
||||
r_next <= OUTPUT;
|
||||
@@ -79,9 +80,9 @@ always @(posedge clk ) begin
|
||||
end
|
||||
OUTPUT : begin
|
||||
if (i_read_done == 1) begin
|
||||
r_next <= IDLE;
|
||||
r_next <= CLEAR;
|
||||
r_data_valid <= 0;
|
||||
r_read_enable <= 1;
|
||||
r_read_enable <= 0;
|
||||
end
|
||||
else begin
|
||||
r_next <= OUTPUT;
|
||||
@@ -89,8 +90,16 @@ always @(posedge clk ) begin
|
||||
r_read_enable <= 0; // read disable
|
||||
end
|
||||
end
|
||||
default: r_next <= IDLE; // on error
|
||||
CLEAR : begin
|
||||
r_next <= IDLE;
|
||||
r_data_valid <= 0;
|
||||
r_read_enable <= 1;
|
||||
end
|
||||
default: begin
|
||||
r_next <= IDLE; // on error
|
||||
end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user