fpga減法運算

fpga作減法的時候,好比兩個8位數相減。 在程序裏面,寫減法的時候。
須要對輸入數據進行最高位擴展。 最後的結果是一個9bit數據。ide

module sub8(a,b,c,clk);測試

input [7:0] a,b;
output[8:0] c;
input clk;blog

reg [8:0] c;
always @ ( posedge clk) begin
//c <= a - b;
c <= {a[7], a} - {b[7],b};
endinput

endmoduleit

測試模塊class

module sub8_tb;test

reg [7:0] a,b;
wire[8:0] c;
reg clk;module

initial begin
clk = 0;
a = 8'd100;
b = 8'd17;擴展

#15 ;
a = 8'd100;
b = -8'd17;sed

#15 ;
a = -8'd100;
b = 8'd17;

#15 ;
a = -8'd100;
b = -8'd17;

// test overflow
#15;
a = 8'd100; // res should be 132.
b = -8'd32;

#15;
a = -8'd100; // res should be -132.
b = 8'd32;

#20;
$stop;
end
sub8 m0(a,b,c,clk);
always #5 clk = ~clk;

endmodule

截圖以下,發現100 和-32作減法,獲得132。 一樣-100和32作減法也獲得了-132。 可以獲得正確的結果。
fpga減法運算

相關文章
相關標籤/搜索