在always和assign语句中使用三元运算符有区别吗?

问题描述 投票:0回答:1

我知道三元运算符可以在always语句和赋值语句中使用。 在always语句中,使用三元运算符而不是if~else时,是否可能在综合或编译过程中出现问题?

如果您能回答哪怕是很小的差异,我将不胜感激。

verilog vivado
1个回答
0
投票

无论在何处使用,三元运算符 (

 A ? B : C
) 的行为都是相同的。它可以用在任何允许表达式的地方。您可能会混淆三元运算符在
B
C
表达式之间进行选择的方式,以及
if/else
分支语句 (
 if (A) stB; else stC;
) 在两个不同语句之间进行选择的方式。 4 状态 X 值如何传播存在模拟问题,而不是综合问题。

A
未知的情况在两个构造中得到不同的处理。

因为三元运算符用在表达式中,所以它可以同时计算

B
C
表达式。如果它们具有相同的值,则可以返回该值作为结果,否则返回未知值。

if/else
构造只能执行一个分支。标准要求当
else
条件未知时执行
A
分支。

© www.soinside.com 2019 - 2024. All rights reserved.