购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2.2 条件赋值符?:和条件语句if-else的执行结果一致吗?

多数情况下二者的执行结果是一致的。但要注意,避免让条件判断结果出现X值,否则条件赋值符的结果会让你吃惊的(也会让你为此而调试查找问题)。原因在于,如果?:赋值中的条件结果为X值,那么变量被赋值时很可能有X值出现,具体原因可参考IEEE-1800 SystemVerilog-2017标准11.4.11节的内容。

关键词:

?:,if-else

避坑指南:

无论上述哪种条件执行方式,尽量使用case equality operators'==='、'!==',而不使用logical equality operators'=='、'!=',避免条件本身得出X结果。

参考代码: sv_condition_diff_if.sv

仿真结果:

阅读手记: L6JG7thORr4ixZgbOy4ja0sfbmkzFnCjjS4lEoQeN0S0fqNa/hT2+PLDUIjCBO+P

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开