Verilog HDL语言中如果是有符号数怎么定义啊?Parameters定义的数是不是都是无符号数?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 17:58:29
Verilog HDL语言中如果是有符号数怎么定义啊?Parameters定义的数是不是都是无符号数?
xTnA˗H/b_r!rw$;'/0lj!90`93!Rr]z]lۉ~Wod+:p}WyǫIѹ=afIȟlݎn|ۉӚRYi]P[ѕ' ?B[LSpBA,sMGl [$NN^^WuWi0Х*!ȥxؙŵI4ߊ) ֡gyxP0m`_^ H>omVA^YM3Mxwy&i̍1ŁWuywm~=^NE%8{̫^l>,2B.CpzӘJFI!Q-4ȒY7M0PnkCHf mN@ Fwك~̐i^zEU:+/]]

Verilog HDL语言中如果是有符号数怎么定义啊?Parameters定义的数是不是都是无符号数?
Verilog HDL语言中如果是有符号数怎么定义啊?Parameters定义的数是不是都是无符号数?

Verilog HDL语言中如果是有符号数怎么定义啊?Parameters定义的数是不是都是无符号数?
自己的程序自己决定如何表示,可以补码,可以源码,通过最高位判断符号.同样的道理,parameters定义的数是不是符号数,就看它是不是符合你对符号数的定义了.
如果你8位数表示-2,可以这样表示
8'h10000010或者8'h11111110
这两种表示方法都可以,但是有一点需要注意,当运算的时候要保证运算结果也是这种形式,并且要正确.如果是第一种表示形式的话-2+(-2),结果仍然8位的话就错了,变成了+4,所以需要进行最高位补偿.但是用补码进行加减运算就不会出错,也不需要补偿,所以建议用第二种表示方法.
现在假设用第二种表示方法来表示有符号数了.那么如果你用parameter这么定义
补充一点:补码表示的时,乘法运算不能直接用"*"来运算,这时或者将补码表示为原码后乘法,然后再将结果转化为补码.或者直接设计一个补码乘法器,用它来完成补码的乘法.
parameter f=8'h11111110
则此时的f表示的便是-2,所以parameter定义的数是有符号数还是无符号数,看你如何表示.