小弟正在做一个模块的设计,模块中用到了一些诸如下面写法的逻辑,领导看完后说这样写会有风险,过不了我们内部的代码审查,问他有什么风险,他又解释不清楚,代码如下:
always @ (posedge clk or negedge rst_n)
begin
if (!rst_n)
begin
a <= 'b0;
end
else if (flag)
begin
a <= a + 1'b1;
end
else
begin
a <= a;
end
end
不明白会出现什么样的风险,请各位大神前辈知无不言言无不尽,都说说这种计数器写法存在的问题,如何能改进,谢谢!