FPGA定点小数计算(Verilog版)第三篇——除法运算(一)

转载 2018年04月17日 19:20:35

更多精彩内容,请微信搜索“FPGAer俱乐部”关注我们。

定点小数除法运算,相比加法和乘法来说要复杂很多了,但是算法的基本思想还是很简单的。和整数除法类似,算法的核心思想就是,将除法运算转换为移位和减法运算。从具体实现的角度来看,一般有两种方式:

  • 一种是除数不变,扩展并移位操作被除数

  • 另一种是被除数不变,扩展并移位操作除数

本文采用的是第一种方法:


假设被除数与除数都是八位数据,这里的算法是: 
将被除数,扩展成16位的数据,低8位为被除数的值,高八位的值全为0。有开始信号,对16位数据data赋值,然后开始运算。比较data的高八位和除数的值,如果大于0,说明被除数大,将此时商置1,赋值给data的最低位,然后将被除数高八位减去除数。然后将data向左移位一位,继续比较。最终计算8次后。Data的高8位数据就为所求的余数,低八位就为所求的商。 

原理说白了就是:先移位,在比较(作差),迭代八次……

重要说明:本算法只支持正数,整数除法,需提前指定被除数和除数位数,且除数和被除数位数需相等。(改进的算法会在后期和大家分享)


ChinaAET的代码语言功能太low,而且还不支持VerilogHDL,所以代码就直接贴图了:

下面是Testbench:

以及ActiveHDL的脚本文件:

仿真结果如下:

使用Synplify Pro综合并Map之后得到(Diamond中,MachXO3 6900C):

Design Summary

   Number of registers:     42 out of  7485 (1%)

      PFU registers:           42 out of  6864 (1%)

      PIO registers:            0 out of   621 (0%)

   Number of SLICEs:        32 out of  3432 (1%)

      SLICEs as Logic/ROM:     32 out of  3432 (1%)

      SLICEs as RAM:            0 out of  2574 (0%)

      SLICEs as Carry:         15 out of  3432 (0%)

   Number of LUT4s:         63 out of  6864 (1%)

      Number used as logic LUTs:         33

      Number used as distributed RAM:     0

      Number used as ripple logic:       30

      Number used as shift registers:     0

   Number of PIO sites used: 38 + 4(JTAG) out of 207 (20%)

   Number of block RAMs:  0 out of 26 (0%)

   Number of GSRs:  1 out of 1 (100%)


本文转载自:http://blog.chinaaet.com/justlxy/p/5100052068,如涉及侵权,请私信小编删除。

============华 丽 的 分 割 线============


想加入我们FPGA学习交流群吗?可以长按或扫描以下二维码,审核通过后我们邀请您加入

这些微信群旨在打造一个提供给FPGA工程开发人员及兴趣爱好者(统称“FPGAer”)进行技术交流、答疑解惑和学习的平台。而且我们也将会通过网络举办FPGA技术讲座,分享相关研究文献 



了解更多FPGA知识可以长按或扫描以下二维码关注FPGAer俱乐部


Verilog基础知识2(FPGA小数运算处理--定点小数)

需求说明:FPGA视频处理算法基本知识       第一部分:FPGA内部计算小数       第二部分:FPGA小数乘法       第三部分:我的整理及应用 第一部分:FPGA内...
  • Times_poem
  • Times_poem
  • 2016-05-26 10:31:05
  • 7297

fpga 定点小数计算

所谓定点小数,就是小数点的位置是固定的。我们是要用整数来表示定点小数,由于小数点的位置是固定的,所以就没有必要储存它(如果储存了小数点的位置,那就是浮点数了)。既然没有储存小数点的位置,那么计算机当然...
  • evilemon
  • evilemon
  • 2015-07-05 09:36:11
  • 1594

FPGA浮点小数与定点小数的换算及应用

定点小数运算 有些FPGA中是不能直接对浮点数进行操作的,只能采用定点数进行数值运算。 所谓定点小数就是把小数点的位置固定,我们要用整数来表示小数。 先以10进制为例。如果我们能够计算12+34...
  • github_33678609
  • github_33678609
  • 2016-12-05 15:15:19
  • 4406

FPGA对定点数的处理 作业

作业1 • 使用二进制表示数字,是计算机科学中最基本的问题之一。 • 使用FPGA进行数学运算,本质上就是要把数学模型、公式,映射成数字电路。 • 用FPGA实现定点数运算,对于设计...
  • balee11
  • balee11
  • 2017-03-21 11:49:26
  • 563

FPGA中浮点运算实现方法——定标

有些FPGA中是不能直接对浮点数进行操作的,只能采用定点数进行数值运算。对于FPGA而言,参与数学运算的书就是16位的整型数,但如果数学运算中出现小数怎么办呢?要知道,FPGA对小数是无能为力的,一种...
  • yuan1164345228
  • yuan1164345228
  • 2014-10-04 10:55:39
  • 6813

FPGA定点小数计算(Verilog版)第三篇——除法运算(二)

更多精彩内容,请微信搜索“FPGAer俱乐部”关注我们。 定点小数除法运算,相比加法和乘法来说要复杂很多了,但是算法的基本思想还是很简单的。和整数除法类似,算法的核心思想就是,将除法运算转换为移位和...
  • FPGAerClub
  • FPGAerClub
  • 2018-04-17 19:24:51
  • 3

深度学习FPGA实现基础知识20(FPGA小数运算--DSP基础“定点小数运算”)

需求说明:深度学习FPGA实现知识储备 来自:第一部分  DSP基础--定点小数运算           第二部分  dsp定点运算基本方法 整理来自:时间的诗 第...
  • Times_poem
  • Times_poem
  • 2016-06-14 10:27:33
  • 5038

浮点数转定点数Verilog

  • 2014年08月25日 10:40
  • 2KB
  • 下载

FPGA定点运算

1、定点小数运算 所谓定点小数,实际上就是用整数来进行小数运算。以16bit的存储单位最多可以表示0x0000到0xffff,65536种状态,如果表示无符号整数的话,就是从0到65535.如果需要表...
  • zdfmessi
  • zdfmessi
  • 2016-11-11 09:20:20
  • 932

FPGA求负数原码

转自:http://blog.csdn.net/u011746496/article/details/44761865
  • yundanfengqing_nuc
  • yundanfengqing_nuc
  • 2016-01-12 10:02:46
  • 598
收藏助手
不良信息举报
您举报文章:FPGA定点小数计算(Verilog版)第三篇——除法运算(一)
举报原因:
原因补充:

(最多只允许输入30个字)