always@(posedge clk) begin
s_axis_gamma_tready <= m_axis_gamma_tready ;
if(resetn) begin
m_axis_gamma_tvalid <= s_axis_gamma_tvalid ;
m_axis_gamma_tlast <= s_axis_gamma_tlast ;
if(s_axis_gamma_ruser) begin
if(m_axis_gamma_tvalid && m_axis_gamma_tready)
m_axis_gamma_tuser <= 1 ;
else
m_axis_gamma_tuser <= 0 ;
end
end
else
m_axis_gamma_tvalid <= 0 ;
end
改成
always@(posedge clk) begin
s_axis_gamma_tready <= m_axis_gamma_tready ;
m_axis_gamma_tlast <= s_axis_gamma_tlast ;
end
//m_axis_gamma_tvalid
always@(posedge clk) begin
if(!resetn)
m_axis_gamma_tvalid <= 0 ;
else
m_axis_gamma_tvalid <= s_axis_gamma_tvalid ;
end
//m_axis_gamma_tuser
always@(posedge clk) begin
if(!resetn)
m_axis_gamma_tuser <= 0 ;
else if(s_axis_gamma_tuser) begin
if(m_axis_gamma_tvalid && m_axis_gamma_tready) //
m_axis_gamma_tuser <= 1 ;
else
m_axis_gamma_tuser <= 0 ;
end
end
①逻辑要清晰,层次要分明,还是这句老话。
②习惯要先看初始化的值,所以先if(!resetn),而不是if(resetn)
③一个always里面不要写太多if的嵌套。