首页 > 解决方案 > “分配”操作中的操作优先级?

问题描述

通常,assign陈述简单明了。但是假设有一个复杂的有括号和连接以及一堆不同的运算符;语句右侧的运算符的评估优先级的确切顺序是什么assign

有许多不同的运算符类型:

换句话说,如果要将assign语句转换为always块,组织操作的确切顺序是什么?

回答

感谢@dave_59,根据 IEEE 的文档,降序排列的优先级是:

操作员 关联性
(), [], ::,. 剩下
+, -, !, ~, &, ~&, |, ~|, ^, ~^, ^~, ++, --(一元)
** 剩下
*, /,% 剩下
+, -(二进制) 剩下
<<, >>, <<<,>>> 剩下
<, <=, >, >=, inside,dist 剩下
==, !=, ===, !==, ==?,!=? 剩下
&(二进制) 剩下
^, ~^, ^~(二进制) 剩下
|(二进制) 剩下
&& 剩下
|| 剩下
?:(条件运算符)
–&gt;,<–&gt;
=, +=, -=, *=, /=, %=, &=, ^=, \|=, <<=, >>=, <<<=, >>>=, :=, :/,<= 没有任何
{},{{}} 级联

标签: verilog

解决方案


IEEE 1800-2017 SystemVerilog LRM的第 11.3.2 节运算符优先级对此进行了详细定义。


推荐阅读