Trying to fix audio issues
This commit is contained in:
+26
-17
@@ -13,11 +13,12 @@ module clipping_effect #( parameter
|
|||||||
);
|
);
|
||||||
|
|
||||||
//-------------Internal Constants---------------------------
|
//-------------Internal Constants---------------------------
|
||||||
localparam [2:0] IDLE = 'd0,
|
localparam [1:0] IDLE = 'd0,
|
||||||
CLIP = 'd1,
|
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 signed [data_width-1: 0] r_data = 'b0;
|
||||||
reg [data_width-1: 0] r_treshhold_p = 'b0;
|
reg [data_width-1: 0] r_treshhold_p = 'b0;
|
||||||
@@ -32,12 +33,7 @@ assign o_data = r_data;
|
|||||||
|
|
||||||
//---------state register sequential always block-----------
|
//---------state register sequential always block-----------
|
||||||
always @(posedge clk ) begin
|
always @(posedge clk ) begin
|
||||||
if (reset == 1) begin
|
if (~reset) begin
|
||||||
// clear state
|
|
||||||
r_state <= IDLE;
|
|
||||||
r_next <= IDLE;
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
r_state <= r_next;
|
r_state <= r_next;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -45,7 +41,12 @@ end
|
|||||||
//----next state & outputs, combinational always block------
|
//----next state & outputs, combinational always block------
|
||||||
|
|
||||||
always @(posedge clk ) begin
|
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)
|
case(r_state)
|
||||||
IDLE : begin
|
IDLE : begin
|
||||||
if (i_data_ready == 1) begin
|
if (i_data_ready == 1) begin
|
||||||
@@ -65,12 +66,12 @@ always @(posedge clk ) begin
|
|||||||
CLIP : begin
|
CLIP : begin
|
||||||
case (r_data[data_width-1])
|
case (r_data[data_width-1])
|
||||||
0 : begin // positive number
|
0 : begin // positive number
|
||||||
if (r_data > r_treshhold_p)
|
if (r_data > r_treshhold_p) begin
|
||||||
r_data <= r_treshhold_p;
|
r_data <= r_treshhold_p; end
|
||||||
end
|
end
|
||||||
1 : begin // negative number
|
1 : begin // negative number
|
||||||
if (r_data < r_treshhold_n)
|
if (r_data < r_treshhold_n) begin
|
||||||
r_data <= r_treshhold_n;
|
r_data <= r_treshhold_n; end
|
||||||
end
|
end
|
||||||
endcase
|
endcase
|
||||||
r_next <= OUTPUT;
|
r_next <= OUTPUT;
|
||||||
@@ -79,9 +80,9 @@ always @(posedge clk ) begin
|
|||||||
end
|
end
|
||||||
OUTPUT : begin
|
OUTPUT : begin
|
||||||
if (i_read_done == 1) begin
|
if (i_read_done == 1) begin
|
||||||
r_next <= IDLE;
|
r_next <= CLEAR;
|
||||||
r_data_valid <= 0;
|
r_data_valid <= 0;
|
||||||
r_read_enable <= 1;
|
r_read_enable <= 0;
|
||||||
end
|
end
|
||||||
else begin
|
else begin
|
||||||
r_next <= OUTPUT;
|
r_next <= OUTPUT;
|
||||||
@@ -89,9 +90,17 @@ always @(posedge clk ) begin
|
|||||||
r_read_enable <= 0; // read disable
|
r_read_enable <= 0; // read disable
|
||||||
end
|
end
|
||||||
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
|
endcase
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@ module effect_controler #( parameter
|
|||||||
output signed [d_width-1: 0] o_r_data,
|
output signed [d_width-1: 0] o_r_data,
|
||||||
|
|
||||||
output o_read_done, // read done from effects module
|
output o_read_done, // read done from effects module
|
||||||
output o_read_ready, // ready read from reefects module
|
output o_read_ready, // ready read from effects module
|
||||||
|
|
||||||
|
|
||||||
input [1:0] sw, // effect control swiches
|
input [1:0] sw, // effect control swiches
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ reg r_data_valid = 0;
|
|||||||
assign o_read_done = r_read_done;
|
assign o_read_done = r_read_done;
|
||||||
assign o_data_valid = r_data_valid;
|
assign o_data_valid = r_data_valid;
|
||||||
assign o_data = r_data_norm;
|
assign o_data = r_data_norm;
|
||||||
|
assign o_read_ready = r_read_ready;
|
||||||
|
|
||||||
|
|
||||||
//---------state register sequential always block-----------
|
//---------state register sequential always block-----------
|
||||||
|
|||||||
+22
-13
@@ -12,10 +12,11 @@ module no_effect #( parameter
|
|||||||
);
|
);
|
||||||
|
|
||||||
//-------------Internal Constants---------------------------
|
//-------------Internal Constants---------------------------
|
||||||
localparam [3:0] IDLE = 'd0,
|
localparam [1:0] IDLE = 'd0,
|
||||||
OUTPUT = 'd1;
|
OUTPUT = 'd1,
|
||||||
|
CLEAR = 'd3;
|
||||||
|
|
||||||
reg [3: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 signed [data_width-1: 0] r_data = 'b0;
|
||||||
reg r_read_enable = 0;
|
reg r_read_enable = 0;
|
||||||
@@ -28,12 +29,7 @@ assign o_data = r_data;
|
|||||||
|
|
||||||
//---------state register sequential always block-----------
|
//---------state register sequential always block-----------
|
||||||
always @(posedge clk ) begin
|
always @(posedge clk ) begin
|
||||||
if (reset == 1) begin
|
if (~reset) begin
|
||||||
// clear state
|
|
||||||
r_state <= IDLE;
|
|
||||||
r_next <= IDLE;
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
r_state <= r_next;
|
r_state <= r_next;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -41,7 +37,12 @@ end
|
|||||||
//----next state & outputs, combinational always block------
|
//----next state & outputs, combinational always block------
|
||||||
|
|
||||||
always @(posedge clk ) begin
|
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)
|
case(r_state)
|
||||||
IDLE : begin
|
IDLE : begin
|
||||||
if (i_data_ready == 1) begin
|
if (i_data_ready == 1) begin
|
||||||
@@ -58,9 +59,9 @@ always @(posedge clk ) begin
|
|||||||
end
|
end
|
||||||
OUTPUT : begin
|
OUTPUT : begin
|
||||||
if (i_read_done == 1) begin
|
if (i_read_done == 1) begin
|
||||||
r_next <= IDLE;
|
r_next <= CLEAR;
|
||||||
r_data_valid <= 0;
|
r_data_valid <= 0;
|
||||||
r_read_enable <= 1;
|
r_read_enable <= 0;
|
||||||
end
|
end
|
||||||
else begin
|
else begin
|
||||||
r_next <= OUTPUT;
|
r_next <= OUTPUT;
|
||||||
@@ -68,9 +69,17 @@ always @(posedge clk ) begin
|
|||||||
r_read_enable <= 0; // read disable
|
r_read_enable <= 0; // read disable
|
||||||
end
|
end
|
||||||
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
|
endcase
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -38,8 +38,7 @@ wire master_clk; // 11.29 MHz master clock
|
|||||||
|
|
||||||
wire clk_50MHz; //
|
wire clk_50MHz; //
|
||||||
|
|
||||||
wire w_reset, w_reset1, w_reset2, w_reset3,
|
wire w_reset, w_reset1, w_reset2;
|
||||||
w_reset4, w_reset5;
|
|
||||||
wire w_internal_reset;
|
wire w_internal_reset;
|
||||||
|
|
||||||
wire signed [d_width-1: 0] r_data_tx;
|
wire signed [d_width-1: 0] r_data_tx;
|
||||||
|
|||||||
Reference in New Issue
Block a user