verilog 位宽拼接

2017-08-28  本文已影响110人  Michael_Johnson

你的置位运算符用的不太对,a+b它也是当成两位数来进行计算的,所以,等式的左边是5位,右边是4位表达式,左边的最高位自动设置为0

hui3462(2009-4-15 17:34:49)

楼上说的MS是对的

gatezte2008(2009-4-15 20:57:16)

可是我也试过这种情况没有问题: reg [3:0] sum; reg cout; input [3:0] a,b; input cin; {cout,sum}=a+b+cin; /* 这种它能正确把进位位赋给cout,a,b都是4位呀,可是等式左边也是5位,为什么就没有问题呢? */

larkin920(2009-4-15 23:52:11)

最好是先对a和b进行符号位扩展后再实现加法运算!

fucloudsea(2009-4-24 14:04:18)

{cout,sum}=a+b+cin; 这种情况下,a+b+cin软件自动把结果扩展成5位,所以这个没有问题的,但是在位操作符里,没有做这样的自动扩展

上一篇下一篇

猜你喜欢

热点阅读