always @(posedge clk or negedge reset) begin if(!reset) begin addr <= 18'b0; end else begin if(data_start) begin addr <= {1'b0,Data21[15:8],1'b0,Data21[7:0]}; end else if(next_grab & (cnt0 == 2'b11)) begin addr <= addr + 1'b1; if(addr == {1'b0,addr[16:9],1'b0,Data44[15:8]}) begin addr <= {1'b0,(addr[16:9] + 1'b1),1'b0,Data44[7:0]}; if(addr == {1'b0,Data45[15:8],1'b0,Data44[15:8]}) begin addr <= 18'b0; end end end end end 其中Data21[15:0],Data44[15:0],Data45[15:0]均可从先前的数据中得到,属于已知数值。主要是这个addr的跳转问题。 请大家帮忙看下这段代码有什么问题么??谢谢了!!!!