请问FPGA可以直接进行减法运算吗?如果结果是负数,再和别的数进行相加或相乘,还能得到正确的结果吗

[复制链接]
查看11 | 回复4 | 2011-9-16 10:34:22 | 显示全部楼层 |阅读模式
可以直接加减运算,如果是负数,则是以补码方式进行操作的,相乘运算时一定要注意位数,防止溢出。如果资源利用比较好的话,建议先看看你用的芯片的乘法器是怎么构造的,比如DSP48A1,要做乘法需要按照它的时序进行相乘。...
回复

使用道具 举报

千问 | 2011-9-16 10:34:22 | 显示全部楼层
可以的,定义成有符号数进行运算...
回复

使用道具 举报

千问 | 2011-9-16 10:34:22 | 显示全部楼层
得到的结果当然是错误的,但FPGA可以直接进行加法和减法,但要注意溢出和反位比如说reg [7:0] b;assign b = 3 -4;这时b不等于-1;而等于255;reg [7:0] b;assign b = 255 + 10;这时b不等于265,而等于10;其实这些问题可以用modelsim仿真一下就知道结果,不需...
回复

使用道具 举报

千问 | 2011-9-16 10:34:22 | 显示全部楼层
在FPGA设计中一般采用补码(你可以参考百度知道),加减可以直接运算;运算时数据会扩展一位用于产生符号位;举例说明吧:若输入为有符号数:reg [5:0]A,B;//最高位为符号位reg [6:0] C,D;//最高位为符号位always@(posedge clk) begin C<={A[5],A}+{B[5],B};D<=...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行