码迷,mamicode.com
首页 > 其他好文 > 详细

fpga减法运算

时间:2020-04-29 16:31:26      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:always   bit   pos   img   运算   code   sub   end   mamicode   

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减法运算

标签:always   bit   pos   img   运算   code   sub   end   mamicode   

原文地址:https://blog.51cto.com/14018328/2491538

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!