verilog - 如何在verilog中使用独特的语句?

标签 verilog system-verilog

我想知道如何在verilog中使用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 为真,则选择 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 为 true 那么如何处理?

最佳答案

添加到 ifcase 语句中的 unique 关键字有两个作用:

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

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

关于verilog - 如何在verilog中使用独特的语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36146721/

相关文章:

system-verilog - System Verilog always_latch 与 always_ff

verilog - 仿真结果与综合原理图不匹配

system-verilog - 将 systemverilog 包导入为另一个名称

verilog - 为什么 begin/end 允许我在 SystemVerilog 任务的中途声明变量?

c - 在 Verilog 过程接口(interface)中,是否可以多次扫描迭代循环?

vhdl - 我无法让 Xilinx uartlite IP 工作

verilog - verilog 中的总线表示法

verilog - 移位寄存器 Verilog

bit-manipulation - Verilog 访问特定位

module - Verilog 错误 : Must be connected to a structural net expression