1.    除法器原理(补码除法运算)

被除数和除数都用补码表示,符号位参加运算,商和余数也用补码表示。

Booth除法需要考虑以下问题:

1. 够减的判断:

当两数同号时,实际应做减法;两数异号时,实际应做加法。

2. 上商规则:

3. 商符的确定:

商符是在求商的过程中自然形成的,第一次得出的商就是实际应得的商符

4. 求新部分余数:

5.末位恒置1

2.   设计思想

程序首先进行判0操作,如果被除数数中为0时,则直接输出结果0,否则进入程序主体。程序主体分成三个模块进行,首先判断第一次应该做加法还是减法,然后计算部分余数和商符;然后进入循环,左移部分余数和商,判断商和加数,依次按算法执行;最后末位置1。

3.   程序设计

module Division(Dx,Dy,Dout,Dre);//补码一位除法(Booth除法)

input [5:0]Dx,Dy;//定义六位数输入,其中前两位为符号位

output reg [4:0]Dout;//定义5位数输出,商

output reg [5:0]Dre;//定义六位数输出,余数

reg [5:0] HDre;//HDre寄存器存放部分余数

reg [5:0] IDy;//IDy寄存器存放 【-除数】补码

reg [3:0] n;//n作为临时变量,用来存放循环次数

always @ (Dx,Dy)

begin

if(Dx==0)//被除数为零

begin

Dout=0;

Dre=0;

end

else

begin

Dout=5'b00000;

Dre=6'b000000;

HDre=6'b000000;

IDy=~Dy+1;

n=4'b1111;

if(Dx[5]==Dy[5])//X补 与 Y补 同号

begin

HDre=Dx+IDy;//加 -Y补

Dout[0]=0;

end

else

begin

HDre=Dx+Dy;//加 Y补

Dout[0]=1;

end

while(n)

begin

HDre=HDre<<1;

Dout=Dout<<1;

begin

if(Dout[1]==1)//商1时加 -Y补

HDre=HDre+IDy;

else//商0时加 Y补

HDre=HDre+Dy;

end

begin

if(Dy[5]==HDre[5])//ri补 与 Y补 同号

Dout[0]=1;//商1

else

Dout[0]=0;

end

n=n>>1;//循环次数减1

end

Dout[0]=1;//末位恒置1(虽然在上面的循环中已将末位置数,但那不是准确的)

Dre=HDre;

end

end

endmodule

4.   设计验证

例:已知X=0.1000,Y=-0.1010,求X/Y:

1.  两数用补码表示  X补=00.1000  Y补=11.0110  -Y补=00.1010

2.  设置输入为001000和110110

3.  仿真得结果为111110和10011,即 商:1.0011  余数:11.1110

4.  最终:[X/Y]补=1.0011+(1.1110*2^(-4)/1.0110)  [X/Y]=……

