signed与unsigned的问题
2012-08-24 19:48
288 查看
以前知道有signed与unsigned的区别,但是很少有真正地碰到过,所以没有什么真正地了解。这次在coding的时候终于碰到,写下来以后好看。
错误的:
module abs(clk,a,b,c);
input clk;
input [7:0] a;
input [7:0] b;
output reg [7:0] c;
always@(posedge clk)
begin
if((a-b)< 0)
c <= b - a;
else if ((b-a)==0)
c <= 0;
else
c <= a - b;
end
endmodule
正确的:
module abs(clk,a,b,c);
input clk;
input signed [7:0] a;
input signed [7:0] b;
output reg signed [7:0] c;
always@(posedge clk)
begin
if((a-b)< 0)
c <= b - a;
else if ((b-a)==0)
c <= 0;
else
c <= a - b;
end
endmodule
其实主要的区别是:
Verilog的運算
Verilog所提供的運算分unsigned與signed兩種:
Unsigned:不含signed bit
以4 bit來說,值域從0000~1111,也就是0 ~ 15
Signed:含signed bit(MSB為signed bit,1為負,0為正,負數使用2補數表示)
以4 bit來說,值域從1000~0111,也就是-8 ~ +7
错误的:
module abs(clk,a,b,c);
input clk;
input [7:0] a;
input [7:0] b;
output reg [7:0] c;
always@(posedge clk)
begin
if((a-b)< 0)
c <= b - a;
else if ((b-a)==0)
c <= 0;
else
c <= a - b;
end
endmodule
正确的:
module abs(clk,a,b,c);
input clk;
input signed [7:0] a;
input signed [7:0] b;
output reg signed [7:0] c;
always@(posedge clk)
begin
if((a-b)< 0)
c <= b - a;
else if ((b-a)==0)
c <= 0;
else
c <= a - b;
end
endmodule
其实主要的区别是:
Verilog的運算
Verilog所提供的運算分unsigned與signed兩種:
Unsigned:不含signed bit
以4 bit來說,值域從0000~1111,也就是0 ~ 15
Signed:含signed bit(MSB為signed bit,1為負,0為正,負數使用2補數表示)
以4 bit來說,值域從1000~0111,也就是-8 ~ +7
相关文章推荐
- 关于unsigned与signed的转换问题
- signed和unsigned取值范围的问题
- 《C语言深度解剖》signed,unsigned关键字后面3个问题的理解
- C语言之unsigned、signed问题
- C51程序unsigned和signed类型数据判断时候需要注意的问题
- char, signed char,unsigned char, short int unsigned short int, int数据类型取值问题
- signed与unsigned的问题
- 11.读c语言深度剖析 -- auto register static sizeof signed、unsigned
- warning C4018: '<' : signed/unsigned mismatch 到底出了什么错?
- 解决“The executable was signed with invalid entitlements.”问题
- ios:The executable was signed with invalid entitlements新设备run出现这个问题
- char/unsigned char/signed char之间的区别
- unsigned 和 signed 混合运算总结
- signed与unsigned类型相加
- 返回值类型为unsigned long long的函数永远返回为0的问题解决
- the apk for your currently selected variant(app-release-unsigned.apk)is not signed.Please specity a
- C语言中,unsigned与signed类型转换
- 解决Generate Signed APK时出现XXX is not translated in XXX类似问题
- 不带signed或unsigned关键字的char型 无符号数? 有符号数? C标准规定为 Implementation Defined !!!
- char,short,int,long,unsigned,signed