131 1300 0010
其他
当前位置: 首页>> 元件技术>>其他>>
  • 导航栏目
  • 二极管
  • 整流桥
  • MOS管
  • 其他
  • 基于FPGA的除法器纯逻辑设计案例
    基于FPGA的除法器纯逻辑设计案例
  • 基于FPGA的除法器纯逻辑设计案例
  •   发布日期: 2020-06-17  浏览次数: 1,008

    前边写了很多关于板上外围器件的评测文章,这篇是FPGA纯逻辑设计,是FPGA的另一部分——算法实现,上篇文章做了HDC1000传感器的使用,当时说FPGA是不支持小数的,本篇记述的是FPGA如何去做除法运算。很多人觉得不就是除法嘛,直接打上/即可,但是,FPGA是不能正确综合这个除法器的,综合的结果只是一个固定数值,而不像其他微处理器。可以这么说,用FPGA实现除法运算是比较麻烦的。

    用软件编程的时候,用到除法器的时候,一个/就能求商,一个%就能求余,很简单。但是,如果使用硬件来实现除法运算,就需要了解计算机存储结构,二进制的除法和平常使用的十进制除法是一样的,都是通过辗转相除的原理,

     

    基于FPGA的触发器纯逻辑设计

    原理如上所述,现在需要把这个原理转换成可实现的设计方案,从图可以看出,首先是将除数与被除数的最高3位做比较,如果除数(110)大于被除数(101),则将商赋值为0(最高位是0可以省略),被除数向右增加1位再进行比较;当被除数增加1位,除数(110)小于被除数(1010),则将商赋值为1,接着进行二进制减法运算,被除数(1010)减去除数(110),变成100;然后被除数向右再增加1位,变成1001,再与除数(110)比较,以此类推,最后输出结果。

    设计好代码,用Modelsim仿真验证,

    基于FPGA的触发器纯逻辑设计

    用$random产生随机数,实现效果如下:

    i_dividend为被除数,i_divisor为除数,o_quotient为商,o_remainder为余数(下同)。

    基于FPGA的触发器纯逻辑设计

    $random是不能综合的,所以,只能用其他的进行代替,被除数用一个计数器,除数用数字3,再进行Modelsim仿真验证:

    基于FPGA的触发器纯逻辑设计

    由2个图可知,除法器设计满足需求。

    进行板上调试,

    基于FPGA的触发器纯逻辑设计

    综合后的RTL图,

    基于FPGA的触发器纯逻辑设计

    Quartus ii软件查看结果,一切与预期一致,设计成功。

    总结:用FPGA实现除法器真麻烦!


  • ·上一篇:
    ·下一篇:
  • 其他关联资讯
    深圳市日月辰科技有限公司
    地址:深圳市宝安区松岗镇潭头第二工业城A区27栋3楼
    电话:0755-2955 6626
    传真:0755-2978 1585
    手机:131 1300 0010
    邮箱:hu@szryc.com

    深圳市日月辰科技有限公司 版权所有:Copyright©2010-2023 www.szryc.com 电话:13113000010 粤ICP备2021111333号