@@ -125,10 +125,14 @@ reg gmii_rx_er_d2 = 1'b0;
125125reg gmii_rx_er_d3 = 1'b0 ;
126126reg gmii_rx_er_d4 = 1'b0 ;
127127
128- reg [DATA_WIDTH- 1 :0 ] m_axis_tdata_reg = {DATA_WIDTH{1'b0 }}, m_axis_tdata_next;
129- reg m_axis_tvalid_reg = 1'b0 , m_axis_tvalid_next;
130- reg m_axis_tlast_reg = 1'b0 , m_axis_tlast_next;
131- reg m_axis_tuser_reg = 1'b0 , m_axis_tuser_next;
128+ reg [DATA_WIDTH- 1 :0 ] m_axis_tdata_reg [4 :0 ];
129+ reg [DATA_WIDTH- 1 :0 ] m_axis_tdata_next;
130+ reg [4 :0 ] m_axis_tvalid_reg = 5'b0 ;
131+ reg m_axis_tvalid_next;
132+ reg [4 :0 ] m_axis_tlast_reg = 5'b0 ;
133+ reg m_axis_tlast_next;
134+ reg [4 :0 ] m_axis_tuser_reg = 5'b0 ;
135+ reg m_axis_tuser_next;
132136
133137reg start_packet_int_reg = 1'b0 ;
134138reg start_packet_reg = 1'b0 ;
@@ -140,10 +144,10 @@ reg [PTP_TS_WIDTH-1:0] ptp_ts_reg = 0;
140144reg [31 :0 ] crc_state = 32'hFFFFFFFF ;
141145wire [31 :0 ] crc_next;
142146
143- assign m_axis_tdata = m_axis_tdata_reg;
144- assign m_axis_tvalid = m_axis_tvalid_reg;
145- assign m_axis_tlast = m_axis_tlast_reg;
146- assign m_axis_tuser = PTP_TS_ENABLE ? {ptp_ts_reg, m_axis_tuser_reg} : m_axis_tuser_reg;
147+ assign m_axis_tdata = m_axis_tdata_reg[ 4 ] ;
148+ assign m_axis_tvalid = m_axis_tvalid_reg[ 4 ] & ~ ( | m_axis_tlast_reg[ 4 : 1 ]) ;
149+ assign m_axis_tlast = m_axis_tlast_reg[ 0 ] ;
150+ assign m_axis_tuser = PTP_TS_ENABLE ? {ptp_ts_reg, m_axis_tuser_reg[ 4 ] } : m_axis_tuser_reg[ 4 ] ;
147151
148152assign start_packet = start_packet_reg;
149153assign error_bad_frame = error_bad_frame_reg;
@@ -247,10 +251,10 @@ end
247251always @(posedge clk) begin
248252 state_reg <= state_next;
249253
250- m_axis_tdata_reg <= m_axis_tdata_next;
251- m_axis_tvalid_reg <= m_axis_tvalid_next;
252- m_axis_tlast_reg <= m_axis_tlast_next;
253- m_axis_tuser_reg <= m_axis_tuser_next;
254+ m_axis_tdata_reg <= {m_axis_tdata_reg[ 3 : 0 ], m_axis_tdata_next} ;
255+ m_axis_tvalid_reg <= {m_axis_tvalid_reg[ 3 : 0 ], m_axis_tvalid_next} ;
256+ m_axis_tlast_reg <= {m_axis_tlast_reg[ 3 : 0 ], m_axis_tlast_next} ;
257+ m_axis_tuser_reg <= {m_axis_tuser_reg[ 3 : 0 ], m_axis_tuser_next} ;
254258
255259 start_packet_int_reg <= 1'b0 ;
256260 start_packet_reg <= 1'b0 ;
0 commit comments