? Verilog的陈述

时间:2017-08-08 19:38:17

标签: verilog

我在理解一些我试图重写的Verilog代码时遇到了一些麻烦。特别是这一行:

assign x = (y) ? a | b | c : 1'b0;

我认为这是一个if语句,但我还不完全确定它是如何工作的,所以任何帮助翻译都会很棒!

2 个答案:

答案 0 :(得分:1)

这是三元运算符,其语义与其他编程语言类似。它可以粗略被认为是if声明:

if (y) 
     x = a | b | c;
else 
     x = 1'b0;

虽然在verilog中它是一个确切的替代品,因为它在' x的存在下也具有特定的功能。

答案 1 :(得分:0)

它确实是一个if-else语句,它将实现一个多路复用器。您可以按如下方式查看此代码

How this would synthesize