mirror of
https://github.com/fpganinja/taxi.git
synced 2026-04-07 04:38:42 -07:00
apb: Remove extra idle cycles
Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
@@ -162,7 +162,7 @@ end else if (M_BYTE_LANES > S_BYTE_LANES) begin : upsize
|
|||||||
m_apb_pauser_next = s_apb.pauser;
|
m_apb_pauser_next = s_apb.pauser;
|
||||||
m_apb_pwuser_next = s_apb.pwuser;
|
m_apb_pwuser_next = s_apb.pwuser;
|
||||||
|
|
||||||
if (s_apb.psel && s_apb.penable && !s_apb.pready) begin
|
if (s_apb.psel && !s_apb.pready) begin
|
||||||
m_apb_psel_next = 1'b1;
|
m_apb_psel_next = 1'b1;
|
||||||
state_next = STATE_DATA;
|
state_next = STATE_DATA;
|
||||||
end else begin
|
end else begin
|
||||||
@@ -317,7 +317,7 @@ end else begin : downsize
|
|||||||
|
|
||||||
s_apb_pslverr_next = 1'b0;
|
s_apb_pslverr_next = 1'b0;
|
||||||
|
|
||||||
if (s_apb.psel && s_apb.penable && !s_apb.pready) begin
|
if (s_apb.psel && !s_apb.pready) begin
|
||||||
m_apb_psel_next = 1'b1;
|
m_apb_psel_next = 1'b1;
|
||||||
state_next = STATE_DATA;
|
state_next = STATE_DATA;
|
||||||
end else begin
|
end else begin
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ if (AXIL_BYTE_LANES == APB_BYTE_LANES) begin : bypass
|
|||||||
m_axil_auser_next = s_apb.pauser;
|
m_axil_auser_next = s_apb.pauser;
|
||||||
m_axil_wuser_next = s_apb.pwuser;
|
m_axil_wuser_next = s_apb.pwuser;
|
||||||
|
|
||||||
if (s_apb.psel && s_apb.penable && !s_apb.pready) begin
|
if (s_apb.psel && !s_apb.pready) begin
|
||||||
if (s_apb.pwrite) begin
|
if (s_apb.pwrite) begin
|
||||||
m_axil_awvalid_next = 1'b1;
|
m_axil_awvalid_next = 1'b1;
|
||||||
m_axil_wvalid_next = 1'b1;
|
m_axil_wvalid_next = 1'b1;
|
||||||
@@ -322,7 +322,7 @@ end else if (AXIL_BYTE_LANES > APB_BYTE_LANES) begin : upsize
|
|||||||
m_axil_auser_next = s_apb.pauser;
|
m_axil_auser_next = s_apb.pauser;
|
||||||
m_axil_wuser_next = s_apb.pwuser;
|
m_axil_wuser_next = s_apb.pwuser;
|
||||||
|
|
||||||
if (s_apb.psel && s_apb.penable && !s_apb.pready) begin
|
if (s_apb.psel && !s_apb.pready) begin
|
||||||
if (s_apb.pwrite) begin
|
if (s_apb.pwrite) begin
|
||||||
m_axil_awvalid_next = 1'b1;
|
m_axil_awvalid_next = 1'b1;
|
||||||
m_axil_wvalid_next = 1'b1;
|
m_axil_wvalid_next = 1'b1;
|
||||||
@@ -501,7 +501,7 @@ end else begin : downsize
|
|||||||
|
|
||||||
s_apb_pslverr_next = 1'b0;
|
s_apb_pslverr_next = 1'b0;
|
||||||
|
|
||||||
if (s_apb.psel && s_apb.penable && !s_apb.pready) begin
|
if (s_apb.psel && !s_apb.pready) begin
|
||||||
if (s_apb.pwrite) begin
|
if (s_apb.pwrite) begin
|
||||||
m_axil_awvalid_next = 1'b1;
|
m_axil_awvalid_next = 1'b1;
|
||||||
m_axil_wvalid_next = 1'b1;
|
m_axil_wvalid_next = 1'b1;
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ always_comb begin
|
|||||||
|
|
||||||
s_apb_a_pready_next = 1'b0;
|
s_apb_a_pready_next = 1'b0;
|
||||||
|
|
||||||
if (s_apb_a.psel && s_apb_a.penable && (!s_apb_a_pready_reg && (PIPELINE_OUTPUT || !s_apb_a_pready_pipe_reg))) begin
|
if (s_apb_a.psel && (!s_apb_a_pready_reg && (PIPELINE_OUTPUT || !s_apb_a_pready_pipe_reg))) begin
|
||||||
s_apb_a_pready_next = 1'b1;
|
s_apb_a_pready_next = 1'b1;
|
||||||
|
|
||||||
if (s_apb_a.pwrite) begin
|
if (s_apb_a.pwrite) begin
|
||||||
@@ -139,7 +139,7 @@ always_comb begin
|
|||||||
|
|
||||||
s_apb_b_pready_next = 1'b0;
|
s_apb_b_pready_next = 1'b0;
|
||||||
|
|
||||||
if (s_apb_b.psel && s_apb_b.penable && (!s_apb_b_pready_reg && (PIPELINE_OUTPUT || !s_apb_b_pready_pipe_reg))) begin
|
if (s_apb_b.psel && (!s_apb_b_pready_reg && (PIPELINE_OUTPUT || !s_apb_b_pready_pipe_reg))) begin
|
||||||
s_apb_b_pready_next = 1'b1;
|
s_apb_b_pready_next = 1'b1;
|
||||||
|
|
||||||
if (s_apb_b.pwrite) begin
|
if (s_apb_b.pwrite) begin
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ always_ff @(posedge clk) begin
|
|||||||
m_apb_psel_reg <= '0;
|
m_apb_psel_reg <= '0;
|
||||||
m_apb_penable_reg <= 1'b0;
|
m_apb_penable_reg <= 1'b0;
|
||||||
|
|
||||||
if (s_apb.psel && s_apb.penable && !s_apb_pready_reg) begin
|
if (s_apb.psel && !s_apb_pready_reg) begin
|
||||||
act_reg <= 1'b1;
|
act_reg <= 1'b1;
|
||||||
for (integer i = 0; i < M_CNT; i = i + 1) begin
|
for (integer i = 0; i < M_CNT; i = i + 1) begin
|
||||||
for (integer j = 0; j < M_REGIONS; j = j + 1) begin
|
for (integer j = 0; j < M_REGIONS; j = j + 1) begin
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ always_comb begin
|
|||||||
|
|
||||||
s_apb_pready_next = 1'b0;
|
s_apb_pready_next = 1'b0;
|
||||||
|
|
||||||
if (s_apb.psel && s_apb.penable && (!s_apb_pready_reg && (PIPELINE_OUTPUT || !s_apb_pready_pipe_reg))) begin
|
if (s_apb.psel && (!s_apb_pready_reg && (PIPELINE_OUTPUT || !s_apb_pready_pipe_reg))) begin
|
||||||
s_apb_pready_next = 1'b1;
|
s_apb_pready_next = 1'b1;
|
||||||
|
|
||||||
if (s_apb.pwrite) begin
|
if (s_apb.pwrite) begin
|
||||||
|
|||||||
Reference in New Issue
Block a user