问号?在 verilog 中支持多位 select 信号?

question mark ? in verilog support multi bit select signal?

y = sel ? x : y

我一直假设sel应该是一位数据,1或0,真或假。 但是我的队友坚持认为sel可以不止一位。他用原来的 4 位信号作为 sel 代替,只要它不为 0,它就是 true,这意味着 sel 中的任何位都会变高会输出 x。 我很惊讶它在 Qaurtus 中通过了综合。没有错误

通常我们使用 y = |sel ? x: y 代替。

我们在这里想要的是,如果 sel 中的任何位为高,我们希望将 x 作为输出。 这在各种verilog综合工具中都能正常工作吗?

简单。在 Verilog 中,true 为非零,false 为 0、X 或 Z。条件运算符 ?: 仅查看条件 select 表达式的真或假。