fpga减法运算
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fpga减法运算相关的知识,希望对你有一定的参考价值。
fpga做减法的时候,比如两个8位数相减。 在程序里面,写减法的时候。需要对输入数据进行最高位扩展。 最后的结果是一个9bit数据。
module sub8(a,b,c,clk);
input [7:0] a,b;
output[8:0] c;
input clk;
reg [8:0] c;
always @ ( posedge clk) begin
//c <= a - b;
c <= {a[7], a} - {b[7],b};
end
endmodule
测试模块
module sub8_tb;
reg [7:0] a,b;
wire[8:0] c;
reg clk;
initial begin
clk = 0;
a = 8‘d100;
b = 8‘d17;
#15 ;
a = 8‘d100;
b = -8‘d17;
#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减法运算的主要内容,如果未能解决你的问题,请参考以下文章