在FPGA中,我们怎么实现除法操作?最简单的方法当然是调IP Core。

FPGA中除法是怎么实现的?

  在Divider Generator的IP Core中,我们可以选择有/无符号数进行除法,还可以选择除法的延迟。当然,延迟越小,占用的资源就越多。

FPGA中除法是怎么实现的?
FPGA中除法是怎么实现的?

  虽然有IP可以直接调用,但我们还是要了解FPGA中除法的原理,手动来写一个除法器。

FPGA中除法原理

  两个32的无符号整数除法,被除数a除以除数b,他们的商和余数都不会超过32位。

  我们以4位的无符号数除法举例来说明,被除数a=0b1101,除数b=0b0010。

  • 令a’ = {4’b0, a}, b’ = {b, 4’b0};
  • 在每个时钟周期,将a’左移一位,末尾补0,然后与b’比较;若大于b’,则a’=a’-b’+1,否则继续比较;
  • 直到移位4次,此时a’的高4位即为余数,低4位即为商
FPGA中除法是怎么实现的?

个人网站:http://www.technomania.cn/

微信公众号:Quant_Times
      Reading_Times

相关文章: