← 2024 · 小米 · 2025硬件提前批(芯片) 笔试
推荐答案
测试一下
题目
以下哪段代码实现了一个 4 位的加法器?
A.
B.
C.
D.
参考答案与知识点
参考答案
正确答案是C。实现一个4位加法器时,需要考虑进位输出。输入a和b均为4位,它们的和范围是0到30(即11110),需要5位才能完整表示,因此输出位宽应为[4:0],其中bit4为进位。选项A、D的输出位宽为[3:0],会截断进位,错误。选项B虽输出位宽正确,但使用了always组合逻辑块对sum赋值。在Verilog中,always块内被赋值的变量必须声明为reg类型,而模块输出端口默认类型为wire,除非显式声明为output reg。选项B未将sum声明为reg,语法错误(多数综合器会报错或产生意外行为)。选项C使用连续赋值assign,sum自动为wire类型,且位宽为[4:0],正确实现了加法功能。核心考点:加法器输出位宽需包含进位;always块与连续赋值对变量类型的要求不同。
涉及知识点
- 加法器进位处理:和位宽应比加数多1
- Verilog端口类型:output默认wire
- always块内赋值变量需declared reg
- 连续赋值assign适用于wire型变量
- 组合逻辑实现方式:assign与always区别