数字电子技术基础课程设计
通过Multisim软件实现该乘法器设计电路的搭接如下图:
2.1.2 仿真测试
当输入乘数1101和被乘数1011时,显示结果为10001111如下:
因为Multisim软件通常工作在理想状态下,启动调试运行无误且运行结果正确。
- 2 -
数字电子技术基础课程设计
2.1.3 优缺点分析
优点:乘数输入通过开关接高电平或者直接接地实现,计算结果通过查看8个LED管的亮暗(亮为高电平1)实现,连线将计算结果依次输出。无外来其他输入信号干扰,算法简单,使用芯片较少,逻辑电路图易懂。
缺点:搭接电路过程中双输入与门使用了TTL的74LS08芯片和全加器74LS83。由于TTL门电路的BJT工作在饱和状态,会使开关速度受到很大限制;使用多个TTL与门接入电路,在一定程度上增加了集成芯片内部的连线复杂程度。 2.2 方案二 多种通用集成芯片组合逻辑电路 2.2.1 设计思路
电路原理框图如图1所示。乘法器可以利用加法器和寄存器实现。
寄存器B(被乘数) Z 检n 进位 加法器 计数器P Q0 E(触发器) 寄存器A(累加和) 寄存器Q(乘数)
图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”因计算过程中先后
- 3 -
数字电子技术基础课程设计
图1 4位二进制乘法运算竖式分析
到来的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。
- 4 -
NNS0等待START=1?YS1BS0=BS1=1QS0=QS1=1CLR=0QQ0=1?YS2AS0=AS1=1QS0=QS1=0PET=PEN=0CLR=1NS3AS0=1AS1=0QS0=1QS1=0PET=PEP=1CLR=1PQ3=1?Y数字电子技术基础课程设计
由于计数器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 仿真测试
连好电路后,打开仿真电源,电路进入等待状态。先设置电路的输入,即按需要输入的被乘数和乘数的二进制码调节拨码开关输出的电平信号(注:拨码开关置左为高电平,置右为低电平,在一组四个拨码开关中,上为高位,下为低位)。
按下开关电路启动。途中probe显示即为输出结果,输出高电平亮,低电平不亮。 图为1111×1111=11100001的仿真。
*
*
- 5 -
相关推荐: