推荐答案
测试一下
题目
运算assign SUM=a[7:0]+b[7:0]+c[7:0]+d[7:0]+e[8:0],为了SUM没有溢出,SUM的位宽最小为多少
A 10 B 11 C 12 D 13
参考答案与知识点
参考答案
正确答案是B,11位。四个8位无符号数范围0~255,一个9位无符号数范围0~511,求和最大值:255×4+511=1020+511=1531。2^10=1024,小于1531,2^11=2048,大于1531,因此需要11位才能无溢出表示。注意:Verilog中连续赋值运算,最终结果位宽应能容纳所有可能和,中间加法宽度不会超过最终位宽。易错点:误以为逐级进位导致位宽累加(8+8→9,9+8→10,10+8→11,11+9→12),但实际加法器可并行优化,最终结果位宽仅需满足最大值。
涉及知识点
- 无符号数加法溢出判断
- 最大值计算与位宽关系
- Verilog表达式位宽规则
- 2的幂次与数表示范围