如何在verilog中使用唯一语句?

时间:2016-03-22 05:23:20

标签: verilog system-verilog

我想知道如何使用verilog中的唯一语句。

例如

if (in0) se1 = 2'b00;
else if (in1) se1 = 2'b00;
else if (in2) se1 = 2'b00;
else if (in3) se1 = 2'b00;

如果in0和in1为真,则选择in0。

unique if (in0) se1 = 2'b00;
else if (in1) se1 = 2'b00;
else if (in2) se1 = 2'b00;
else if (in3) se1 = 2'b00;

如果in0,in1为真,那么这是如何处理的?

2 个答案:

答案 0 :(得分:3)

添加到uniqueif语句的case关键字有两个作用:

  • 它添加一个断言以确保只有一个分支条件为真。在模拟期间或通过正式工具检查断言,以确保不可能超过条件。
  • 它告诉综合工具生成优化逻辑,假设一次只能有一个分支条件为真。

如果事实证明in0和in1都是真的,那么模拟仍将采用第一个分支,但是你会收到一条错误信息。实际的硬件会产生不可预测的结果。

答案 1 :(得分:2)

首先,我想告诉你,系统verilog的独特功能不是verilog。 SystemVerilog唯一关键字可以应用于if ... else语句以传达相同的唯一性属性。对于唯一的if语句,如果以下任何一个为false,模拟器将生成运行时警告:

  • 如果两个或多个if条件同时为真。
  • 如果所有if条件(包括else if)都为false,并且没有最终的else分支。