比较和加法之间的差异

时间:2012-06-25 15:22:10

标签: fpga

加法(+)操作比比较操作(>)更复杂,无论是整数还是浮点运算?我很感激在微处理器和基于FPGA的系统的背景下回答。

我的想法: 当我们谈论基于微处理器的系统时,我认为比较和加法是相同的,因为比较a> b可以通过检查(a-b)的符号位,即加法运算来解决。但是,在基于FPGA的系统环境中,我猜可以降低比较运算符的复杂性?

2 个答案:

答案 0 :(得分:2)

理论上,比较可能更快,您只需要比较每个位,并且可以并行完成。 这种比较分两个阶段完成,一个比较所有比特,另一个比较检查一个比特是否打开。 (技术上(a0 ^ b0)|(a1 ^ b1)| ...(a ^ bn)。 所有ai ^ bi都可以同时完成。那应该是O(log(n))

但是,对于添加,您需要将进位从每个位传播到另一位,以便最终进入O(n)。

答案 1 :(得分:1)

比较对于整数来说有点“简单”,因为我们只需要比较从msb到lsb的每个位(没有进位,这是加法所需的)。就复杂性而言,两者都是O(log n)。

但我怀疑你能否真正衡量资源使用(逻辑片或功耗)方面的这种微小差异。