专利名称:一种改进的基16Booth编码器的利记博彩app
技术领域:
本发明属于数字集成电路设计领域,涉及微处理器和数字信号处理器的设计,特别是涉及一种改进的基16Booth编码器,适用于采用基16Booth算法的并行乘法器的设计。
背景技术:
高性能并行乘法器是现代微处理器和数字信号处理系统中进行数据处理的关键部件之一,它的速度是影响数字信号处理器工作频率的决定性因素,它的面积通常会影响系统实现的成本,因此如何用更小的面积实现更快的速度成为乘法器研究的重要方向。并行乘法器的设计主要包括三个阶段部分积产生,部分积压缩以及将压缩结果转化为最终结果的阶段。部分积产生阶段为了减少并行运算的数据量,往往采用Booth编码算法对乘数重新编码,这样可以有效地减少部分积产生的数目,使得乘法器的速度和面积得到很大程度的优化。采用Booth算法设计的乘法器,其部分积产生模块是由Booth编码器来实现的。采用基16Booth算法设计的编码器,其倍数产生模块产生被乘数的各个倍数,其中通过被乘数移位实现的倍数称为简单倍数,不能靠被乘数简单移位实现的倍数称为复杂倍数,这些复杂倍数是通过简单倍数的加减来实现的,所以复杂倍数的产生延时比简单倍数大很多。 已知两个数相乘,其中乘数用A表示,被乘数用B表示,基16Booth编码器的输出需要从倍数序列{±8B,士7B,士6B,士5B,士4B,士!3B,士2B,士B,0}中选择出部分积,总共17个选择项。以倍数士5B的选择为例,从高位到低位选择5B的编码位是01010或者是01001,而选择-5B的编码位为10101或者为10110,可以发现若选择的倍数互为补码,则参与编码的位互为反码,因此利用这个特点就可以将编码位进行分离。而现有的基16Booth编码器如图1所示,它包括一个倍数产生模块和一个17选1的选择器,5个编码的位同时参与选择倍数,既忽视了它们产生耗用延时不同的特点,又忽视了编码位可以分离的特点,不仅恶化了编码器的关键路径,而且增加了编码器的面积。
发明内容
本发明的目的在于克服上述已有技术的不足,提出一种改进的基16Booth编码器,以利用被乘数倍数产生耗用延时不同的和编码位分离的特点,实现在优化关键路径的同时减小编码器的面积。为实现上述目的,本发明改进的基16Booth编码器包括倍数产生模块,用于产生被乘数B的各个倍数,包括简单倍数{8B,4B,2B,B,0}和复杂倍数{7Β,6Β, 5Β, 3Β},这些倍数连接到选择器阵列模块;选择器阵列模块,用于根据输入的倍数选择信号Sl到S8,选择相应的倍数作为输出Ρ7,并将该输出Ρ7连接到部分积取反模块;其中还包括编码位分离模块,将外部输入的5位编码位A W 0]分离成1位取反位AO和4 位选择位Al[3 0],编码位的最高位Α[4]连接到取反位Α0,该1位取反位和选择位分别连接到部分积取反模块和译码模块;译码模块,用于根据输入的4位选择位Al [3 0]产生8个倍数选择信号Si,S2, S3,S4,S5,S6,S7,S8,并将这些选择信号连接到选择器阵列模块;部分积取反模块,用于根据输入的取反位AO决定是否对P7进行取反,若A[4]为 1时选择所述的P7作为最终的部分积PP,否则选择所述P7的反码作为最终的部分积PP。所述的编码位分离模块由一个4位反相器和一个4位2选1选择器组成,该4位反相器的输入端连接编码位A W 0]的低4位A[3 0],反相器的输出端连接到4位2选 1选择器的一端,选择器的另一端连接到A[3 0],选择器的选择端连接到编码位的最高位 AW],选择器的输出连接到选择位Al[3 0]。所述的选择器阵列模块由8个2选1选择器串联组成,选择器1的数据端连接倍数0和B,选择端连接到选择信号Si,输出端连接到选择器2的一端Pl ;选择器2的另一端连接到倍数2B,选择端连接到选择信号S2,输出端连接到选择器3的一端P2 ;选择器3的另一端连接倍数4B,选择端连接到选择信号S4,输出端连接到选择器4的一端P4 ;选择器4 的另一端连接到倍数8B,选择端连接到选择信号S8,输出端连接到选择器5的一端P8 ;选择器5的另一端连接到倍数:3B,选择端连接到选择信号S3,输出连接到选择器6的一端P3 ; 选择器6的另一端连接到倍数6B,选择端连接到选择信号S6,输出端连接到选择器7的一端P6 ;选择器7的另一端连接到倍数5B,选择端连接到选择信号S5,输出端连接到选择器8 的一端P5 ;选择器8另一端连接到倍数7B,选择端连接到选择信号S7,输出端连接到P7。所述的部分积取反模块包括一个位宽为n+3的反相器和一个位宽为n+3的2选1 选择器,其中η为被乘数B的位宽,该n+3位反相器的输入端连接到P7,输出端连接到n+3 位选择器的一端,选择器的另一端连接到P7,选择器的选择端连接到取反位A0,选择器的输出连接到最终的部分积PP。本发明与现有基16Booth编码器相比的优点在于本发明通过用编码位分离模块、译码模块、选择器阵列模块和部分积取反模块替换现有编码器中的全并行选择器模块, 既利用了被乘数倍数产生耗用延时不同的特点,又利用了编码位分离的特点,在提高编码器速度的同时使得编码器的面积得到较大程度的缩减。
图1是现有的基16Booth编码器;图2是本发明改进的基16Booth编码器。
具体实施例方式下面结合附图对本发明改进的基16Booth编码器的设计方法进行详细阐述。参照图2,本发明改进的基16Booth编码器包括倍数产生模块、编码位分离模块、 译码模块、选择器阵列模块和部分积取反模块,其中倍数产生模块,用于产生被乘数B的各个倍数,它们包括简单倍数{8B,4B,2B,B, 0}和复杂倍数{7B,6B,5B,;3B},这些倍数连接到选择器阵列模块。简单倍数通过被乘数的移位实现,复杂倍数通过简单倍数的加减实现,例如5B的产生是通过4B+B实现的,7B的产生是通过8B+(-B)实现的;
编码位分离模块,用于将外部输入的5位编码位从4 0]分离成1位取反位AO和 4位选择位Al[3 0],编码位的最高位A[4]连接到取反位A0,取反位和选择位分别连接到部分积取反模块和译码模块。该模块由一个4位反相器和一个4位2选1选择器组成, 该4位反相器的输入端连接编码位从4 0]的低4位A[3 0],反相器的输出端连接到4 位2选1选择器的一端,选择器的另一端连接到A[3 0],选择器的选择端连接到编码位的最高位M4],选择器的输出连接到选择位Al[3 0]。编码位分离的原理是当输入的编码位互为反码时,则编码器输出的最终部分积也互为反码,这样就可以只利用编码位的低4 位或者低4位的反码对倍数进行选择,然后将最高位作为取反位提取出来,最后根据取反位决定是否对输出的部分积进行取反。这样避免了对负倍数的选择,使得选择项减少了接近一半,从而使面积得到较大程度的缩减。译码模块,用于根据输入的4位选择位Al[3 0]产生8个倍数选择信号Si, S2,S3,S4, S5,S6,S7, S8,并将这些选择信号连接到选择器阵列模块。该译码模块的原理是选择位Al[3 0]的4个位代表的权值分别为4、2、1、1,此时4个位的加权和J =Al [3] X 4+A1 [2] X 2+A1 [1] X 1+A1
X 1, Al[i] e {0,1},其中 i e {3,2,1,0},所以 Je {1,2,3,4,5,6,7,8},此时译码模块产生的选择信号为3。以选择信号S7的产生为例进行说明,输入的选择位Al [3 0]为1110,此时加权和J = 1X4+1X2+1X1+0X1 = 7, 所以此时产生的控制信号为S7。选择器阵列模块,用于根据输入的倍数选择信号Sl到S8,选择相应的倍数作为输出P7,并将该输出P7连接到部分积取反模块。该模块由8个2选1选择器串联组成,选择器1的数据端连接倍数0和B,选择端连接到选择信号Si,输出端连接到选择器2的一端 Pl ;选择器2的另一端连接到倍数2B,选择端连接到选择信号S2,输出端连接到选择器3的一端P2 ;选择器3的另一端连接倍数4B,选择端连接到选择信号S4,输出端连接到选择器 4的一端P4 ;选择器4的另一端连接到倍数8B,选择端连接到选择信号S8,输出端连接到选择器5的一端P8 ;选择器5的另一端连接到倍数:3B,选择端连接到选择信号S3,输出连接到选择器6的一端P3 ;选择器6的另一端连接到倍数6B,选择端连接到选择信号S6,输出端连接到选择器7的一端P6 ;选择器7的另一端连接到倍数5B,选择端连接到选择信号 S5,输出端连接到选择器8的一端P5 ;选择器8另一端连接到倍数7B,选择端连接到选择信号S7,输出端连接到P7。选择器阵列模块的工作原理是产生时耗用的延时越多的倍数经过的选择器的级数越少,如图2所示,产生耗用延时最多的倍数7B仅需要经过1个2选 1选择器,这时编码器的关键路径延时T。= T7B+Tmux2—^Tmux2-JTinv,其中T7b表示复杂倍数7B 产生延时,Tmux21表示一个2选1的选择器延时,Tinv表示一个反相器的延时,图1中现有的基16Booth编码器的关键路径延时T。= T_7B+Tmuxl71 = T7B+Tinv+Tmuxl7—i,其中T_7B表示复杂倍数-7B的产生延时,Tmuxl7」表示一个17选1的选择器延时。比较上面两式可看出本发明改进的基16Booth编码器的关键路径缩短了 Tmuxl7 PlTmux2」的时间。部分积取反模块,用于根据输入的取反位AO决定是否对P7进行取反,若A[4]为 1时选择所述的P7作为最终的部分积PP,否则选择所述P7的反码作为最终的部分积PP。 该模块包括一个位宽为n+3的反相器和一个位宽为n+3的2选1选择器,其中η为被乘数 B的位宽,该n+3位反相器的输入端连接到P7,输出端连接到n+3位选择器的一端,选择器的另一端连接到P7,选择器的选择端连接到取反位A0,选择器的输出连接到最终的部分积PP。本发明的工作原理如下外部输入被乘数B和5位编码位从4 0],倍数产生模块产生被乘数的各个倍数{0,B,2B,3B,4B,5B,6B,7B,8B},这些倍数输入到选择器阵列模块;编码位分离模块根据 5位编码位A [4 0]产生1位取反位AO和4位选择位Al [3:0],取反位AO是A [4 0] 最高位A[4]的直接输出,当A[4]为0时Al[3 0]与A[3 0]相同,否则Al[3 0]与 A[3 0]的反码相同;选择器阵列模块根据该4位选择位Al [3 0]选择出相应的倍数作为输出P7,P7输入到部分积取反模块;部分积取反模块根据输入的取反位AO判断是否对 P7进行取反以得到最终的输出PP,当取反位为0时最终的部分积PP与P7相同,否则PP与 P7的反码相同。本发明与现有的基16Booth编码器相比,其优势在于在优化编码器的速度的同时使得编码器的面积得到较大程度的缩减,既提高了编码器的性能,又缩减了设计的成本。
权利要求
1.一种改进的基16Booth编码器,包括倍数产生模块,用于产生被乘数B的各个倍数,包括简单倍数{8Β,4Β,2Β,Β,Ο}和复杂倍数{7Β,6Β, 5Β, 3Β},这些倍数连接到选择器阵列模块;选择器阵列模块,用于根据输入的倍数选择信号Sl到S8,选择相应的倍数作为输出 Ρ7,并将该输出Ρ7连接到部分积取反模块;其特征在于还包括编码位分离模块,将外部输入的5位编码位从4 0]分离成1位取反位AO和4位选择位Al[3 0],编码位的最高位Α[4]连接到取反位Α0,该1位取反位和选择位分别连接到部分积取反模块和译码模块;译码模块,用于根据输入的4位选择位Al [3 0]产生8个倍数选择信号Si,S2,S3, S4,S5,S6,S7,S8,并将这些选择信号连接到选择器阵列模块;部分积取反模块,用于根据输入的取反位AO决定是否对P7进行取反,若A[4]为1时选择所述的P7作为最终的部分积PP,否则选择所述P7的反码作为最终的部分积PP。
2.根据权利要求1所述的基16Booth编码器,其特征在于编码位分离模块由一个4 位反相器和一个4位2选1选择器组成,该4位反相器的输入端连接编码位从4 0]的低4位A[3 0],反相器的输出端连接到4位2选1选择器的一端,选择器的另一端连接到A[3 0],选择器的选择端连接到编码位的最高位M4],选择器的输出连接到选择位 Al [3 0]。
3.根据权利要求1所述的基16Booth编码器,其特征在于选择器阵列模块由8个2选 1选择器串联组成,选择器1的数据端连接倍数0和B,选择端连接到选择信号Si,输出端连接到选择器2的一端Pl ;选择器2的另一端连接到倍数2B,选择端连接到选择信号S2, 输出端连接到选择器3的一端P2 ;选择器3的另一端连接倍数4B,选择端连接到选择信号 S4,输出端连接到选择器4的一端P4 ;选择器4的另一端连接到倍数8B,选择端连接到选择信号S8,输出端连接到选择器5的一端P8 ;选择器5的另一端连接到倍数:3B,选择端连接到选择信号S3,输出连接到选择器6的一端P3 ;选择器6的另一端连接到倍数6B,选择端连接到选择信号S6,输出端连接到选择器7的一端P6 ;选择器7的另一端连接到倍数5B, 选择端连接到选择信号S5,输出端连接到选择器8的一端P5 ;选择器8另一端连接到倍数 7B,选择端连接到选择信号S7,输出端连接到P7。
4.根据权利要求1所述的基16Booth编码器,其特征在于部分积取反模块包括一个位宽为n+3的反相器和一个位宽为n+3的2选1选择器,其中η为被乘数B的位宽,该η+3 位反相器的输入端连接到Ρ7,输出端连接到n+3位选择器的一端,选择器的另一端连接到 P7,选择器的选择端连接到取反位A0,选择器的输出连接到最终的部分积PP。
全文摘要
本发明公开了一种改进的基16Booth编码器,主要解决现有基16Booth编码器中关键路径长和面积大的问题。它包括倍数产生模块、编码位分离模块、译码模块、选择器阵列模块和部分积取反模块。倍数产生模块生成被乘数的各个倍数;编码位分离模块根据输入的5位编码位产生1位取反位和4位选择位;译码模块通过4位选择位输出相应的倍数选择信号;选择器阵列模块根据译码模块输出的选择信号选择相应的倍数;部分积取反模块根据取反位决定是否对选择器阵列模块输出的信号进行取反操作来得到最终的部分积。本发明有效的优化了编码器的关键路径,缩小了编码器的面积,可用于采用基16Booth算法实现的并行乘法器设计。
文档编号G06F7/533GK102270110SQ20111018261
公开日2011年12月7日 申请日期2011年6月30日 优先权日2011年6月30日
发明者刘晨, 叶强, 来新泉, 王学德, 田磊 申请人:西安电子科技大学