四位二进制除法器 - 吴达斌
EDA四位二进制除法器设计报告
沈阳航空航天大学课程设计(说明书)4位二进制除法器的设计班级 / 学号学生姓名指导教师常丽东沈阳航空航天大学课程名称数字逻辑课程设计院(系)计算机学院专业计算机科学与技术班级学号姓名课程设计题目4位二进制除法器的设计课程设计时间: 2011 年07 月11 日至2011 年07 月24 日课程设计的内容及要求:一、设计说明设计一个4位二进制除法器,可以存贮其商和余数。
电路原理框图如图1所示。
除法器可以利用减法器和寄存器实现。
图1 乘法器原理框图寄存器A、B、C及R分别存放被除数、除数、商及余数。
比较器用来判断“余数”和除数的大小,即比较R寄存器和B寄存器的内容来确定商,用S2表示判断的结果,R≥B,S2=1;R<B,S2=0。
计数器P用来累计运行次数,当P=4时,除法结束。
二、技术指标1.设计4位二进制除法器。
输入数据:被除数X(0000~1111);除数Y(0001~1111)。
输入命令:启动信号S1,高有效。
输出数据:商数C(0000~1111),余数R(R<Y)2.存贮其商和余数。
三、设计要求1.在选择器件时,应考虑成本。
2.根据技术指标通过分析计算确定电路形式和元器件参数。
3.主要器件:(1)74LS74双D触发器;(2)74LS194双向移位的寄存器;(3)74LS283加法器;(4)74LS163计数器;(5)74LS00、74LS04等门电路。
四、实验要求1.根据技术指标制定实验方案;验证所设计的电路。
2.进行实验数据处理和分析。
五、推荐参考资料1.谢自美. 电子线路设计·实验·测试. [M]武汉:华中理工大学出版社,2000年2.阎石. 数字电子技术基础. [M]北京:高等教育出版社,2006年3.付家才. 电子实验与实践. [M]北京:高等教育出版社,2004年六、按照要求撰写课程设计报告指导教师年月日负责教师年月日学生签字年月日成绩评定表一、设计概述要求设计一个四位二进制除法器,要求被除数的最大值位1111,最小值为0000。
4位同步二进制加法计数器计数最大值
4位同步二进制加法计数器是一种常见的数字电路,用于实现二进制计数。
它可以将二进制数字表示为电信号,并且在每次输入脉冲时进行递增。
下面将详细介绍4位同步二进制加法计数器及其计数的最大值。
一、4位同步二进制加法计数器的原理1. 4位同步二进制加法计数器由4个触发器组成,每个触发器对应一个二进制位。
当输入一个脉冲时,每个触发器根据前一位的状态以及输入脉冲的信号进行状态转换。
这样就实现了二进制数的递增。
2. 触发器之间通过门电路连接,用于控制触发器状态的变化。
这些门电路可以根据具体的设计选择不同的逻辑门,常见的有AND门、OR 门、NOT门等。
3. 4位同步二进制加法计数器是同步计数器,即所有触发器同时接收输入脉冲,确保计数的同步性。
二、4位同步二进制加法计数器的计数最大值1. 4位二进制数的表示范围是0~15,因此4位同步二进制加法计数器的计数最大值为15。
2. 在计数到15后,再输入一个脉冲,计数器将重新从0开始计数,即实现了循环计数。
三、4位同步二进制加法计数器的应用1. 4位同步二进制加法计数器常用于数字电子钟、信号发生器等数字电路中,用于实现计数和定时功能。
2. 它还可以作为其他数字电路的组成部分,用于构建更复杂的逻辑功能。
3. 在数字系统中,计数器是十分重要的组件,它能够实现数字信号的计数和控制,广泛应用于各种数字系统中。
4位同步二进制加法计数器是一种重要的数字电路,通过它可以实现对二进制数的递增计数。
其计数的最大值为15,应用领域广泛。
希望本文内容能够对读者有所启发。
四、4位同步二进制加法计数器的工作原理4位同步二进制加法计数器是一种晶体管数字集成电路,它利用触发器和逻辑门等基本元件构成,能够实现二进制数字的加法计数。
在4位同步二进制加法计数器中,每个触发器代表一个二进制位,通过输入脉冲的控制,能够实现对二进制数的递增计数。
具体来说,当输入一个脉冲信号时,4位同步二进制加法计数器会根据触发器之间的连线和逻辑门的作用,根据之前的状态和输入脉冲的信号进行状态转换,从而实现二进制数的递增。
四位单片机 二进制减法和十进制减法
四位单片机二进制减法和十进制减法下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!四位单片机:二进制减法与十进制减法引言在现代科技领域,单片机技术的应用越来越广泛。
四位二进制加法器课程分析研究报告[1]
四位二进制加法器课程分析研究报告[1]————————————————————————————————作者:————————————————————————————————日期:课题名称与技术要求课题名称:四位二进制加法器设计技术要求:1)四位二进制加数与被加数输入2)二位数码管显示摘要本设计通过八个开关将A3,A2,A1,A0和B3,B2,B1,B0信号作为加数和被加数输入四位串行进位加法器相加,将输出信号S3,S2,S1,S0和向高位的进位C3通过译码器Ⅰ译码,再将输出的Y3,Y2,Y1,Y0和X3,X2,X1,X0各自分别通过一个74LS247译码器,最后分别通过数码管BS204实现二位显示。
本设计中译码器Ⅰ由两部分组成,包括五位二进制译码器和八位二进制输出器。
信号S3,S2,S1,S0和向高位的进位C3输入五位二进制-脉冲产生器,将得到的n(五位二进制数码对应的十进制数)个脉冲信号输入八位二进制输出器,使电路的后续部分得以执行。
总体论证方案与选择设计思路:两个四位二进制数的输入可用八个开关实现,这两个二进制数经全加器求和后最多可以是五位二进制数。
本题又要求用两个数码管分别显示求和结果的十进制十位和各位,因此需要两个译码器Ⅱ分别译码十位和个位。
综上所述,需要设计一个译码器Ⅰ,能将求和得到的五位二进制数译成八位,其中四位表示这个五位二进制数对应十进制数的十位,另四位表示个位。
而译码器Ⅱ有现成的芯片可选用,此处可选74LS247,故设计重点就在译码器Ⅰ。
加法器选择全加器:能对两个1位二进制数进行相加并考虑低位来的进位,即相当于3个1位二进制数相加,求得和及进位的逻辑电路称为全加器。
或:不仅考虑两个一位二进制数相加,而且还考虑来自低位进位数相加的运算电路,称为全加器。
1)串行进位加法器构成:把n位全加器串联起来,低位全加器的进位输出连接到相邻的高位全加器的进位输入。
优点:电路比较简单。
最大缺点:进位信号是由低位向高位逐级传递的,运算速度慢。
4位二进制全加器的设计
4位⼆进制全加器的设计4位⼆进制全加器的设计摘要加法器是产⽣数的和的装置。
加数和被加数为输⼊,和数与进位为输出的装置为半加器。
若加数、被加数与低位的进位数为输⼊,⽽和数与进位为输出则为全加器。
常⽤作计算机算术逻辑部件,执⾏逻辑操作、移位与指令调⽤。
在电⼦学中,加法器是⼀种数位电路,其可进⾏数字的加法计算。
在现代的电脑中,加法器存在于算术逻辑单元(ALU)之中。
加法器可以⽤来表⽰各种数值,如:BCD、加三码,主要的加法器是以⼆进制作运算。
多位加法器的构成有两种⽅式:并⾏进位和串⾏进位⽅式。
并⾏进位加法器设有并⾏进位产⽣逻辑,运⾏速度快;串⾏进位⽅式是将全加器级联构成多位加法器。
通常,并⾏加法器⽐串⾏加法器的资源占⽤差距也会越来越⼤。
我们采⽤4位⼆进制并⾏加法器作为折中选择,所选加法器为4位⼆进制先⾏进位的74LS283,它从C0到C4输出的传输延迟很短,只⽤了⼏级逻辑来形成和及进位输出,由其构成4位⼆进制全加器,并⽤Verilog HDL进⾏仿真。
关键字全加器,四位⼆进制,迭代电路,并⾏进位,74LS283,Verilog HDL仿真总电路设计⼀、硬件电路的设计该4位⼆进制全加器以74LS283(图1)为核⼼,采⽤先⾏进位⽅式,极⼤地提⾼了电路运⾏速度,下⾯是对4位全加器电路设计的具体分析。
图11)全加器(full-adder )全加器是⼀种由被加数、加数和来⾃低位的进位数三者相加的运算器。
基本功能是实现⼆进制加法。
全加器的功能表输⼊输出输⼊输出逻辑表达式:CI B A S ⊕⊕==AB'CI'+A'BCI'+A'B'CI+ABCI()AB CI B A CO ++=其中,如果输⼊有奇数个1,则S 为1;如果输⼊有2个或2个以上的1,则CO=1。
实现全加器等式的门级电路图如图2所⽰,逻辑符号如图3所⽰.图2 图32)四位⼆级制加法器 a) 串⾏进位加法器四位⼆进制加法器为4个全加器的级联,每个处理⼀位。
四位二进制除法器说明书
目录一、设计目的 (1)二、设计要求 (1)三、设计内容 (1)3.1、除法的实现 (1)3.2、设计框图 (1)3.3、功能说明 (1)3.4、VHDL程序源代码 (2)3.5、VHDL程序说明 (3)四、原理图和印刷板图 (4)PCB板图 (4)Protel 原理图 (5)五、设计结论 (6)六、设计心得体会 (6)七、主要参考文献 (7)一、设计目的1.掌握电子电路的一般设计方法和设计流程;2.学习使用PROTEL软件绘制电路原理图及印刷板图。
二、设计要求设计一个四位二进制除法器,具体要求如下:1. 用键盘输入两个四位二进制数,并用数码管显示输入数。
2.按除法键即显示相除结果。
3. 除数为零时,数码管黑屏,不显示任何内容。
三、设计内容1、设计过程要想实现四位二进制除法器,必须首先实现除法的功能。
除法实现的方案可以用VHDL语言实现。
整个四位二进制除法器包括:输入电路,判断电路,除法电路,译码电路和显示电路。
这些电路可以分别进行设计。
2、设计框图3.各个模块的功能说明●整个四位二进制除法器的实现可以分为以下5个部分:●输入电路:输入两个4位2进制数A和B。
它是通过连着高电平的8个开关来实现的。
●判断电路:判断B是否为0。
它是通过1个5输入同或门实现的。
如果B为0,输出端输出高电平,使能端除法器不工作,显示器黑屏。
●除法电路:由VHDL语言实现的。
它实现两个4位2进制数相除,并输出商y和余数r.●译码电路:由VHDL语言实现的。
它实现两个4位2进制数相除,并输出商y和余数r.●显示电路:将译码器译成的数用数码管显示出来。
4.VHDL程序源代码除法源代码1.Library ieee;2.Use ieee.std_logic_1164.all;3.Entity divider is4.Generic (n: integer :=3);5.Port( a, b : in integer range 0 to 15;6.y:out std_logic_vector ( 3 downto 0);7.rest:out integer range 0 to 15;8.err:out std_logic);9.End divider ;10.Architecture rtl of divider is11.Begin12.Process (a,b)13.Variable temp1:integer range 0 to 15;14.Variable temp2:integer range 0 to 15;15.Begin16.temp1:=a;17.temp2:=b;18.if(b=0)then err <=’1’;19.Else err<=’0’;20.End if;21.For I in n downto 0 loop22.If (temp1>=temp2*2**i) then23.y(i) <=‘1’;24.temp1:=temp1-temp2*2**i;25.Else y(i)<= ‘0’;26.End if;27.End loop;28.Rest <=temp1;29.End process;30.End rtl;5.VHDL程序说明假设要计算Y=A/B,其中 A 和 B 有相同的位数4位。
四位二进制数除法器
一、设计目的1.掌握电子电路的一般设计方法和设计流程;2.学习使用PROTEL软件绘制电路原理图及印刷板图;3.掌握应用EWB对所设计的电路进行仿真,通过仿真结果验证设计的正确性。
二、设计要求设计一个四位二进制除法器,具体要求如下:1. 用键盘输入两个四位二进制数,并用数码管显示输入数。
2.按除法键即显示相除结果。
3. 除数为零时,数码管黑屏,不显示任何内容。
三、设计内容1.分析笔算除法以小数为例,设 x=-0.1011,y=0.1101,求x/y笔算除法时,商的符号心算而得:负正得负;其数值部分的运算如下面竖式。
所以商x/y=0.1101,余数=-0.00000111其特点可归纳如下:①每次上商都是由心算来比较余数(被除数)和除数的大小,确定商为1还是0。
②每做一次减法,总是保持余数不动,低位补0,再减去右移后的除数。
③商符单独处理。
如果将上述规则完全照搬到计算机内,实现起来有一定困难,主要问题是:a.机器不能“心算”上商,必须通过比较被除数(或余数)和除数绝对值的大小来确定商值,即|x|-|y|,若差为正(够减)上商1,差为负(不够减)上商0。
b.按照每次减法总是保持余数不动低位补0,再减去右移后的除数这一规则,则要求加法器的位数必须为除数的两倍。
仔细分析发现,右移除数可以用左移余数的办法代替,其运算结果是一样的,但对线路结构更有利。
不过此刻所得到的余数不是真正的余数,只有将它乘上2-n才是真正的余数。
c.笔算求商时是从高位向低位逐位求的,而要求机器把每位商直接写到寄存器的不同位也是不可取的。
计算机可将每一位商直接写到寄存器的最低位,并把原来的部分商左移一位。
综上所述便可得原码除法运算规则。
2.原码除法:原码除法和原码乘法一样,符号位是单独处理的。
以小数为例:设式中为x的绝对值,记作x*为y的绝对值,记作y*即商符由两数符号位“异或”运算求得,商值由两数绝对值相除(x*/y*)求得。
小数定点除法对被除数和除数有一定的约束,即必须满足下列条件:0<|被除数|≤|除数|实现除法运算时,还应避免除数为0或被除数为0。
4位二进制加法器课程设计
长安大学电工与电子技术课程设计题目:4位二进制加法器学院:汽车学院专业:汽车运用工程班级:姓名:学号:指导老师:李三财目录一、课题名称与技术要求···························二、摘要·········································三、总体设计方案论证及选择·······················1、方案论证与选择······························2、加法器的选取································3、译码器的选取································4、数码管的选取································四、设计方案的原理框图、总体电路原理图及说明·····1、原理框图····································2、总体电路原理图······························3、说明········································五、单元电路设计、主要元器件选择及电路参数计算···1、单元电路设计································2、主要元器件选择······························六、收获与体会及存在的问题·······················七、参考文献·····································八、附件·········································一、课题名称及技术要求1、课题名称:四位二进制加法器2、技术要求:a、四位二进制加数与被加数输入b、二位数码管显示二、摘要本加法器要实现能够输入加数和被加数,并且还能够将最终结果用二位数码管显示出来的功能。
四位自然二进制数排列的是格雷码
一、概述二进制数是计算机领域中非常重要的概念,它由0和1组成,可以表示各种数据和指令。
在二进制数中,格雷码是一种特殊的排列方式,它是一种不同于传统二进制排列的数列,相邻的两个数只有一位二进制数字不同。
格雷码在数字逻辑电路、通信系统和编码理论中有广泛的应用。
本文将围绕四位自然二进制数排列的格雷码展开讨论。
二、什么是自然二进制数和格雷码1. 自然二进制数自然二进制数是以2为基数的数,由0和1组成,例如:0、1、10、11、100、101等。
在自然二进制数中,相邻两个数之间只有一位二进制数字不同。
2. 格雷码格雷码又叫反射码,是一种特殊的二进制排列方式。
在格雷码中,相邻的两个数之间只有一位二进制数字不同。
例如:000、001、011、010、110、111、101、100就是一个四位自然二进制数排列的格雷码。
三、四位自然二进制数排列的格雷码的生成方法1. 格雷码的递推生成方法格雷码的递推生成方法是利用二进制数与自身右移一位的异或运算产生的。
假设要生成n位自然二进制数排列的格雷码,首先生成n-1位自然二进制数排列的格雷码,然后把每个数前面加上0或1,其中一半数的前面加上0,另一半数的前面加上1,即可生成n位自然二进制数排列的格雷码。
2. 四位自然二进制数排列的格雷码的生成过程假设要生成四位自然二进制数排列的格雷码,首先生成三位自然二进制数排列的格雷码,即000、001、011、010、110、111、101、100。
然后在每个数的前面一半加上0,另一半加上1,就得到了四位自然二进制数排列的格雷码:0000、0001、0011、0010、0110、0111、0101、0100、1100、1101、1111、1110、1010、1011、1001、1000。
四、四位自然二进制数排列的格雷码的应用四位自然二进制数排列的格雷码在数字逻辑电路中的应用是非常广泛的。
例如在计数器中,使用格雷码可以解决由于二进制传统排列导致的数值抖动问题。
四位二进制除法器
四位二进制除法器设计李道通14110827581、设计方法采用移位相减法设计二进制除法器:被除数和除数都是二进制数,采用将除数移位的方法。
1)判断除数是否零:如果除数为零,返回等待;2)除数不为零时,C左移一位,将被除数A的最高位赋值给C的最低位,A左移一位,将最低位赋值为零;3)判断C和除数B的大小,若C>=B,这C=C-B,且A的最低位赋值为1。
4)如此循环四次,得到的A即为商,得到的C为余数。
该算法的好处在于被除数和商公用一个寄存器A,节省资源。
2、算法流程图图中:被除数和除数分别放在A、B中,商余数分别放在A和C,N为计数器3、VHDL程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.NUMERIC_STD.ALL;ENTITY ldt_chufaqi ISPORT(A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0);C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY ldt_chufaqi;ARCHITECTURE BEHA V OF ldt_chufaqi ISBEGINS1:PROCESS(A,B)V ARIABLE N:INTEGER;V ARIABLE TEMP_A,TEMP_B,TEMP_C:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINTEMP_A:=A;TEMP_B:=B;TEMP_C:="0000";N:=0;IF(B>"0000")THENWHILE(N<4) LOOPTEMP_C:=TEMP_C(2 DOWNTO 0)& TEMP_A(3);TEMP_A:=TEMP_A(2 DOWNTO 0)&'0';IF TEMP_C>=TEMP_B THENTEMP_C:=TEMP_C-TEMP_B;TEMP_A(0):='1';END IF;N:=N+1;END LOOP;ELSETEMP_A:="ZZZZ";TEMP_C:="ZZZZ";END IF;D<=TEMP_A(3 DOWNTO 0);C<=TEMP_C(3 DOWNTO 0);END PROCESS;END ARCHITECTURE BEHA V;4、仿真结果:图中:A、B、C、D分别是被除数、除数、余数和商,因本人对软件和语言的运用理解不足,无法做到A的同时输入和输出,故将A的结果赋值给D,但基本思路运算方法已经得到实现。
《数字电子技术项目教程》项目4 4位二进制数加法数码显示
项目4 4位二进制数加法 数码显示电路的制作
4.1 项目描述
本项目通过全加器逻辑功能验证、数值比 较器逻辑功能验证技能训练,4位二进制数 加法数码显示电路的制作,将数制、码制、 半加器、全加器、比较器等相关知识内容 有机融合。
Ci-1
CI CO
Ci
≥1
Ci
3. 多位加法器
1)串行进位加法器
要进行多位数相加,最简单的方法是将多个全加器进行级 联,称为串行进位加法器。如图4-3所示是4位串行进位加
法器,从图中可见,两个4位相加数A3A2A1A0和 B3B2B1B0的各位同时送到相应全加器的输入端,进位数
串行传送。全加器的个数等于相加数的位数,最低位全加
10
S8
15
B3
1KΩ×8
11 7
B4 C0
GND
C4
9
74LS 283
7
A
VCC
1
2
6
3 4 5
B
a
C
b
74LS 48
c
D
d
e
LT
f
BI/RBO
g
RBI
13 12 11 10 9 15 14
GND
200 Ω×8
BS20 1
1
a
DPY
2
b
a
3 4
cf d
g
b
5
ee
c
6
f
d
7
g
四位二进制比较器
end
// Add stimulus here
end
endmodule
思考与探索
对verilog语言感觉还是朦朦胧胧的,不是很了解,但这个级联方法明白了,就是把电路图画出来,然后根据电路图来打代码就好。
);
initial begin
// Initialize Inputs
A = 0;
B = 0;
L ቤተ መጻሕፍቲ ባይዱ 0;
G = 0;
M = 0;
// Wait 100 ns for global reset to finish
{L,G,M}=100;
repeat(16)
begin
A=A+1;
#10;
repeat(16)
数电实验报告姓名陈世超学号14051411班级14058911专业物联网工程课程名称数字电路任课老师王长军指导老师王长军机位号实验序号实验名称实验时间实验地点一教225实验设备号实验程序源代码moduleyiinputainputbinputlinputginputmoutputreglooutputreggooutputregmo
input L,
input G,
input M,
output LO,
output GO,
output MO);
wire[8:0] C;
Yi y1(A[0],B[0],L,G,M,C[0],C[1],C[2]);
Yi y2(A[1],B[1],C[0],C[1],C[2],C[3],C[4],C[5]);
reg L;
reg G;
reg M;
// Outputs
wire LO;
wire GO;
高二物理竞赛课件电流中的双4位集成二进制加法计数器CC4520
16 15 14 13 12 11 10 9 CC4520
12345678
Q0 Q1 Q2 Q3 CC4520
1CP 1EN 1Q0 1Q1 1Q2 1Q3 1CR VSS (a) 引脚排列图
EN CP CR (b) 逻辑功能示意图
①CR=1时,异步清零。 ②CR=0、EN=1时,在CP脉冲上升沿作用下进行加法计数。 ③CR=0、CP=0时,在EN脉冲下降沿作用下进行加法计数。 ④CR=0、EN=0或CR=0、CP=1时,计数器状态保持不变。
CP 1 2 3 4 5 6 7 8 9
时 Q0
序 图
பைடு நூலகம்
Q1
Q2
C
时钟方程:
FF0每输入一个时钟脉 冲翻转一次,
FF1在Q0由1变0时翻转, FF2在Q1由1变0时翻转。
CP0 CP
CP1 Q0 CP2 Q1
3个JK触发器都是在需要翻转时就有下降沿,不需要翻转时 没有下降沿,所以3个触发器都应接成T'型。
U/D是加减计数控制端;CT是使能端;LD是异步置数控制端; D0~D3是并行数据输入端;Q0~Q3是计数器状态输出端; CO/BO是进位借位信号输出端;RC是多个芯片级联时级间串行 计数使能端,CT=0,CO/BO=1时,RC=CP,由RC端产生的 输出进位脉冲的波形与输入计数脉冲的波形相同。
VCC D0 CR CO BO LD D2 D3
↑/0
111→110→101→100 /0 /0 /0
选用3个CP下降沿触发的JK触发器, 分别用FF0、FF1、FF2表示。
输出方程: B Q2nQ1nQ0n
CP
1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四位二进制除法器设计
吴达斌1611082561
1、设计方法
采用移位相减法设计二进制除法器:被除数和除数都是二进制数,采用将除数移位的方法。
1)判断除数和被除数是否为零:如果除数为零,返回等待;如果被除数为零,则商和余数都为零。
2)被除数和除数都不为零时,判断被除数和除数的大小:如果除数大于被除数,则商为零,余数等于被除数;如果除数小于等于被除数,则对除数进行移位,第一次移位使被除数的最高位和除数的最低位对齐。
然后对移位后的除数和被除数进行判断:如果被除数大于等于除数,则用被除数减去除数,并将所得结果做为新的被除数;如果被除数小于除数,则将除数在第一次移位的基础上右移一位,在对被除数和除数进行判断,根据被除数和除数的大小关系进行类似的操作。
2、算法流程图
图中:被除数和除数分别放在A、B中,商和余数分别放在S、和Y中,C作为移位计数器
3、VHDL程序代码:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all; ---打开可能用到的库
entity text2 is
port(A,B:in std_logic_vector(3 downto 0);
S,Y:out std_logic_vector(3 downto 0));
end entity text2; ----四位二进制除法器实体定义architecture behav of text2 is
begin
s1:process(A,B) ---进程开始敏感信号A、B variable t,w:std_logic_vector(7 downto 0);--中间变量定义
variable z:std_logic_vector(3 downto 0);
begin
t:="00000000";
w:="00000000";
z:="0000"; ---中间变量初始化
if(B>"0000")then ---B不为零(除数不为零)
if(A>"0000")then ----A不为零(被除数不为零)
if(A>B)then ----被除数大于除数时
t (3 downto 0):=A; -----以下四条If语句完成求满足以上
w(6 downto 3):=B; ---三个条件时被除数除以除数的商和余数
if(t>=w)then
t:=t-w;
z(3):='1';
else
z(3):='0';
end if;
w(5 downto 2):=B;
w(6):='0';
if(t>=w)then
t:=t-w;
z(2):='1';
else
z(2):='0';
end if;
w(4 downto 1):=B;
w(5):='0';
if(t>=w)then
t:=t-w;
z(1):='1';
else
z(1):='0';
end if;
w(3 downto 0):=B;
w(4):='0';
if(t>=w)then
t:=t-w;
z(0):='1';
else
z(0):='0';
end if;
Y<=t (3 downto 0);
S<=z;
elsif(A=B)then ---------被除数等于除数
S<="0001";
Y<="0000";
else
S<="0000"; ---------被除数小于除数
Y<=A;
end if;
else ----被除数为零时
S<="0000";
Y<="0000";
end if;
else ---------除数为零时
S<="ZZZZ";
Y<="ZZZZ";
end if;
end process; ---进程结束
end architecture behav;
4、仿真结果:
图中:A、B、S、Y分别是被除数、除数、商和余数。
被除数为零时,除数为零和不为零时的商和余数;
被除数不为零时,除数为零和不为零时的商和余数;
被除数等于除数,大于除数及小于除数时的商和余数;。