我是靠谱客的博主 土豪台灯,最近开发中收集的这篇文章主要介绍FPGA实现除法器(verilog)前言一、基于减法的除法器实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

Verilog语法中有“/”和“%”运算符,分别表示除法运算和取余运算,但是FPGA实现除法器时,是否可以直接使用这两个运算符呢?答案是否定的。
FGPA的综合工具中,对Verilog的除法指令进行编译时,有以下几种情况:
1、如果被除数和除数均为固定数,编译中,借助计算机的除法运算能力,直接将除法运算结果赋给变量;
2、如果除数是2的幂次方,编译中,直接通过运算截取被除数相应的位数赋给变量;
3、如果被除数、除数是任意变化的数,多数综合工具不能综合出令人满意的结果,有些甚至不能给予综合,即使可以综合,也会消耗比较多的资源。
对于第3中情况,往往需要使用相应的算法来实现除法,实现方法有两类,即基于减法的运算和基于乘法的运算;

一、基于减法的除法器实现

对于任意位宽的除法运算,商的位宽一定不会大于被除数的位宽,余数的位宽一定不会大于除数的位宽。

a、算法原理

假设4bit的两数相除 a/b,商和余数最多只有4位 (假设1101/0010也就是13除以2得6余1)

我们先自己做二进制除法,则首先看a的MSB,若比除数小则看前两位,大则减除数,然后看余数,以此类推直到最后看到LSB;而上述算法道理一样,a左移进前四位目的就在于从a本身的MSB开始看起,移4次则是看到LSB为止,期间若比除数大,则减去除数,注意减完以后正是此时所剩的余数。而商呢则加到了

最后

以上就是土豪台灯为你收集整理的FPGA实现除法器(verilog)前言一、基于减法的除法器实现的全部内容,希望文章能够帮你解决FPGA实现除法器(verilog)前言一、基于减法的除法器实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部