欢迎光临散文网 会员登陆 & 注册

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

HDLBits (37) — 三元条件运算符的评论 (共 条)

分享到微博请遵守国家法律