复制代码- reg [1:0] stat_action;
- always@(*) begin
- case({is_luma, blk_type})
- {1'b1, `DC_ONLY}:
- if(scan_done)
- stat_action = `FIFO_COMMIT;
- else
- stat_action = `FIFO_PENDING;
-
- {1'b1, `AC_ONLY}:
- if(scan_done) begin
- if(blk_idx == 0)
- stat_action = `FIFO_PENDING;
- if(nzc_count != 0)
- stat_action = `FIFO_COMMIT;
- if((blk_idx == 15) && (stat_action == `FIFO_PENDING))
- stat_action = `FIFO_ROLLBACK;
- end
-
- {1'b1, `DC_AC}:
- if(scan_done) begin
- if(blk_idx[1:0] == 2'b00)
- stat_action = `FIFO_PENDING;
- if(nzc_count != 0)
- stat_action = `FIFO_COMMIT;
- if((blk_idx[1:0] == 2'b11) && (stat_action == `FIFO_PENDING))
- stat_action = `FIFO_ROLLBACK;
end
-
- {1'b0, `DC_ONLY}:
- if(scan_done) begin
- if(blk_idx == 0)
- stat_action = `FIFO_PENDING;
- if(nzc_count != 0)
- stat_action = `FIFO_COMMIT;
- end
-
- {1'b0, `AC_ONLY}:
- if(scan_done) begin
- if(blk_idx == 0)
- stat_action = `FIFO_PENDING;
- if( nzc_count != 0)
- stat_action = `FIFO_COMMIT;
- if((blk_idx == 7) && (stat_action == `FIFO_PENDING))
- stat_action = `FIFO_ROLLBACK;
- end
- {1'b0, 2'b00}: stat_action = `FIFO_COMMIT;
- endcase
- end
复制代码帮忙看下上面这段代码是否会产生组合反馈,RTL仿真没问题,综合后仿真就出问题了,对比了下波形,发现是上面这段代码stat_action出现了时序问题。
这个地方是组合逻辑,很明显stat_action形成了反馈,不知道是不是因为产生了组合反馈才导致综合仿真出问题
[
本帖最后由 超自然 于 2013-4-12 10:17 编辑 ]
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>