细谈Verilog中$signed()和$unsigned()用法

$signed() & $unsigned()

之前在做Verilog,有符号数和无符号数运算时,对这俩个一直没弄的很透彻。本文就以比较简短的篇幅去捋一下其用法。

为了节省各位的时间,先上结论:

小结

  1. $signed()$unsigned() 本质是在做符号扩展
  2. Verilog中没有“有符号数”的概念,都是在做无符号运算
  3. Verilog * 在做无符号乘积

分析

简短的来解释一下

//定义四个 6 位数 和 俩个 4位数
logic [3:0]  x, y;
logic [5:0] x_sign, y_sign;
logic [5:0] x_unsign, y_unsign;

assign x = 4'b1100;
assign y = 4'b0100;
assign x_sign = $signed(x); // x_sign = 6'b11_1100
assign y_sign = $signed(y); // y_sign = 6'b00_0100

assign x_unsign = $unsigned(x); // x_sign = 6'b00_1100
assign y_unsign = $unsigned(y); // y_sign = 6'b00_0100

//拿一个有符号数乘一个无符号数
logic [11:0] pum;
assign pum = $signed(x_sign * y_unsign);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃人的坤坤坤坤坤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值