0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的除法器纯逻辑设计案例

姚小熊27 来源:电路城论坛 作者:yiqizhenshanhe 2020-06-17 10:17 次阅读

前边写了很多关于板上外围器件的评测文章,这篇是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实现除法器真麻烦!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21664

    浏览量

    601677
  • 除法器
    +关注

    关注

    2

    文章

    14

    浏览量

    13888
  • 逻辑设计
    +关注

    关注

    1

    文章

    41

    浏览量

    11567
收藏 人收藏

    评论

    相关推荐

    法器是时序逻辑电路吗

    法器不是时序逻辑电路 ,而是组合逻辑电路的一种。时序逻辑电路和组合逻辑电路的主要区别在于它们如何处理输出信号。 组合
    的头像 发表于 08-28 11:05 410次阅读

    具有10路解码输出的高速CMOS逻辑+进位计数器/除法器CD74HC4017-EP 数据表

    电子发烧友网站提供《具有10路解码输出的高速CMOS逻辑+进位计数器/除法器CD74HC4017-EP 数据表.pdf》资料免费下载
    发表于 05-28 09:47 0次下载
    具有10路解码输出的高速CMOS<b class='flag-5'>逻辑</b>+进位计数器/<b class='flag-5'>除法器</b>CD74HC4017-EP 数据表

    具有10个解码输出的高速CMOS逻辑十进位计数器/除法器CD74HC4017数据表

    电子发烧友网站提供《具有10个解码输出的高速CMOS逻辑十进位计数器/除法器CD74HC4017数据表.pdf》资料免费下载
    发表于 05-28 09:46 0次下载
    具有10个解码输出的高速CMOS<b class='flag-5'>逻辑</b>十进位计数器/<b class='flag-5'>除法器</b>CD74HC4017数据表

    FPGA学习笔记-关于FPGA资源

    在和别人讨教FPGA的知识时,初步得到的有关FPGA的印象是:通过程序或者其它设置,把集成在芯片中的各种逻辑电路组合起来使用。就像用CMOS、TTL门电路搭建处理逻辑更复杂的电路。带着
    发表于 05-22 18:27

    CMOS14级重复进位二进制计数器/除法器和振荡器CD4060B Types数据表

    电子发烧友网站提供《CMOS14级重复进位二进制计数器/除法器和振荡器CD4060B Types数据表.pdf》资料免费下载
    发表于 05-20 09:41 0次下载
    CMOS14级重复进位二进制计数器/<b class='flag-5'>除法器</b>和振荡器CD4060B Types数据表

    具有十个解码输出的十进位计数器/除法器数据表

    电子发烧友网站提供《具有十个解码输出的十进位计数器/除法器数据表.pdf》资料免费下载
    发表于 05-17 10:47 0次下载
    具有十个解码输出的十进位计数器/<b class='flag-5'>除法器</b>数据表

    具有10个解码输出的高速CMOS LogicDecade计数器/除法器CD54HC4017/CD74HC4017数据表

    电子发烧友网站提供《具有10个解码输出的高速CMOS LogicDecade计数器/除法器CD54HC4017/CD74HC4017数据表.pdf》资料免费下载
    发表于 05-17 10:42 0次下载
    具有10个解码输出的高速CMOS LogicDecade计数器/<b class='flag-5'>除法器</b>CD54HC4017/CD74HC4017数据表

    FPGA学习资料分享

    的学习资源Verilog 教程,数字逻辑设计 (点击文字进入链接). 具备一定硬件描述语言基础是发开FPGA通用的。此外就是根据厂家型号、环境和提供的资源,能有效使用组织起来,实现目标功能,这更倾向于实践应用。 大家有关于实践应用,由浅入深的资料,可以相互的学习交流,共同
    发表于 03-31 13:23

    fpga和数字ic区别 fpga和plc区别

    逻辑设计可以通过编程随时改变应用场景,模拟各种硬件的并行运算。而数字IC则更专注于传递、加工、处理数字信号,它是按照功能分类的集成电路的一种。 两者在功能和应用上也有所不同。FPGA设计更偏向于产品化,通过在产品上实现逻辑控制、
    的头像 发表于 03-14 18:08 2501次阅读

    fpga用的是什么编程语言 fpga用什么语言开发

    和VHDL都是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准。它们能形式化地抽象表示电路的结构和行为,支持逻辑设计中层次与领域的描述,具有电路仿真与验证机制以保证设计的正确性,并便于文档管理和设计重用。 fpga用什么语言
    的头像 发表于 03-14 17:09 3299次阅读

    fpga是干什么工作的

    FPGA(现场可编程门阵列)主要被用于进行逻辑设计、算法实现、功能定义以及时序优化等工作。具体来说,FPGA工程师的主要职责包括但不限于以下几个方面。
    的头像 发表于 03-14 17:09 1348次阅读

    基于VHDL的组合逻辑设计

    电子发烧友网站提供《基于VHDL的组合逻辑设计.ppt》资料免费下载
    发表于 03-11 09:23 2次下载

    数字电路与逻辑设计

    电子发烧友网站提供《数字电路与逻辑设计.ppt》资料免费下载
    发表于 03-11 09:21 4次下载

    如何设计一个16比特的减法器呢?

    减法电路是基本集成运放电路的一种,算术运算电路主要包括数字**加法器电路、数字减法器电路、数字乘法器电路和数字除法器电路。
    的头像 发表于 02-19 10:00 801次阅读
    如何设计一个16比特的减<b class='flag-5'>法器</b>呢?

    基于TouchGFX的智能手表设计 —MVP 架构下的逻辑设计

    电子发烧友网站提供《基于TouchGFX的智能手表设计 —MVP 架构下的逻辑设计.pdf》资料免费下载
    发表于 01-05 11:21 1次下载