CN102270110B - 一种改进的基16Booth编码器 - Google Patents
一种改进的基16Booth编码器 Download PDFInfo
- Publication number
- CN102270110B CN102270110B CN 201110182611 CN201110182611A CN102270110B CN 102270110 B CN102270110 B CN 102270110B CN 201110182611 CN201110182611 CN 201110182611 CN 201110182611 A CN201110182611 A CN 201110182611A CN 102270110 B CN102270110 B CN 102270110B
- Authority
- CN
- China
- Prior art keywords
- selector switch
- module
- negate
- bit
- selects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种改进的基16Booth编码器,主要解决现有基16Booth编码器中关键路径长和面积大的问题。它包括倍数产生模块、编码位分离模块、译码模块、选择器阵列模块和部分积取反模块。倍数产生模块生成被乘数的各个倍数;编码位分离模块根据输入的5位编码位产生1位取反位和4位选择位;译码模块通过4位选择位输出相应的倍数选择信号;选择器阵列模块根据译码模块输出的选择信号选择相应的倍数;部分积取反模块根据取反位决定是否对选择器阵列模块输出的信号进行取反操作来得到最终的部分积。本发明有效的优化了编码器的关键路径,缩小了编码器的面积,可用于采用基16Booth算法实现的并行乘法器设计。
Description
技术领域
本发明属于数字集成电路设计领域,涉及微处理器和数字信号处理器的设计,特别是涉及一种改进的基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}和复杂倍数{7B,6B,5B,3B},这些倍数连接到选择器阵列模块;
选择器阵列模块,用于根据输入的倍数选择信号S1到S8,选择相应的倍数作为输出P7,并将该输出P7连接到部分积取反模块;其中还包括:
编码位分离模块,将外部输入的5位编码位A[4∶0]分离成1位取反位A0和4位选择位A1[3∶0],编码位的最高位A[4]连接到取反位A0,该1位取反位和选择位分别连接到部分积取反模块和译码模块;
译码模块,用于根据输入的4位选择位A1[3∶0]产生8个倍数选择信号:S1,S2,S3,S4,S5,S6,S7,S8,并将这些选择信号连接到选择器阵列模块;
部分积取反模块,用于根据输入的取反位A0决定是否对P7进行取反,若A[4]为1时选择所述的P7作为最终的部分积PP,否则选择所述P7的反码作为最终的部分积PP。
所述的编码位分离模块由一个4位反相器和一个4位2选1选择器组成,该4位反相器的输入端连接编码位A[4∶0]的低4位A[3∶0],反相器的输出端连接到4位2选1选择器的一端,选择器的另一端连接到A[3∶0],选择器的选择端连接到编码位的最高位A[4],选择器的输出连接到选择位A1[3∶0]。
所述的选择器阵列模块由8个2选1选择器串联组成,选择器1的数据端连接倍数0和B,选择端连接到选择信号S1,输出端连接到选择器2的一端P1;选择器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选择器,其中n为被乘数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位编码位A[4∶0]分离成1位取反位A0和4位选择位A1[3∶0],编码位的最高位A[4]连接到取反位A0,取反位和选择位分别连接到部分积取反模块和译码模块。该模块由一个4位反相器和一个4位2选1选择器组成,该4位反相器的输入端连接编码位A[4∶0]的低4位A[3∶0],反相器的输出端连接到4位2选1选择器的一端,选择器的另一端连接到A[3∶0],选择器的选择端连接到编码位的最高位A[4],选择器的输出连接到选择位A1[3∶0]。编码位分离的原理是:当输入的编码位互为反码时,则编码器输出的最终部分积也互为反码,这样就可以只利用编码位的低4位或者低4位的反码对倍数进行选择,然后将最高位作为取反位提取出来,最后根据取反位决定是否对输出的部分积进行取反。这样避免了对负倍数的选择,使得选择项减少了接近一半,从而使面积得到较大程度的缩减。
译码模块,用于根据输入的4位选择位A1[3∶0]产生8个倍数选择信号:S1,S2,S3,S4,S5,S6,S7,S8,并将这些选择信号连接到选择器阵列模块。该译码模块的原理是:选择位A1[3∶0]的4个位代表的权值分别为4、2、1、1,此时4个位的加权和J=A1[3]×4+A1[2]×2+A1[1]×1+A1[0]×1,A1[i]∈{0,1},其中i∈{3,2,1,0},所以J∈{1,2,3,4,5,6,7,8},此时译码模块产生的选择信号为SJ。以选择信号S7的产生为例进行说明,输入的选择位A1[3∶0]为1110,此时加权和J=1×4+1×2+1×1+0×1=7,所以此时产生的控制信号为S7。
选择器阵列模块,用于根据输入的倍数选择信号S1到S8,选择相应的倍数作为输出P7,并将该输出P7连接到部分积取反模块。该模块由8个2选1选择器串联组成,选择器1的数据端连接倍数0和B,选择端连接到选择信号S1,输出端连接到选择器2的一端P1;选择器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选择器,这时编码器的关键路径延时Tc=T7B+Tmux2_1+Tmux2_1+Tinv,其中T7B表示复杂倍数7B产生延时,Tmux21表示一个2选1的选择器延时,Tinv表示一个反相器的延时,图1中现有的基16Booth编码器的关键路径延时Tc=T-7B+Tmux17_1=T7B+Tinv+Tmux17_1,其中T-7B表示复杂倍数-7B的产生延时,Tmux17_1表示一个17选1的选择器延时。比较上面两式可看出本发明改进的基16Booth编码器的关键路径缩短了Tmux17_1--2Tmux2_1的时间。
部分积取反模块,用于根据输入的取反位A0决定是否对P7进行取反,若A[4]为1时选择所述的P7作为最终的部分积PP,否则选择所述P7的反码作为最终的部分积PP。该模块包括一个位宽为n+3的反相器和一个位宽为n+3的2选1选择器,其中n为被乘数B的位宽,该n+3位反相器的输入端连接到P7,输出端连接到n+3位选择器的一端,选择器的另一端连接到P7,选择器的选择端连接到取反位A0,选择器的输出连接到最终的部分积PP。
本发明的工作原理如下:
外部输入被乘数B和5位编码位A[4∶0],倍数产生模块产生被乘数的各个倍数{0,B,2B,3B,4B,5B,6B,7B,8B},这些倍数输入到选择器阵列模块;编码位分离模块根据5位编码位A[4∶0]产生1位取反位A0和4位选择位A1[3∶0],取反位A0是A[4∶0]最高位A[4]的直接输出,当A[4]为0时A1[3∶0]与A[3∶0]相同,否则A1[3∶0]与A[3∶0]的反码相同;选择器阵列模块根据该4位选择位A1[3∶0]选择出相应的倍数作为输出P7,P7输入到部分积取反模块;部分积取反模块根据输入的取反位A0判断是否对P7进行取反以得到最终的输出PP,当取反位为0时最终的部分积PP与P7相同,否则PP与P7的反码相同。
本发明与现有的基16Booth编码器相比,其优势在于在优化编码器的速度的同时使得编码器的面积得到较大程度的缩减,既提高了编码器的性能,又缩减了设计的成本。
Claims (2)
1.一种改进的基16Booth编码器,包括:
倍数产生模块,用于产生被乘数B的各个倍数,包括简单倍数{8B,4B,2B,B,0}和复杂倍数{7B,6B,5B,3B},这些倍数连接到选择器阵列模块;
选择器阵列模块,用于根据输入的倍数选择信号S1到S8,选择相应的倍数作为输出P7,并将该输出P7连接到部分积取反模块;该模块由8个2选1选择器串联组成,选择器1的数据端连接倍数0和B,选择端连接到选择信号S1,输出端连接到选择器2的一端P1;选择器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;
其特征在于还包括:
编码位分离模块,将外部输入的5位编码位A[4:0]分离成1位取反位A0和4位选择位A1[3:0],编码位的最高位A[4]连接到取反位A0,该1位取反位和选择位分别连接到部分积取反模块和译码模块;该模块由一个4位反相器和一个4位2选1选择器组成,该4位反相器的输入端连接编码位A[4:0]的低4位A[3:0],反相器的输出端连接到4位2选1选择器的一端,选择器的另一端连接到A[3:0],选择器的选择端连接到编码位的最高位A[4],选择器的输出连接到选择位A1[3:0];
译码模块,用于根据输入的4位选择位A1[3:0]产生8个倍数选择信号:S1,S2,S3,S4,S5,S6,S7,S8,并将这些选择信号连接到选择器阵列模块;该译码模块的原理是:选择位A1[3:0]的4个位代表的权值分别为4、2、1、1,此时4个位的加权和J=A1[3]×4+A1[2]×2+A1[1]×1+A1[0]×1,A1[i]∈{0,1},其中i∈{3,2,1,0},所以J∈{1,2,3,4,5,6,7,8},此时译码模块产生的选择信号为SJ;
部分积取反模块,用于根据输入的取反位A0决定是否对P7进行取反,若A[4]为1时选择所述的P7作为最终的部分积PP,否则选择所述P7的反码作为最终的部分积PP。
2.根据权利要求1所述的基16Booth编码器,其特征在于:部分积取反模块包括一个位宽为n+3的反相器和一个位宽为n+3的2选1选择器,其中n为被乘数B的位宽,该n+3位反相器的输入端连接到P7,输出端连接到n+3位选择器的一端,选择器的另一端连接到P7,选择器的选择端连接到取反位A0,选择器的输出连接到最终的部分积PP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110182611 CN102270110B (zh) | 2011-06-30 | 2011-06-30 | 一种改进的基16Booth编码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110182611 CN102270110B (zh) | 2011-06-30 | 2011-06-30 | 一种改进的基16Booth编码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102270110A CN102270110A (zh) | 2011-12-07 |
CN102270110B true CN102270110B (zh) | 2013-06-12 |
Family
ID=45052421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110182611 Expired - Fee Related CN102270110B (zh) | 2011-06-30 | 2011-06-30 | 一种改进的基16Booth编码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102270110B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530085A (zh) * | 2013-09-16 | 2014-01-22 | 电子科技大学 | 一种Booth编码器及乘法器 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622466B (zh) * | 2012-02-17 | 2014-01-29 | 浙江大学 | 一种基于标准单元库扩展的乘法器的eco优化方法 |
CN107977191B (zh) * | 2016-10-21 | 2021-07-27 | 中国科学院微电子研究所 | 一种低功耗并行乘法器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485413A (en) * | 1993-09-24 | 1996-01-16 | Nec Corporation | Multiplier utilizing the booth algorithm |
CN101122850A (zh) * | 2007-09-21 | 2008-02-13 | 清华大学 | 基于二次Booth编码的大数乘法器 |
CN101126974A (zh) * | 2007-09-29 | 2008-02-20 | 北京时代民芯科技有限公司 | 一种改进的Booth 2乘法器结构 |
CN101382882A (zh) * | 2008-09-28 | 2009-03-11 | 宁波大学 | 一种基于CTGAL的Booth编码器及绝热补码乘累加器 |
-
2011
- 2011-06-30 CN CN 201110182611 patent/CN102270110B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485413A (en) * | 1993-09-24 | 1996-01-16 | Nec Corporation | Multiplier utilizing the booth algorithm |
CN101122850A (zh) * | 2007-09-21 | 2008-02-13 | 清华大学 | 基于二次Booth编码的大数乘法器 |
CN101126974A (zh) * | 2007-09-29 | 2008-02-20 | 北京时代民芯科技有限公司 | 一种改进的Booth 2乘法器结构 |
CN101382882A (zh) * | 2008-09-28 | 2009-03-11 | 宁波大学 | 一种基于CTGAL的Booth编码器及绝热补码乘累加器 |
Non-Patent Citations (8)
Title |
---|
DESIGN OF A HIGH PERFORMANCE 32x32-BIT MULTIPLIER WITH A NOVEL SIGN SELECT BOOTH ENCODER;Kiwon Choi etc.;《IEEE》;20011231;第701-704页 * |
Kiwon Choi etc..DESIGN OF A HIGH PERFORMANCE 32x32-BIT MULTIPLIER WITH A NOVEL SIGN SELECT BOOTH ENCODER.《IEEE》.2001,第701-704页. |
RadixO16 Booth 流水线乘法器的设计;梁峰 等;《西安交通大学学报》;20061031;第40卷(第10期);第1111-1114,1133页 * |
一种新的布斯编码器结构;刘建军 等;《微电子学与计算机》;20040531;第21卷(第5期);第73-75页 * |
刘建军 等.一种新的布斯编码器结构.《微电子学与计算机》.2004,第21卷(第5期),第73-75页. |
李磊 等.高速可重组16x16乘法器的设计.《微电子学与计算机》.2007,第24卷(第6期),第120-122页. |
梁峰 等.RadixO16 Booth 流水线乘法器的设计.《西安交通大学学报》.2006,第40卷(第10期),第1111-1114,1133页. |
高速可重组16x16乘法器的设计;李磊 等;《微电子学与计算机》;20071231;第24卷(第6期);第120-122页 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530085A (zh) * | 2013-09-16 | 2014-01-22 | 电子科技大学 | 一种Booth编码器及乘法器 |
CN103530085B (zh) * | 2013-09-16 | 2016-06-22 | 电子科技大学 | 一种Booth编码器及乘法器 |
Also Published As
Publication number | Publication date |
---|---|
CN102270110A (zh) | 2011-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Vázquez et al. | A new family of high. performance parallel decimal multipliers | |
Vun et al. | A new RNS based DA approach for inner product computation | |
CN102681815B (zh) | 用加法器树状结构的有符号乘累加算法的方法 | |
CN102257473A (zh) | 高基数字乘法器 | |
CN109542393B (zh) | 一种近似4-2压缩器及近似乘法器 | |
He et al. | A new redundant binary booth encoding for fast $2^{n} $-bit multiplier design | |
CN105183425B (zh) | 一种具有高精度低复杂度特性的固定位宽乘法器 | |
CN101382882B (zh) | 一种基于CTGAL的Booth编码器及绝热补码乘累加器 | |
CN110058840A (zh) | 一种基于4-Booth编码的低功耗乘法器 | |
CN102270110B (zh) | 一种改进的基16Booth编码器 | |
CN104090737B (zh) | 一种改进型部分并行架构乘法器及其处理方法 | |
CN104038770A (zh) | 一种基于随机计算的离散余弦变换实现方法及系统 | |
CN109343823A (zh) | 基于异步控制的浮点数加法器和浮点数的相加方法 | |
CN110955403B (zh) | 近似基-8布斯编码器及混合布斯编码的近似二进制乘法器 | |
CN101295237B (zh) | 求商和余数的高速除法器 | |
CN102184086B (zh) | 一种Booth编码器及乘法器 | |
WO2018204898A1 (en) | Fast binary counters based on symmetric stacking and methods for same | |
CN107092462B (zh) | 一种基于fpga的64位异步乘法器 | |
CN102253822B (zh) | 一种模(2^n-3)乘法器 | |
CN101866278B (zh) | 一种异步迭代的64位整型乘法器及其计算方法 | |
CN109101219A (zh) | 高基数子集代码乘法器架构 | |
CN112508174B (zh) | 面向权重二值型神经网络的预计算逐列卷积计算单元 | |
CN115079996A (zh) | 基于全并行硬件逻辑的超高速流水线式五点中值滤波方法 | |
CN113360131A (zh) | 面向卷积神经网络加速器的对数近似乘累加器 | |
CN210109863U (zh) | 乘法器、装置、神经网络芯片及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130612 Termination date: 20190630 |