关于FPGA中有符号数表示方法的一些认识
有符号数的2进制表示方法是:最高位表示符号位,‘1’表示负数,‘0’表示正数。
通常负数以补码的形式出现。例如一个4bit数,首先它能够表示的有符号数的范围从-8~7。-8的二进制补码值为4'b1000,-7的二进制补码值为4'b1001...,正数的二进制补码等于它本身,即2的二进制补码值为4'b0010。
关于有符号数的Verilog写法如下:
reg signed [3:0] rega;
reg signed [3:0] regb;
rega = -4'd6;//写法1
regb = 4'shA;//写法2,A即1010,1010为-6的补码值。
上面的代码,定义了一个4bit位宽的reg变量。仿真一下就可以看到,两种写法用有符号10进制表示,都是-6。