HDLBits (37) — 三元条件运算符
2022-02-12 00:04 作者:僚机Wingplane | 我要投稿
本题链接:
https://hdlbits.01xz.net/wiki/Conditional
Verilog有一个三元条件运算符(? :),很像C:
这可用于根据条件选择两个值中的一个(一个多路复用器!)不使用 if-then 在组合的 always 块中。
示例:

题目
给定四个无符号数,求出最小值。无符号数可以与标准比较运算符(a < b)进行比较。使用条件运算符电路制作双向最小电路,然后组成一些最小电路来制作一个四向最小电路。您可能需要一些向量线网来表示中间结果。
预期的解决方案长度:大约5行。

答案

输出波形


条件表达式有 3 个操作符,结构描述如下:
计算时,如果 condition_expression 为真(逻辑值为 1),则运算结果为 true_expression;如果 condition_expression 为假(逻辑值为 0),则计算结果为 false_expression。
其实,条件表达式类似于 2 路(或多路)选择器,其描述方式完全可以用 if-else 语句代替。当然条件操作符也能进行嵌套,完成一个多次选择的逻辑。
参考资料:
2.4 Verilog 表达式 | 菜鸟教程:
https://www.runoob.com/w3cnote/verilog-expression.html