发明名称 一种基于改进部分积阵列的修正Booth编码乘法器
摘要 本发明提出了一种用于改进部分积阵列数目的修正Booth乘法器的电路结构。该电路结构针对修正Booth编码产生的部分积,将额外的一行纠错字与第一行和最后一行部分积相加运算,以最短的路径传递到最高位,消除了额外的一行纠错字,减少了一级部分积压缩,有效地提高了乘法器速度。
申请公布号 CN105739945A 申请公布日期 2016.07.06
申请号 CN201610046002.3 申请日期 2016.01.22
申请人 南京航空航天大学 发明人 崔晓平;董文雯;王书敏;张柳
分类号 G06F7/53(2006.01)I 主分类号 G06F7/53(2006.01)I
代理机构 南京瑞弘专利商标事务所(普通合伙) 32249 代理人 陈琛
主权项 一种基于改进部分积阵列的修正Booth编码乘法器,其特征在于,包括修正Booth编码乘法器阵列电路结构和改进部分积阵列电路结构;设被乘数A=a<sub>n‑1</sub>……a<sub>0</sub>,乘数B=b<sub>n‑1</sub>……b<sub>0</sub>,S<sub>0</sub>为第一行部分积的符号位,n为被乘数和乘数的位数;所述改进部分积阵列电路结构包括第一至第二异或门,第一与门,第一至第六与非门,第一2选1数据选择器;所述第一异或门包括两个输入端,用于输入b<sub>n‑2</sub>和b<sub>n‑3</sub>;所述第一与门包括两个输入端,用于输入所述第一异或门的输出信号和a<sub>0</sub>;所述第一与非门包括三个输入端,用于输入a<sub>0</sub>、<img file="FDA0000912235330000011.GIF" wi="89" he="83" />和<img file="FDA0000912235330000012.GIF" wi="107" he="87" />所述第二异或门包括两个输入端,用于输入a<sub>0</sub>和a<sub>1</sub>;所述第二与非门包括三个输入端,用于输入a<sub>0</sub>、b<sub>n‑2</sub>和b<sub>n‑3</sub>;所述第三与非门包括两个输入端,用于输入第一异或门的输出信号和第二异或门的输出信号;所述第四与非门包括两个输入端,用于输入a<sub>1</sub>和第一异或门的输出信号;所述第五与非门包括两个输入端,用于输入第三与非门的输出信号和第一与非门的输出信号;所述第六与非门包括两个输入端,用于输入第四与非门和第二与非门的输出信号;所述第一2选1数据选择器包括两个数据输入端和一个选择控制信号输入端,两个数据输入端用于输入第五与非门的输出信号和第六与非门的输出信号,选择控制信号输入端用于输入b<sub>n‑1</sub>;所述第一与门的输出信号为部分积阵列最后一行部分积的第0位,即p<sub>t0</sub>;所述第一2选1数据选择器的输出信号为部分积阵列最后一行部分积的第1位,即p<sub>t1</sub>;其公式分别如下式所示:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>p</mi><mrow><mi>t</mi><mn>0</mn></mrow></msub><mo>=</mo><msub><mi>a</mi><mn>0</mn></msub><mo>&CenterDot;</mo><mrow><mo>(</mo><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>&CirclePlus;</mo><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000912235330000013.GIF" wi="438" he="75" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>p</mi><mrow><mi>t</mi><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&CenterDot;</mo><mover><mrow><mover><mrow><mover><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>&OverBar;</mo></mover><mover><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub><mo>&OverBar;</mo></mover><msub><mi>a</mi><mn>0</mn></msub></mrow><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><mrow><mo>(</mo><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>&CirclePlus;</mo><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub></mrow><mo>)</mo></mrow><mrow><mo>(</mo><mrow><msub><mi>a</mi><mn>1</mn></msub><mo>&CirclePlus;</mo><msub><mi>a</mi><mn>0</mn></msub></mrow><mo>)</mo></mrow></mrow><mo>&OverBar;</mo></mover></mrow><mo>&OverBar;</mo></mover><mo>+</mo><mover><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub><msub><mi>a</mi><mn>0</mn></msub></mrow><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><msub><mi>a</mi><mn>1</mn></msub><mrow><mo>(</mo><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>&CirclePlus;</mo><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub></mrow><mo>)</mo></mrow></mrow><mo>&OverBar;</mo></mover></mrow><mo>&OverBar;</mo></mover></mrow>]]></math><img file="FDA0000912235330000014.GIF" wi="1490" he="108" /></maths>所述改进部分积阵列电路结构包括第二与门,第一至第二或非门,第七至第十与非门,第二至第五2选1数据选择器;所述第一或非门包括两个输入端,用于输入<img file="FDA0000912235330000015.GIF" wi="72" he="82" />和a<sub>0</sub>;所述第二或非门包括两个输入端,用于输入b<sub>n‑2</sub>和b<sub>n‑3</sub>;所述第七与非门包括两个输入端,用于输入b<sub>n‑2</sub>和b<sub>n‑3</sub>;所述第二2选1数据选择器包括两个数据输入端和一个选择控制信号输入端,两个数据输入端用于输入第七与非门的输出信号和第二或非门的输出信号,选择控制信号输入端用于输入a<sub>1</sub>;所述第二与门包括两个输入端,用于输入第一或非门的输出信号和第二2选1数据选择器的输出信号;所述第八与非门包括三个输入端,用于输第二或非门的输出信号、<img file="FDA0000912235330000016.GIF" wi="54" he="83" />和b<sub>n‑1</sub>;所述第九与非门包括三个输入端,用于输入第七与非门的输出信号、<img file="FDA0000912235330000017.GIF" wi="58" he="83" />和b<sub>n‑1</sub>;所述第三2选1数据选择器包括两个数据输入端和一个选择控制信号输入端,两个数据输入端用于输入第八与非门的输出信号和第九与非门的输出信号,选择控制信号输入端用于输入a<sub>1</sub>;所述第四2选1数据选择器包括两个数据输入端和一个选择控制信号输入端,两个数据输入端用于输入第二与门的输出信号和第三2选1数据选择器的输出信号,选择控制信号输入端用于输入S<sub>0</sub>;所述第十与非门包括两个输入端,用于输入S<sub>0</sub>和第三2选1数据选择器的输出信号;所述第五2选1数据选择器输入端包括两个数据输入端和一个选择控制信号输入端,两个数据输入端用于输入低电平0和第三2选1数据选择器的输出信号,选择控制信号输入端用于输入S<sub>0</sub>;所述第四2选1数据选择器的输出信号为部分积阵列的第一行部分积的三个补偿位的最低位,即H<sub>0</sub>;所述第五2选1数据选择器的输出信号为部分积阵列的第一行部分积的三个补偿位的中间位,即H<sub>1</sub>;所述第十与非门的的输出信号为部分积阵列的第一行部分积的三个补偿位的最高位,即H<sub>2</sub>;其公式分别如下式所示:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>H</mi><mn>0</mn></msub><mo>=</mo><mover><msub><mi>S</mi><mn>0</mn></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mover><mrow><mover><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&OverBar;</mo></mover><mo>+</mo><msub><mi>a</mi><mn>0</mn></msub></mrow><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mrow><mo>(</mo><mrow><mover><msub><mi>a</mi><mn>1</mn></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub></mrow><mo>&OverBar;</mo></mover><mo>+</mo><msub><mi>a</mi><mn>1</mn></msub><mo>&CenterDot;</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>+</mo><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub></mrow><mo>&OverBar;</mo></mover></mrow><mo>)</mo></mrow><mo>+</mo><msub><mi>s</mi><mn>0</mn></msub><mrow><mo>(</mo><mrow><mover><msub><mi>a</mi><mn>1</mn></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&CenterDot;</mo><mover><msub><mi>a</mi><mn>0</mn></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub></mrow><mo>&OverBar;</mo></mover></mrow><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>+</mo><msub><mi>a</mi><mn>1</mn></msub><mrow><mo>(</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&CenterDot;</mo><mover><msub><mi>a</mi><mn>0</mn></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>+</mo><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub></mrow><mo>&OverBar;</mo></mover></mrow><mo>&OverBar;</mo></mover><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000912235330000021.GIF" wi="1782" he="115" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>H</mi><mn>1</mn></msub><mo>=</mo><msub><mi>S</mi><mn>0</mn></msub><mrow><mo>(</mo><mover><msub><mi>a</mi><mn>1</mn></msub><mo>&OverBar;</mo></mover><mo>(</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&CenterDot;</mo><mover><msub><mi>a</mi><mn>0</mn></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>-</mo><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub></mrow><mo>&OverBar;</mo></mover></mrow><mo>&OverBar;</mo></mover><mo>)</mo><mo>+</mo><msub><mi>a</mi><mn>1</mn></msub><mo>(</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&CenterDot;</mo><mover><msub><mi>a</mi><mn>0</mn></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>+</mo><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub></mrow><mo>&OverBar;</mo></mover></mrow><mo>&OverBar;</mo></mover><mo>)</mo><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000912235330000022.GIF" wi="1091" he="115" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>H</mi><mn>2</mn></msub><mo>=</mo><mover><mrow><msub><mi>S</mi><mn>0</mn></msub><mrow><mo>(</mo><mover><msub><mi>a</mi><mn>1</mn></msub><mo>&OverBar;</mo></mover><mo>(</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&CenterDot;</mo><mover><msub><mi>a</mi><mn>0</mn></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub></mrow><mo>&OverBar;</mo></mover></mrow><mo>&OverBar;</mo></mover><mo>)</mo><mo>+</mo><msub><mi>a</mi><mn>1</mn></msub><mo>(</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&CenterDot;</mo><mover><msub><mi>a</mi><mn>0</mn></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></msub><mo>+</mo><msub><mi>b</mi><mrow><mi>n</mi><mo>-</mo><mn>3</mn></mrow></msub></mrow><mo>&OverBar;</mo></mover></mrow><mo>&OverBar;</mo></mover><mo>)</mo><mo>)</mo></mrow></mrow><mo>&OverBar;</mo></mover></mrow>]]></math><img file="FDA0000912235330000023.GIF" wi="1090" he="137" /></maths>通过改进部分积阵列电路结构使得编码乘法器进行修正Booth编码的同时产生的部分积阵列减少了一行符号位纠错字。
地址 210016 江苏省南京市秦淮区御道街29号