verilog 位宽拼接

你的置位运算符用的不太对,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位,所以这个没有问题的,但是在位操作符里,没有做这样的自动扩展

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容