Verilog HDL无符号数和有符号数

出处:woymoon 发布于:2007-04-29 10:14:09

执行算术操作和赋值时,注意哪些操作数为无符号数、哪些操作数为有符号数非常重要。无符号数存储在:
* 线网
* 一般寄存器
* 基数格式表示形式的整数
  有符号数存储在:
* 整数寄存器
* 十进制形式的整数
  下面是一些赋值语句的实例:

reg [0:5] Bar;
integer Tab;
. . .
Bar = -4'd12; //寄存器变量Bar的十进制数为52,向量值为110100
Tab = -4'd12; //整数Tab的十进制数为-12,位形式为110100。

-4'd12 / 4 //结果是1073741821。
-12 / 4 //结果是-3

  因为Bar是普通寄存器类型变量,只存储无符号数。右端表达式的值为'b110100(12的二进制补码)。因此在赋值后,Bar存储十进制值52。在第二个赋值中,右端表达式相同,值为'b110100,但此时被赋值为存储有符号数的整数寄存器。Tab存储十进制值-12(位向量为110100)。注意在两种情况下,位向量存储内容都相同;但是在种情况下,向量被解释为无符号数,而在第二种情况下,向量被解释为有符号数。
  下面为具体实例:

Bar = - 4'd12/4;
Tab = - 4'd12 /4;

Bar = - 12/4
Tab = - 12/4

  在次赋值中,Bar被赋于十进制值61(位向量为111101)。而在第二个赋值中,Tab被赋于与十进制1073741821(位值为0011...11101)。Bar在第三个赋值中赋于与个赋值相同的值。这是因为Bar只存储无符号数。在第四个赋值中,Bar被赋于十进制值-3。
  下面是另一些例子:

Bar = 4 - 6;
Tab = 4 - 6;
Bar被赋于十进制值62(-2的二进制补码),而Tab被赋于十进制值-2(位向量为111110)。

  下面为另一个实例:

Bar = -2 + (-4);
Tab = -2 + (-4);
Bar被赋于十进制值58(位向量为111010),而Tab被赋于十进制值-6(位向量为111010)。



  
关键词:Verilog HDL无符号数和有符号数

上一篇:按位操作符

下一篇:Verilog HDL操作数

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!