仅对英特尔可见 — GUID: mwh1409959493623
Ixiasoft
2.2.2.1. 避免组合循环(Avoid Combinational Loops)
组合循环是数字设计中导致不稳定和不可靠的最常见原因。通过建立不包含寄存器的直接反馈循环,组合循环通常违反同步设计原则。
尽可能避免组合循环。在同步设计中,反馈环路应包括寄存器。例如,当算术表达式的左侧也出现在HDL代码的右侧时,就会出现组合循环。当您通过组合逻辑将寄存器的输出反馈到同一寄存器的异步管脚时,也会出现组合循环。
图 6. 通过异步控制管脚的组合循环
组合循环本质上是高风险的设计结构,原因如下:
- 组合循环的行为通常取决于循环中所包括的逻辑上的相对传播延迟。如所讨论的,传播延迟可以改变,这意味着循环的行为是不可预测的。
- 在很多设计工具中,组合循环会导致无限的计算循环。大多数工具都会打破组合循环来处理设计。设计流程中使用的各种工具可以以不同的方式打开一个特定的循环,并以与原始设计意图不一致的方式对其进行处理。