Skip to content

Commit 3b47f8d

Browse files
committed
Rewrite early ready condition
Signed-off-by: Alex Forencich <alex@alexforencich.com>
1 parent 19def75 commit 3b47f8d

24 files changed

+48
-48
lines changed

rtl/arp_eth_tx.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,8 @@ assign m_eth_payload_axis_tvalid = m_eth_payload_axis_tvalid_reg;
296296
assign m_eth_payload_axis_tlast = m_eth_payload_axis_tlast_reg;
297297
assign m_eth_payload_axis_tuser = m_eth_payload_axis_tuser_reg;
298298

299-
// enable ready input next cycle if output is ready or the temp reg will not be filled on the next cycle (output reg empty or no input)
300-
assign m_eth_payload_axis_tready_int_early = m_eth_payload_axis_tready || (!temp_m_eth_payload_axis_tvalid_reg && (!m_eth_payload_axis_tvalid_reg || !m_eth_payload_axis_tvalid_int));
299+
// enable ready input next cycle if temp register is empty and output register will be available
300+
assign m_eth_payload_axis_tready_int_early = !temp_m_eth_payload_axis_tvalid_reg && (!m_eth_payload_axis_tvalid_reg || m_eth_payload_axis_tready);
301301

302302
always @* begin
303303
// transfer sink ready state to source

rtl/axis_eth_fcs_check.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,8 @@ assign m_axis_tvalid = m_axis_tvalid_reg;
280280
assign m_axis_tlast = m_axis_tlast_reg;
281281
assign m_axis_tuser = m_axis_tuser_reg;
282282

283-
// enable ready input next cycle if output is ready or the temp reg will not be filled on the next cycle (output reg empty or no input)
284-
assign m_axis_tready_int_early = m_axis_tready || (!temp_m_axis_tvalid_reg && (!m_axis_tvalid_reg || !m_axis_tvalid_int));
283+
// enable ready input next cycle if temp register is empty and output register will be available
284+
assign m_axis_tready_int_early = !temp_m_axis_tvalid_reg && (!m_axis_tvalid_reg || m_axis_tready);
285285

286286
always @* begin
287287
// transfer sink ready state to source

rtl/axis_eth_fcs_check_64.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -414,8 +414,8 @@ assign m_axis_tvalid = m_axis_tvalid_reg;
414414
assign m_axis_tlast = m_axis_tlast_reg;
415415
assign m_axis_tuser = m_axis_tuser_reg;
416416

417-
// enable ready input next cycle if output is ready or the temp reg will not be filled on the next cycle (output reg empty or no input)
418-
assign m_axis_tready_int_early = m_axis_tready || (!temp_m_axis_tvalid_reg && (!m_axis_tvalid_reg || !m_axis_tvalid_int));
417+
// enable ready input next cycle if temp register is empty and output register will be available
418+
assign m_axis_tready_int_early = !temp_m_axis_tvalid_reg && (!m_axis_tvalid_reg || m_axis_tready);
419419

420420
always @* begin
421421
// transfer sink ready state to source

rtl/axis_eth_fcs_insert.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,8 @@ assign m_axis_tvalid = m_axis_tvalid_reg;
307307
assign m_axis_tlast = m_axis_tlast_reg;
308308
assign m_axis_tuser = m_axis_tuser_reg;
309309

310-
// enable ready input next cycle if output is ready or the temp reg will not be filled on the next cycle (output reg empty or no input)
311-
assign m_axis_tready_int_early = m_axis_tready || (!temp_m_axis_tvalid_reg && (!m_axis_tvalid_reg || !m_axis_tvalid_int));
310+
// enable ready input next cycle if temp register is empty and output register will be available
311+
assign m_axis_tready_int_early = !temp_m_axis_tvalid_reg && (!m_axis_tvalid_reg || m_axis_tready);
312312

313313
always @* begin
314314
// transfer sink ready state to source

rtl/axis_eth_fcs_insert_64.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -653,8 +653,8 @@ assign m_axis_tvalid = m_axis_tvalid_reg;
653653
assign m_axis_tlast = m_axis_tlast_reg;
654654
assign m_axis_tuser = m_axis_tuser_reg;
655655

656-
// enable ready input next cycle if output is ready or the temp reg will not be filled on the next cycle (output reg empty or no input)
657-
assign m_axis_tready_int_early = m_axis_tready || (!temp_m_axis_tvalid_reg && (!m_axis_tvalid_reg || !m_axis_tvalid_int));
656+
// enable ready input next cycle if temp register is empty and output register will be available
657+
assign m_axis_tready_int_early = !temp_m_axis_tvalid_reg && (!m_axis_tvalid_reg || m_axis_tready);
658658

659659
always @* begin
660660
// transfer sink ready state to source

