Verilog中if … else嵌套与case分支的区别比较
在VerilogHDL电路设计中,if语句指定另一个具有优先级的编码逻辑,而case语句生成的逻辑语句是并行的,不具有优先级。
通常情况下,if … else结构速度比较慢,但是占用面积较小;case 结构速度较快,但占用面积较大。
如果嵌套的if … else 语句使用不当,就会导致设计的更大延时,为了避免较大的路径延时,不能使用特别长的嵌套 if …else 结构。如果需要利用if … else语句实现那些对延时要求苛刻的路径,应该将最高优先级给最迟到达的关键信号。
需要注意的是,不完整的if … else 在时序电路中没有什么影响,可是在组合电路中会生成latch! case分支结构没有列举出所有的情况时,必须使用default,否则会产生latch,使用default使得覆盖率无法达到100%。
case分支结构共有三种形式,case(),casez(),casex(),其中case()判断0,1,x,z四种情况下的等价;casez()判断0,1,x三种情况下的等价,对z判断为真;casex()判断0,1两种情况下的等价,对x,z判断为真。