为什么合成工具在它们似乎用在方程中时修剪计数器位?

根据编码样式,可以在合成过程中删除硬件描述语言(HDL)源代码中的信号。

  1. 大多数情况下,信号被移除/修剪的原因非常明显。
  2. 但有时用户不清楚为什么信号/寄存器位被优化掉了。
  3. 当多个方程具有相互矛盾的信号使用时,通常会发生这种情况。
在下面的示例中,作为等式优化的结果,移除了计数器位(CNT)。 。计数器正在Dout方程中使用,并且与解码的地址值进行“与”运算:Dout&lt; = 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。
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-27 13:36:27 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它