db mv更新疑问。
-
范老师您好:
感谢范老师开源265 、264代码,在阅读代码中我受益很多。
同时有一个疑问:如下代码中left_mv在第一列LCU中没有被取值。那么在第二列LCU中
mv_pre_up_r <= left_mv[cnt_r[7:5]-3'd1] ;
mv_pre_dn_r <= left_mv[cnt_r[7:5]] ;
这里拿到的left_mv是否为无效值。//*** store left mv *************************************** assign mv_data_o_w = ((cnt_r[8:5] == 0) && (cnt_r[1:0] == 0)) ? top_mv_data_o_w : cur_mv_data_o_w ; always @ ( posedge clk or negedge rst_n ) begin if ( !rst_n ) begin left_mv[0] <= 0 ; left_mv[1] <= 0 ; left_mv[2] <= 0 ; left_mv[3] <= 0 ; left_mv[4] <= 0 ; left_mv[5] <= 0 ; left_mv[6] <= 0 ; left_mv[7] <= 0 ; end else if ( sys_ctu_x_i == 0 ) begin //第一列LCU不更新 left_mv[0] <= 0 ; left_mv[1] <= 0 ; left_mv[2] <= 0 ; left_mv[3] <= 0 ; left_mv[4] <= 0 ; left_mv[5] <= 0 ; left_mv[6] <= 0 ; left_mv[7] <= 0 ; end else if (cnt_r[8:5]>0 && cnt_r[4:2] == 3'b111) begin left_mv[cnt_r[8:5]-3'd1] <= cnt_r[1:0] == 2'd0 ? mv_data_o_w : left_mv[cnt_r[8:5]-3'd1] ; end end always @ ( posedge clk or negedge rst_n ) begin if ( !rst_n )begin mv_pre_up_r <= 0; mv_pre_dn_r <= 0; end else if (cnt_i == 0) begin mv_pre_up_r <= tl_mv ; mv_pre_dn_r <= left_mv[0] ; end else if (cnt_i[4:2] == 0) begin mv_pre_up_r <= left_mv[cnt_r[7:5]-3'd1] ; mv_pre_dn_r <= left_mv[cnt_r[7:5]] ; end else if (cnt_r[1:0] == 2'b11) begin mv_pre_up_r <= mv_cur_up_r; mv_pre_dn_r <= mv_cur_dn_r; end else begin mv_pre_up_r <= mv_pre_up_r; mv_pre_dn_r <= mv_pre_dn_r; end end