根据编码样式,可以在合成过程中删除硬件描述语言(HDL)源代码中的信号。
- 大多数情况下,信号被移除/修剪的原因非常明显。
- 但有时用户不清楚为什么信号/寄存器位被优化掉了。
- 当多个方程具有相互矛盾的信号使用时,通常会发生这种情况。
在下面的示例中,作为等式优化的结果,移除了计数器位(CNT)。
。计数器正在Dout方程中使用,并且与解码的地址值进行“与”运算:Dout< = CNT和(addr = HEX220);
。然后Dout提供三态方程:当data_bus_oe =’1’时,D <= Dout,否则为“ZZZZZZZZ”;
。当data_bus_oe还取决于地址,但不是相同的解码值(addr!= HEX220)时,会出现问题。。如果(addr = HEX220)为真,则data_bus_oe = 0,因此当(addr = HEX220)为真时,不会使用Dout。。换句话说,当data_bus_oe = 1时,Dout始终为0.结果,从不使用计数器CNT。
没有回复内容