1.组合逻辑环的产生
产生组合逻辑环路的原因有两个,一个是将组合逻辑电路的输出端又通过组合逻辑反馈到输入端,另一个是将寄存器的输出端通过组合逻辑反馈到同一个寄存器的异步端(异步复位或异步置位)。
1) assign q = a&b;
assign a = ~q;
2)always@(posedge clk, negedge rst_n)
begin
if(rst_n == 1’b0)
q= 1’b0;
else
q= a;
end
assign rst_n = ~q;
2.组合逻辑换的影响
2.1IRUN工具
irun工具在编译时,会漏报许多问题,对于组合逻辑环的问题可能没有提示。在使用irun命令进行RTL代码仿真时,如果存在组合逻辑环,会直接卡住,停止仿真,如果仿真环境复杂,对于这种问题很难去定位,所以需要极力避免!
2.2 检查方式
irun工具,提供了 –gateloopwarn 选项,用于检测这种零延时的组合逻辑。