打印

fpga减法运算

[复制链接]
590|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 [url=home.php?mod=space&uid=72445]@[/url] ( 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。 能够得到正确的结果。

(转载)

使用特权

评论回复

相关帖子

沙发
雷北城| | 2020-12-7 18:51 | 只看该作者
谢谢分享,学习了!

使用特权

评论回复
板凳
zhangmangui| | 2020-12-7 21:46 | 只看该作者
很多都是用IP核的

使用特权

评论回复
地板
00750| | 2020-12-9 08:53 | 只看该作者
不懂,学习

使用特权

评论回复
5
zlf1208| | 2020-12-9 12:14 | 只看该作者
减法是不是应该改为补码做加法?

使用特权

评论回复
6
hanjunma111| | 2020-12-13 13:12 | 只看该作者
大家好,我建了个fpga源码分享的群,群内经常分享免费fpga源代码下载,有兴趣的同学可以申请加入哈,群号:891268392 打扰见谅~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

42

帖子

0

粉丝