Verilog的有符号计数一般不像c语言那样定义有符号变量,而是自己定义就可以了。 因此,在FPGA世界中随心所欲地进行有符号运算,必须先熟悉补码,再注意用Verilog编程的一些特性,两者缺一不可。
补数初步认识:
1、正数补数与源代码相同,即正数补数是其本身。
2、负数的补数,反转其源代码(符号位除外)再加一个,得到其补数。
3、将负数的补码(符号位除外)反过来再加一个,就可以得到其源代码了。
4、正数补数定义为自身,无需以上操作。 (其实也可以理解为正数没有补数)
5、在“计算机”上保存数量时,以补数的形式保存。
以四位二进制为例。 最高位是那个符号位。
-7,负7源代码:1_111;
-7,负7补数:1_001;
现在有一个看法,帮助理解。 补码给计算机看,源代码给人看。
查看1(-2 )的计算方法,因为负数的语言都是以补数存储的,所以1 )-2的补数),以及
0_001 1_110=1_111; (最高为符号位) ),所以将1111及-1的补数) (负数的补数)反过来再加一次,即可得到其源代码)。
这表明“Verilog中的有符号计数一般由自己定义”。 那么,写Verilog的时候