php编写除法器程序,Booth除法器设计相关推荐

  1. java shape 空间操作类_设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状rdquo...

    问题标题 设计三个类:几何形状类(Shape).圆类(Circle).矩形类(.,请编写 Java程序,设计一个"形状&rdquo 2019-5-10来自ip:17.175.174. ...

  2. 现要为某一个销售部门编写一个程序管理约100种商品。要求设计一个结构体类型来描述商品,每种商品包括商品编号(如A001)、商品名称、商品销售量和商品销售额等信息,并编写以下函数···········

    原题:现要为某一个销售部门编写一个程序管理约100种商品.要求设计一个结构体类型来描述商品,每种商品包括商品编号(如A001).商品名称.商品销售量和商品销售额等信息,并编写以下函数: 1.编写一个函 ...

  3. 基于FPGA的除法器原理介绍及设计实现

    基于FPGA的除法器原理介绍及设计实现 引言应用 在FPGA的设计应用领域里,许多电路需要用到除法器,而在硬件描述语言里却没有直接的除法器"%","/"可以直接 ...

  4. HHVM是一个开源虚拟机,专为执行用Hack和PHP编写的程序而设计

    HHVM 什么是HHVM? HHVM是一个开源虚拟机,专为执行用Hack和PHP编写的程序而设计.HHVM使用即时(JIT)编译方法来实现卓越的性能,同时保持PHP提供的开发灵活性. HHVM支持Ha ...

  5. 1278: 实现计算器基本功能(1级)编写程序分模块设计实现计算器的基本运算功能(加减乘除,除数默认不为0)。

    1278: 实现计算器基本功能(1级) 时间限制: 1 Sec 内存限制: 128 MB 提交: 78 解决: 51 [提交] [状态] [讨论版] [命题人:admin] 题目描述 编写程序分模块设 ...

  6. C语言程序设计—循环设计 编写一个程序打印如下对称图形(行数由键盘输入1-9范围的值),例如下面是输入数字4时的情形:

    编写一个程序打印如下对称图形(行数由键盘输入1-9范围的值),例如下面是输入数字4时的情形: 首先提示输入:"Enter n(1-9):\n" 输入格式:"%d" ...

  7. python编写程序-30分钟学会用Python编写简单程序

    参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方式修改它们. 了解构成有效Python标识符和表 ...

  8. c语言做小学生测验程序,[转载]程序设计方法学课程设计--小学生算术四则运算测试程序(C)...

    背景 伴随着人类社会的进步,人们的计算工具也在不断的变化,从远古时期的结绳计数,到算筹,算盘,以及近代的机械计算机.计算尺,直至今天我们广泛运用的电子计算机.计算工具的每一次进步,都导致科学技术发生深 ...

  9. 如何在Hadoop上编写MapReduce程序

    1. 概述 1970年,IBM的研究员E.F.Codd博士在刊物<Communication of the ACM>上发表了一篇名为"A Relational Model of ...

最新文章

  1. APP:分享六款非常实用的冷门APP软件,值得一试!
  2. Angular实现dialog对话框封装
  3. QTP连接sqlserver
  4. 仿微信打飞机小游戏GamePlane(1)----概述
  5. 一个月空余时间微信诗词小程序前后端开发上线实践指南
  6. 计算机微信开发中期检查表,中期检查表范例
  7. 计算机键盘基础知识课件,高中信息技术计算机基础应用课件:键盘操作练习
  8. linux下使用wakeonlan远程唤醒报错:Network is unreachable at /usr/bin/wakeonlan line 126.
  9. 病毒分析 - 特征码提取
  10. 对结构体数组进行冒泡排序(根据名字大小)
  11. 每日一例,练就编程高手
  12. 结构光、双目、ToF——三种3D技术对比
  13. Mysql coalesce()函数认识和用法
  14. Educational Codeforces Round 95 (Rated for Div. 2)D. Trash Problem(权值线段树+离散化)
  15. html添加用户与删除吗,HTML页面元素的添加与删除
  16. phpddos应对 最近新起一种udp flood的攻击形式
  17. Thinkpad仅关闭-开启触摸板
  18. Elastic 武汉 Meetup- 11月13日 13:30
  19. 拼多多如何提高大促报名通过率?
  20. MYSQL数据库原理与应用-个人总结(上)

热门文章

  1. 【unity shader】基于UGUI字体的outline优化
  2. 2.25嵌入式设计(总结)
  3. BS架构和CS架构的比对
  4. css3中nth-child()的用法
  5. yolov3执行reval_voc_py3文件过程出现的错误记录及解决
  6. c语言e怎么表示_如何一个月学完c语言
  7. 项目笔记---秒杀商城
  8. 【媒体】百格活动钱东辉:一站式活动管理平台,不一样的SaaS之路
  9. 项目实战:Qt+Android模拟操作器(模拟操作app,打开,点击,输入,获取验证码等等)
  10. 不成熟的男人的爱情观——知乎上另一个关于不成熟男人的见解