数字电子技术基础课程设计数字电子技术基础课程设计报告学院电气信息学院专业姓名学号设计题目四位二进制无符号数乘法器数字电子技术基础课程设计目录1设计任务描述.................................................................................-1-1.1设计描述...............................................................................-1-1.2设计概述...............................................................................-1-2通用器件实现.................................................................................-1-2.1方案一与门和全加器组合逻辑电路.................................-1-2.1.1设计思路.....................................................................-1-2.1.2仿真测试.....................................................................-2-2.1.3优缺点分析.................................................................-3-2.2方案二多种通用集成芯片组合逻辑电路.........................-3-2.2.1设计思路.....................................................................-3-2.2.2仿真测试.....................................................................-5-2.2.3优缺点分析.................................................................-7-3使用硬件描述语言——Verilog实现..........................................-7-3.1设计目的...............................................................................-7-3.2设计要求...............................................................................-7-3.3硬件语言描述.......................................................................-7-3.4BASY2板结果附图................................................................-9-4结论与心得体会...........................................................................-11-4.1结论......................................................................................-11-4.2心得体会..............................................................................-11-数字电子技术基础课程设计-1-1设计任务描述1.1设计描述设计一个乘法器,实现两个四位二进制数的乘法。两个二进制数分别是被乘数3210AAAA和乘数3210BBBB。被乘数和乘数这两个二进制数分别由高低电平给出。乘法运算的结果即乘积由电平指示灯显示的二进制数。做到保持乘积、输出乘积,即认为目的实现,结束运算。1.2设计概述4位二进制乘法器在实际中具有广泛应用。它是一些计算器的基本组成部分,其原理适用于很多计算器和大型计算机,它涉及到时序逻辑电路如何设计、分析和工作等方面。通过此电路更深刻的了解时序逻辑部件的工作原理,从而掌握如何根据需要设计满足要求的各种电路图,解决生活中的实际问题,将所学知识应用于实践中。2通用器件实现2.1方案一与门和全加器组合逻辑电路2.1.1设计思路手动实现两个四位二进制乘法的计算,应为以下过程:123456781234123411110001110111010000110110111101CCCCCCCCAAAABBBB设乘数为1234AAAA(下标数字大则为高位),被乘数为1234BBBB,使乘数从低位到高位依次与被乘数相乘,得到四个四位二进制加数,再依次对四个加数错位相加,得到八位的二进制的乘法运算结果。依次算法,两个四进制乘数由8个单刀双掷开关接地(低电平0)和接5V(高电平1)进行输入,乘数A从低位到高位依次与被乘数B相乘过程可用二输入与门实现,共得到四个加数16个与运算结果,乘数最低位1A与被乘数作与运算的四位结果的最低位即是乘法运算结果的最低位1C;依次用三个四位全加器对四个加数进行全加运算,运算时输入两个四位二进制数,输入进位信号接地为0,低级的全加器的运算结果进位信号作为与下一个加数进行全加运算的被加数的最高位,四位全加运算结果的最低位作为输出结果,并从低到高位的依次输出432CCC、、,最后一个全加器运算过后得到进位信号是八位二进制计算结果的最高位8C,剩余的高三位输出分别为567CCC、、,将8位输出结果直接在通过电阻到地保护的发光二极管表示。数字电子技术基础课程设计-2-通过Multisim软件实现该乘法器设计电路的搭接如下图:2.1.2仿真测试当输入乘数1101和被乘数1011时,显示结果为10001111如下:因为Multisim软件通常工作在理想状态下,启动调试运行无误且运行结果正确。数字电子技术基础课程设计-3-2.1.3优缺点分析优点:乘数输入通过开关接高电平或者直接接地实现,计算结果通过查看8个LED管的亮暗(亮为高电平1)实现,连线将计算结果依次输出。无外来其他输入信号干扰,算法简单,使用芯片较少,逻辑电路图易懂。缺点:搭接电路过程中双输入与门使用了TTL的74LS08芯片和全加器74LS83。由于TTL门电路的BJT工作在饱和状态,会使开关速度受到很大限制;使用多个TTL与门接入电路,在一定程度上增加了集成芯片内部的连线复杂程度。2.2方案二多种通用集成芯片组合逻辑电路2.2.1设计思路电路原理框图如图1所示。乘法器可以利用加法器和寄存器实现。加法器E(触发器)寄存器B(被乘数)计数器P检n寄存器A(累加和)寄存器Q(乘数)进位Q0Z图1乘法器原理框图实验电路输入的被乘数取值范围为(0000)2~(1111)2,乘数的取值范围为(0000)2~(1111)2。通过计算可得,乘积的取值范围为(00000000)2~(11100001)2。通过初步的数值位数分析可知,储存被乘数需要1片4位二进制寄存器,储存乘数需要1片4位二进制寄存器,储存乘积需要2片4位二进制寄存器。由图中二进乘法竖式计算可以看出:二进制乘法可以转化为移位累加操作。对于4位二进制乘法,以8位乘积寄存器的高4位储存累加结果。运算时先将乘积寄存器置零,然后从低位向高位依次检查乘数寄存器中每一位的值。当值为“1”时,先用乘积寄存器的高4位累加被乘数,并将和保存在乘积寄存器的高4位中,然后以加和的进位结果作为右移输入对乘积寄存器进行右移操作。当值为“0”时,以“0”作为右移输入直接对乘积寄存器进行右移操作。观察图可以看出,乘法运算初始化时存入寄存器低4位中的“0”因计算过程中先后数字电子技术基础课程设计-4-图14位二进制乘法运算竖式分析到来的4次右移操作而被移出寄存器。如果用乘法运算的乘数代替这4个“0”,每次右移操作恰好将检查过的乘数位移出寄存器,而对尚未处理的数据没有影响,并且不会影响乘法运算的结果。因此,考虑到电路的成本,可以将乘数储存在乘积寄存器的低位端从而节省1片寄存器的花费。在4位二进制乘法运算中,因为乘数有4位二进制位,所以整个运算过程需要检查乘数位值4次,即需要进行4次基本移位操作。因此,在电路中需要用计数器来记录移位操作的次数以指示运算的结束。1.控制逻辑电路(如右)。二进制乘法运算是一个只与乘数位数有关的累加移位过程,对于4位二进制乘法运算循环需要进行4次累加移位操作。S2、S3状态的循环过程就是二进制乘法运算的过程,其中S2状态电路进行累加操作,S3状态电路进行右移操作。当寄存器Q的最低位输出Q0为1时,电路进入S2状态,将加法器器D中输出的数值置入寄存器A中,寄存器Q的输出状态保持不变。此时寄存器A的控制端S0=S1=1,寄存器B的控制端S0=S1=0当寄存器Q的最低位输出Q0为0时将跳过S2状态直接进入S3状态。S3状态时,寄存器A和寄存器Q进行右移操作,两芯片的控制端输入均为S0=1、S1=0。数字电子技术基础课程设计-5-由于计数器P用来记录电路中执行移位操作的次数,因此当计数器P的输出端Q2为1时,即可断定乘法运算过程已经结束。此时应该停止时钟使电路状态保持不变,即回到S0状态。否则电路状态再次进入对寄存器Q的最低位输出Q0的判断。将电路状态S2、S3时寄存器A和寄存器Q各端口的状态合在一起观察,设D表示寄存器A的Q0,T为寄存器Q的Q0。规定加‘*’的状态表示该端口前一个时钟周期的状态。寄存器A:S0=1,S1=S1*⊙T,SR=CI·T;寄存器Q;S0=(S0*·T)',S1=1,SR=D;为实现该关系,电路中用U8A、U8B和U10A分别储存寄存器Q的控制端S0、寄存器A的控制端S1和加法器D的进位输出端CO在上一个时钟周期的状态。另外,通过对表3的观察发现,在电路状态S1的初始化过程中,需要对D触发器U8A置一,对D触发器U8B置零。计数器P用来记录电路中执行移位操作的次数,且电路采用同步时钟控制,因此只有当电路执行移位操作是计数器P的使能端才有效。通过对表3的观察发现:在电路状态S1、S2中,只有当电路进行移位操作时寄存器Q的控制端S0才为1。所以,计数器P的使能端ENP、ENT与寄存器Q的控制端S0同状态。最后,对D触发器U10B来说,当按下开关J1时,U10B的置数端接收到低电平被置一,其输出Q接寄存器B和寄存器Q的控制端S0、S1使之为一,寄存器B、Q处于置数状态,Q′接寄存器A、计数器P、D触发器U8B和U10A的CLR端使它们置零,并且Q′接D触发器U8A的PR端使其置一,即使电路处于S1状态。当第一个上升沿到来时,D触发器U10B的输出进行翻转,电路进入S2、S3状态的循环过程,并在计数器P的输出Q2位1时停止时钟,使电路回到S0状态。2.数据的处理数据的处理包括累加和右移两部分。在加法电路中,寄存器B中的被乘数与寄存器A中的部分积相加,并将结果保存在寄存器A中,同时将进位加法器的进位输出锁存在D触发器中,以提供右移操作使用。即将寄存器B和寄存器A的数据输出端接加法器D的数据输入端,将加法器D的数据输出端接寄存器A的数据输入端,加法器D的进位输入端接低电平,加法器D的进位输出端接D触发器U10A的输入端。在移位电路中,需要对寄存器A和寄存器Q进行联合右移,所以将寄存器A的最低位输出Q0接到寄存器Q的右移输入端SR。寄存器的其他控制端按控制电路的设计对应连接。2.2.2仿真测试连好电路后,打开仿真电源,电路进入等待状态。先