Verilog-signed and unsigned

Verilog-signed and unsigned
摘要由CSDN通过智能技术生成

常识:

  • signed&unsigned只在operation下才有意义;无论对signed or unsigned赋值,都是对binary code的传递。数据在模块间相互传递时,均按照下面赋值规律。(warning: unsigned [3:0] a = signed [3:0] b,在这种情况下,若后续进行任何涉及到拓宽的运算,error)
  • signed运算结果用signed储存,防止后续出错;unsigned用unsigned储存。
  • operands中同时有signed&unsigned,operation为unsigned。
  • unsigned用原码,扩展用‘0’填补;signed用two's compliment。扩展用‘最高位’填补。

1.赋值操作(扩展和截断)

扩展:

(signed&unsigned) [7:0] a = (signed&unsigned) [4:0] b

均以rhs b的符号决定扩展方式。

截断:

signed&unsigned都是直接高位截断。

2.加减运算

本质都可以认为是补码运算,只是unsigned+unsigned可能出现位数不够情况,因此正确答案不能用two's compliment表达。

unsigned [3:0] + unsigned [3:0]

拓展一位补‘0’,再进行正常运算,结果的unsigned情况为正确答案,因为可能位数不够。如果做减法时,求补码,可直接当成signed运算,结果用two

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值