integer综合分析
来源:互联网 发布:知党规 行敬畏 编辑:程序博客网 时间:2024/04/30 08:39
大多数的矢量类型(reg或者net)都被默认当做无符号数。integer和real是个例外,它们被默认为当做有符号数。通常,real类型是不可综合的。
假设在没有溢出的情况下,不管是无符号数还是有符号数,它们都是二进制的一串数值而已;而当这个值被当做某种类型比较时:又符号数的MSB被用来表示这个数字的符号,而无符号数的MSB则是位权最高的那一位。无论采用什么样的二进制格式,一个无符号数永远也不能成为负值。
下面是一个和符号位有关的例子:
reg[31:0] A;
integer I;
...
A=-1;
I=-1;//both A and I hold 32'hffffffff
//
if(I>32'h0)
$display("I is positive.")
else$display("I is not positive");//Prints "I is not positive"
if(A>32'h0)
$display("A is positive");//Prints "A is positive"
else$display("I is not positive");
我用类似的方式在quartus II 中进行了仿真,但得到的结果都是A,这可以看出Q2在比较过程中将integer简单得看为无符号的数据,并没有像代码中所说的结果一样。但感觉书本中写的其实挺有道理的,难道是软件的不同,所以得到的结果不同?
先抛出这个问题吧,有机会下次再去验证一下。
更新部分:
上次验证没成功,今天已验证居然成功了,上次肯定是哪弄错了,现在把代码和图贴上:
module integer_reg(clk,negA,negI);
input clk;
wire[31:0]A;
integer I;
output reg negA;
output reg negI;
assign A=-3;
always @(posedge clk)
begin
I=-3;
if(A<0)
negA<=1;
else negA<=0;
if(I<0)
negI<=1;
else negI<=0;
end
endmodule
对于关系算符,综合会有不同的结果,这取决于被比较的是有符号还是无符号数,会综合出无符号关系算符,或又符合关系算符。
建议在能够使用reg的情况下尽量使用reg
- integer综合分析
- AJAX综合分析
- JSON综合分析
- 滴滴综合分析
- 四大主流浏览器综合分析
- 提供综合分析数据
- BW Extract Data 综合分析
- 明升综合分析
- Memset()函数综合分析
- 模糊综合分析程序
- 前端性能优化综合分析
- 深入浅出Signals综合分析
- 深入浅出线程综合分析 (一)
- webkit HTML5 WebSocket 综合分析 1
- webkit HTML5 WebSocket 综合分析 2
- 非平稳时间序列综合分析
- Integer
- Integer
- ImageLoader的各种格式DisplayImageOptions 的设置
- matlab ubuntu linux 出现 libGL error
- 适配android 7的自定义相机的预览及拍照
- 238. Product of Array Except Self
- Laravel学习:路由、视图、控制器工作流程(2)
- integer综合分析
- linux海量文件数量的发布
- sql中where和on的区别
- MySQL账号权限建议
- 集成腾讯随心播1.8.4代码流程分析
- php通过ssh2扩展控制linux,模拟阿里云web控制台
- SylixOS网卡驱动框架
- 商铺栏目
- Android 图片压缩总结