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

HDLBits (159) — 多路复用器

2022-06-07 22:09 作者:僚机Wingplane  | 我要投稿

本题链接:

https://hdlbits.01xz.net/wiki/Bugs_mux2

这个 8 位宽的 2 对 1 多路复用器不起作用。 修复错误。

题目

答案

输出波形

1. 一个复用器,代码为 (~sel & a) |  (sel & b) 不适用于向量。

这是因为这些是按位运算符,而 sel 只是一个 1 位宽的量,这使得 a 和 b 的高位为零。 可以使用复制运算符对其进行编码,但这有点难以阅读:

( {8{~sel}} & a ) | ( {8{sel}} & b )

2.仿真波形显示,当sel=1时,应选择a。 这是在建议的代码中翻转的。

条件表达式有 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 (159) — 多路复用器的评论 (共 条)

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