rtl/eth_arb_mux.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,8 @@ assign m_eth_payload_axis_tid = ID_ENABLE ? m_eth_payload_axis_tid_reg :
241241
assign m_eth_payload_axis_tdest = DEST_ENABLE ? m_eth_payload_axis_tdest_reg : {DEST_WIDTH{1'b0}};
242242
assign m_eth_payload_axis_tuser = USER_ENABLE ? m_eth_payload_axis_tuser_reg : {USER_WIDTH{1'b0}};
243243

244-
// enable ready input next cycle if output is ready or the temp reg will not be filled on the next cycle (output reg empty or no input)
245-
assign m_eth_payload_axis_tready_int_early = m_eth_payload_axis_tready || (!temp_m_eth_payload_axis_tvalid_reg && (!m_eth_payload_axis_tvalid_reg || !m_eth_payload_axis_tvalid_int));
244+
// enable ready input next cycle if temp register is empty and output register will be available
245+
assign m_eth_payload_axis_tready_int_early = !temp_m_eth_payload_axis_tvalid_reg && (!m_eth_payload_axis_tvalid_reg || m_eth_payload_axis_tready);
246246

247247
always @* begin
248248
// transfer sink ready state to source

rtl/eth_axis_rx.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,8 +333,8 @@ assign m_eth_payload_axis_tvalid = m_eth_payload_axis_tvalid_reg;
333333
assign m_eth_payload_axis_tlast = m_eth_payload_axis_tlast_reg;
334334
assign m_eth_payload_axis_tuser = m_eth_payload_axis_tuser_reg;
335335

336-
// enable ready input next cycle if output is ready or the temp reg will not be filled on the next cycle (output reg empty or no input)
337-
assign m_eth_payload_axis_tready_int_early = m_eth_payload_axis_tready || (!temp_m_eth_payload_axis_tvalid_reg && (!m_eth_payload_axis_tvalid_reg || !m_eth_payload_axis_tvalid_int));
336+
// enable ready input next cycle if temp register is empty and output register will be available
337+
assign m_eth_payload_axis_tready_int_early = !temp_m_eth_payload_axis_tvalid_reg && (!m_eth_payload_axis_tvalid_reg || m_eth_payload_axis_tready);
338338

339339
always @* begin
340340
// transfer sink ready state to source

rtl/eth_axis_tx.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,8 +337,8 @@ assign m_axis_tvalid = m_axis_tvalid_reg;
337337
assign m_axis_tlast = m_axis_tlast_reg;
338338
assign m_axis_tuser = m_axis_tuser_reg;
339339

340-
// enable ready input next cycle if output is ready or the temp reg will not be filled on the next cycle (output reg empty or no input)
341-
assign m_axis_tready_int_early = m_axis_tready || (!temp_m_axis_tvalid_reg && (!m_axis_tvalid_reg || !m_axis_tvalid_int));
340+
// enable ready input next cycle if temp register is empty and output register will be available
341+
assign m_axis_tready_int_early = !temp_m_axis_tvalid_reg && (!m_axis_tvalid_reg || m_axis_tready);
342342

343343
always @* begin
344344
// transfer sink ready state to source

rtl/eth_demux.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,8 @@ assign m_eth_payload_axis_tid = ID_ENABLE ? {M_COUNT{m_eth_payload_axis_tid
235235
assign m_eth_payload_axis_tdest = DEST_ENABLE ? {M_COUNT{m_eth_payload_axis_tdest_reg}} : {M_COUNT*DEST_WIDTH{1'b0}};
236236
assign m_eth_payload_axis_tuser = USER_ENABLE ? {M_COUNT{m_eth_payload_axis_tuser_reg}} : {M_COUNT*USER_WIDTH{1'b0}};
237237

238-
// enable ready input next cycle if output is ready or the temp reg will not be filled on the next cycle (output reg empty or no input)
239-
assign m_eth_payload_axis_tready_int_early = (m_eth_payload_axis_tready & m_eth_payload_axis_tvalid) || (!temp_m_eth_payload_axis_tvalid_reg && (!m_eth_payload_axis_tvalid || !m_eth_payload_axis_tvalid_int));
238+
// enable ready input next cycle if temp register is empty and output register will be available
239+
assign m_eth_payload_axis_tready_int_early = !temp_m_eth_payload_axis_tvalid_reg && (!m_eth_payload_axis_tvalid_reg || (m_eth_payload_axis_tready & m_eth_payload_axis_tvalid));
240240

241241
always @* begin
242242
// transfer sink ready state to source

rtl/eth_mux.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,8 @@ assign m_eth_payload_axis_tid = ID_ENABLE ? m_eth_payload_axis_tid_reg :
229229
assign m_eth_payload_axis_tdest = DEST_ENABLE ? m_eth_payload_axis_tdest_reg : {DEST_WIDTH{1'b0}};
230230
assign m_eth_payload_axis_tuser = USER_ENABLE ? m_eth_payload_axis_tuser_reg : {USER_WIDTH{1'b0}};
231231

232-
// enable ready input next cycle if output is ready or the temp reg will not be filled on the next cycle (output reg empty or no input)
233-
assign m_eth_payload_axis_tready_int_early = m_eth_payload_axis_tready || (!temp_m_eth_payload_axis_tvalid_reg && (!m_eth_payload_axis_tvalid_reg || !m_eth_payload_axis_tvalid_int));
232+
// enable ready input next cycle if temp register is empty and output register will be available
233+
assign m_eth_payload_axis_tready_int_early = !temp_m_eth_payload_axis_tvalid_reg && (!m_eth_payload_axis_tvalid_reg || m_eth_payload_axis_tready);
234234

235235
always @* begin
236236
// transfer sink ready state to source

0 commit comments

Comments
 (0)