HDLBits (58) — 3 位population count
本题链接:
https://hdlbits.01xz.net/wiki/Popcount3
“population count”电路计算输入向量中的“1”出现的个数。为一个3位输入向量建立一个population count电路。

题目

答案

输出波形


按位操作符包括:取反(~),与(&),或(|),异或(^),同或(~^)。
按位操作符对 2 个操作数的每 1bit 数据进行按位操作。
如果 2 个操作数位宽不相等,则用 0 向左扩展补充较短的操作数。
取反操作符只有一个操作数,它对操作数的每 1bit 数据进行取反操作。
下图给出了按位操作符的逻辑规则。

条件(if)语句用于控制执行语句要根据条件判断来确定是否执行。
条件语句用关键字 if 和 else 来声明,条件表达式必须在圆括号中。
条件语句使用结构说明如下:
if 语句执行时,如果 condition1 为真,则执行 true_statement1 ;如果 condition1 为假,condition2 为真,则执行 true_statement2;依次类推。
else if 与 else 结构可以省略,即可以只有一个 if 条件判断和一组执行语句 ture_statement1 就可以构成一个执行过程。
else if 可以叠加多个,不仅限于 1 或 2 个。
ture_statement1 等执行语句可以是一条语句,也可以是多条。如果是多条执行语句,则需要用 begin 与 end 关键字进行说明。
参考内容:
2.4 Verilog 表达式 | 菜鸟教程:
https://www.runoob.com/w3cnote/verilog-expression.html
4.5 Verilog 条件语句 | 菜鸟教程:
https://www.runoob.com/w3cnote/verilog-condition-statement.html