在组合逻辑中,若组合逻辑赋值形成了loop,则可能产生毛刺,如下:
always @(*)begin
rin_A = reg_A;
rin_B = reg_B;
if(A)begin
rin_A = (rin_A+C)|B;
rin_B = rin_A+D+E;
end
end
rin_A = (rin_A+C)|B;
是可能产生毛刺的,因为形成了loop。可以改成如下消除毛刺:
rin_A = (reg_A+C)|B;