(1)半加器规划
仅对两个1位二进制数A和B进行的加法运算称为“半加”。实现半加运算功能的逻辑部件称为半加器,它的真值表如表5-11所示。
表5-11 半加器真值表
由真值表可以直接写出逻辑表达式:
(2)全加器规划
对两个1位二进制数A和B连同低位的进位C进行的加法运算称为“全加”。实现全加运算功能的逻辑部件称为全加器,如图5-30所示。在多位数加法运算时,除最低位外,其他各位都需要考虑低位送来的进位。
逻辑表达式为:
Si=Ai⊕Bi⊕Ci-1
Ci=AiBi+(Ai⊕Bi)Ci-1
图5-30 全加器逻辑电路图
(3)多位加法器
多位加法器是半加器和全加器的衍变体,由4位加法器级联成8位的加法器如图5-31所示。
图5-31 由4位加法器级联成8位加法器(www.zuozong.com)
多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度较快;串行进位方式是将全加器级联构成多位加法器。并行进位加法器通常比串行级联加法器占用的资源多,随着位数的增加,相同位数的并行加法器和串行加法器的资源占用差距快速增大。因此,在工程中使用加法器时,要在速度和容量之间寻找平衡。
2.乘法器结构设计
两路N位二进制数的乘积用X与A的累加和表示,“手工计算”的方法是
,从中可以看出,只要ak不等于0,输入X就随着k的位置连续地变化,然后进行累加。如果ak等于0,相应的转换相加就可以忽略了。
对于一般的8位乘法器,乘法的执行分3个阶段完成。首先下载8位操作数并重置乘积寄存器;在第2阶段中,进行实际的串行一并行乘法运算;在第3阶段中,乘积被传输到输出寄存器中。在多位的乘法结构中,如果没有流水线技术,那将是无法想象的。根据流水线的特点,使用片内EAB资源。采用局部逻辑分析控制,可以设计一个3级流水乘法器,如图5-32所示的8位流水线乘法器。
图5-32 8位流水线乘法器原理图
其中,LPM_MULT中有两项关于流水线和EAB的参数:
局部逻辑分析控制项为:
图5-32所示的流水线乘法器结合了硬件和软件方法,可以使乘法器速度得到很大的提升,而且还可以修改局部逻辑分析控制项继续提升其速度。总的来说,利用流水线技术来提高系统运行速度的前提是这条信号流水线不可以中断。设计的信号流程必须安排这条流水线上不间断有信号的上线和下线,这样才能充分发挥流水线的优势。
3.除法器结构设计
基本的数学运算在VHDL中已经有相应的函数来实现,不用自己编写程序。但某些编译软件对一些算术运算不支持,例如,对除法的支持不全面,它只支持除数是2的幂次的除法,除数为其他数的除法则不支持,若要使用此种数学运算,则需自己编写程序。下面是一个除法器的例子,逻辑框图如图5-33所示。
图5-33 除法器逻辑框图
该电路有两个输入信号DIVIDENT和DIVIDOR,都是4位位矢量,DIVIDENT是被除数,DIVIDOR是除数。输出信号有RESULT、RESIIDUAL、CARRYBIT 3个,RESULT是结果,RBIDUAL是余数,CARRYBIT是溢出标志位。该电路功能比较简单,实现4位无符号整数的触发,如果需要还可以进一步完善其功能。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。