求教牛人关于if...if和casex代码
时间:10-02
整理:3721RD
点击:
请问casex是不是可以替换成如下的if...if形式?


casex综合出的电路如图,有一个问题:如果case各项互斥的话,电路的输出满足预期;如果case各项有overlap,例如toggle的三位都取111,电路输出也为111;如何从代码上能够判断最后的输出结果呢?

这两段代码不等价。
if...if代码有优先级,最后的判读优先级最高。casex如不考虑注释,则第一句优先级最高,考虑注释则优先级随意,总之与if...if代码优先级不等。你知道该什么时候用synopsys parallel_case吗?
就是上级电路保证case的各个分支绝对互斥,所以可以不考虑case语句的优先级,将其铺平了综合的时候。
所以你既然用了synopsys parallel_case,就要保证case分支互斥。
三位取111是没有意义的,也是和你综合的前提矛盾的。应该是 if(){}
else if(){}
