1)以前的筆記寫過《補碼探討》,可知在FPGA綜合成電路的時候最底層都是以補碼的形式在運算,正數的補碼就是自己,負數的補碼要取反+1。編程
(2)那麼Verilog中編程的時候對編程人員來講,其實想不到如今的編譯器(Quartus II 9.1和ISE10.1沒有問題,更高的版本應該更加能夠了)都支持verilog有符號運算的綜合了。在定義時直接加上signed便可,以下:spa
input signed [7:0] a, b;
output signed [15:0] c;
wire signed [15:0] x;blog
reg signed [15:0]y;開發
很明顯,這種採用signed定義的狀況,能夠避免手動轉換帶來的麻煩,同時能夠節省不少開發時間input
(3)當使用移位運算「>>」進行1/2倍運算時,需注意:編譯器