CN113872608A - 一种基于Xilinx FPGA原语的Wallace树压缩器 - Google Patents

一种基于Xilinx FPGA原语的Wallace树压缩器 Download PDF

Info

Publication number
CN113872608A
CN113872608A CN202111453128.XA CN202111453128A CN113872608A CN 113872608 A CN113872608 A CN 113872608A CN 202111453128 A CN202111453128 A CN 202111453128A CN 113872608 A CN113872608 A CN 113872608A
Authority
CN
China
Prior art keywords
compressor
module
bit
carry
output
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.)
Granted
Application number
CN202111453128.XA
Other languages
English (en)
Other versions
CN113872608B (zh
Inventor
周斌
汪光森
李卫超
王康
柳青
王志伟
张振宇
杜金鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Naval University of Engineering PLA
Original Assignee
Naval University of Engineering PLA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Naval University of Engineering PLA filed Critical Naval University of Engineering PLA
Priority to CN202111453128.XA priority Critical patent/CN113872608B/zh
Publication of CN113872608A publication Critical patent/CN113872608A/zh
Application granted granted Critical
Publication of CN113872608B publication Critical patent/CN113872608B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)

Abstract

本发明提供了一种基于Xilinx FPGA原语的Wallace树压缩器,由树型压缩结构和最终求和单元组成;树型压缩结构将多个二进制数压缩至两或者三个输出,求和模块将压缩结果相加输出最终结果。所述树型压缩结构以4:2压缩器为基本压缩单元,必要时配合以3:2压缩器。所述4:2压缩器的bit级结构包括LUT6‑2模块、第一muxcy模块与第一xorcy模块各一个,由Xilinx FPGA原语调用;LUT6‑2模块被配置为两个共输入且独立输出的LUT5,可以实现两个独立的二进制函数;第一muxcy模块与第一xorcy模块为CLB中的专用进位逻辑资源,两者被配置成一个3:2压缩器。按相同的思路设计了一种3:1压缩器作为Wallace树的最终求和单元。本发明用于实现多操作数加减法操作,不仅极大地提高了硬件资源的利用率,还减小了Wallace树的整体延迟与功耗。

Description

一种基于Xilinx FPGA原语的Wallace树压缩器
技术领域
本发明属于可编程逻辑芯片应用技术领域,具体涉及一种基于Xilinx FPGA原语的Wallace树压缩器。
背景技术
Wallace树是由一系列压缩器构成的多级压缩结构,可以快速地完成多操作数的加减法操作,在并行硬件乘法、向量点乘等运算中广泛应用。Wallace本人最早提出的方案中是以压缩比为3:2的进位保存加法器(Carry Save Adder,CSA)作为基本模块构建了树型压缩结构。此后,Dadda提出了一种称为“j-k计数器”的新型压缩单元。在实际应用中,5-3计数器(即4:2压缩器)由于具有较好的平衡性和对称性,并拥有比CSA更高的压缩效率,成为目前乘法器中应用最广泛的压缩单元。
在硬件描述语言(Hardware Description Language,HDL)编写的代码进行程序综合(synthesis)时,一方面,综合的效果严重受制于代码的质量与风格,另一方面,FPGA的一些底层硬件模块甚至会限制综合器对其优化,这些往往导致综合器给出的结果不是最优的。原语(primitive)是FPGA集成开发环境提供的一种比HDL更加具体的硬件描述,与芯片底层具体的硬件模块直接对应,利用它能够获得更好的资源利用率或者更快的时序结果。
当前相关文献中报道的4:2压缩器硬件电路实现方法有两种:传统方法是直接将两个CSA串联,其结构如附图1所示,其中a,b,c,d表示4个输入,ci和co分别表示输入和输出的进位信号。CSA的本质是全加器(Full Adder,FA),关键路径为两级异或门逻辑。因此,该4:2压缩器产生进位信号C、伪和信号S分别需要两级和四级异或门的延迟,即进位信号必须等待伪和信号。这相当于延长了电路的时序,进而影响压缩树的整体压缩速度与功耗。
第二种实现方式如附图2所示,其中a,b,c,d表示4个输入,ci和co分别表示输入和输出的进位信号,采用基于2选1多路选择器的异或门逻辑优化传统方法的电路结构,保证伪和信号S和进位信号C能同时产生。此外,水平方向的进位链不会影响竖直方向的关键路径延迟,即产生S和C所需的时间不依赖于进位信号ci。优化后电路的关键路径为3个异或门逻辑,延迟约为一级CSA最大延迟的1.5倍,但是完成了两级CSA所做的压缩工作。S、C和co的产生逻辑分别为:
Figure 840267DEST_PATH_IMAGE001
然而,在FPGA综合器的作用下,上述两种4:2压缩器尽管实现方法不同,却拥有相同的资源消耗与相近的关键路径延迟。原因在于:无论采用哪种逻辑门电路设计,综合器最后都将至少用三个LUT实现4:2压缩器三个输出对应的二进制函数。
发明内容
本发明的目的就是为了解决上述背景技术存在的不足,提供一种基于XilinxFPGA原语的Wallace树压缩器,以实现对FPGA硬件资源的最大化利用,减小Wallace树的整体延迟与功耗。
本发明采用的技术方案是:一种基于Xilinx FPGA原语的Wallace树压缩器,包括按照层级分布构成的树型压缩结构和求和模块,树型压缩结构将多个二进制数输入压缩至两或者三个输出,求和模块将树型压缩结构的压缩结果相加输出最终结果;树型压缩结构的每一层包含一个或者多个压缩单元,各压缩单元彼此并行;每层压缩单元的输入为上一层压缩单元的输出,每层压缩单元的输出为下一层压缩单元的输入,上下层间串行;所述树型压缩结构以4:2压缩器为基本的压缩单元,将四个输入压缩为两个输出;所述4:2压缩器输入为4个相同权值的多位宽二进制数,输出为权值分别为1的伪和与权值分别为2的进位,输出与输入同位宽;每个4:2压缩器产生的权值为1的伪和与权值为2的进位经过移位对齐后作为下层压缩单元的输入;
如果输入的二进制数位宽为n个bit,则每个4:2压缩器对应配置有n个相同的依次从低位到高位排列的4:2压缩器bit级结构;所述4:2压缩器bit级结构的输入为4个权值为1的输入和一个来自相邻低位4:2压缩器bit级结构的进位,输出为1个权值为1的伪和、1个权值为2的进位和1个权值为1的进位;n个4:2压缩器bit级结构输出的伪和与权值为2的进位依次对应整个4:2压缩器输出的n bit伪和与n bit进位;每个4:2压缩器bit级结构权值为1的进位传给相邻高位的4:2压缩器bit级结构,作为其进位输入;所述4:2压缩器bit级结构包括一个LUT6-2模块、一个第一muxcy模块与一个第一xorcy模块,由Xilinx FPGA原语调用;LUT6-2模块被配置为两个共输入且独立输出的LUT5,第一muxcy模块与第一xorcy模块为CLB(Configurable Logic Block,可配置逻辑模块 )中的专用进位逻辑资源,两者共同构建成一个3:2压缩器,两个LUT5和3:2压缩器分别用于实现4:2压缩器三个输出所对应的二进制函数。
上述技术方案中,所述LUT6-2模块基于接收到的来自上一层压缩单元的3个相同权值的输入和来自相邻低位4:2压缩器bit级结构的进位,输出一个传递至相邻高位4:2压缩器bit级结构的进位和一个传递至第一muxcy模块与第一xorcy模块的中间量;第一muxcy模块基于接收到的另一个来自上一层压缩单元的权值为1的输入和中间量,输出一个权值为2的进位,该进位经过移位对齐后输出至下一层压缩单元;第一xorcy模块基于接收到的另一个来自上一层压缩单元的权值为1的输入和中间量,输出一个权值为1的伪和至下一层压缩单元;所有最低位的4:2压缩器bit级结构对应的进位输入为零。
上述技术方案中,树型压缩结构的每一层所需压缩单元的类型、数量与位宽根据输入的二进制数配置,以4:2压缩器为基础压缩单元,二进制数的数量不满足4的倍数时,配合使用3:2压缩器作为压缩单元;位于同一层的压缩单元间彼此并行。
上述技术方案中,根据树型压缩结构底层的压缩单元输出的最终压缩结果的数量决定求和模块采用2:1压缩器或者3:1压缩器。
上述技术方案中,如果输入的二进制数位宽为n个bit,则每个3:1压缩器对应配置有n个依次从低位到高位排列的3:1压缩器bit级结构;所述3:1压缩器bit级结构的输入为3个权值为1的输入和2个来自相邻低位3:1压缩器bit级结构的低进位信号,输出为1个权值为1的伪和2个高进位信号;n个3:1压缩器bit级结构输出的最终压缩结果依次对应整个3:1压缩器输出的n bit最终压缩结果;所述3:1压缩器压缩器bit级结构包含一个LUT4模块、一个LUT3模块、一个第二muxcy模块与一个第二xorcy模块;来自树型压缩结构底层的压缩单元的3个输入同时是LUT4模块和LUT3模块的输入;来自相邻低位3:1压缩器bit级结构的低进位信号作为LUT4模块的第四个输入,LUT4模块根据4个输入产生的中间量输出至第二muxcy模块与第二xorcy模块;LUT3模块根据3个输入产生1个高进位信号输出至相邻高位3:1压缩器bit级结构的LUT4模块和第二muxcy模块,作为其低进位信号;来自相邻低位3:1压缩器bit级结构的2个低进位信号和中间量共同构成第二muxcy模块的3个输入,第二muxcy模块基于3个输入产生一个高进位信号输出至相邻高位3:1压缩器bit级结构的第二muxcy模块和第二xorcy模块,作为其低进位信号;自相邻低位3:1压缩器bit级结构的低进位信号和中间量共同构成第二xorcy模块的2个输入,第二xorcy模块输出权值为1的伪和。
上述技术方案中,所述2:1采用基于专用进位链的进位传播加法器。
上述技术方案中,所述4:2压缩器bit级结构中,LUT6-2模块输出的中间量s逻辑表达式为:s=ci⊕b⊕c⊕d,
LUT6-2模块输出的进位co逻辑表达式为:
co=(b&c)||(c&d)||(b&d);
第一xorcy模块输出的伪和S逻辑表达式为:
S =a⊕ci⊕b⊕c⊕d;
第一muxcy模块输出的进位C逻辑表达式为:
C=(ci&(b⊕c⊕d))||(a||(ci⊕b⊕c⊕d));
其中,ci表示由相邻低位4:2压缩器bit级结构输入的进位信号,co表示输出给相邻高位4:2压缩器bit级结构的进位信号;a,b,c,d分别表示4个相同权值的输入;ci、co的下标表示input和output。
上述技术方案中,所述3:1压缩器bit级结构中,LUT4模块输出的中间量s’逻辑表达式为:s’=ci1⊕a’⊕b’⊕c’;
LUT3模块输出的高进位信号co1逻辑表达式为:
co1=(a’&b’)||(b’&c’)||(a’&c’);
第二xorcy模块输出的伪和S’逻辑表达式为:
S’=ci2⊕ci1⊕a’⊕b’⊕c’;
第二muxcy模块输出的高进位信号co2逻辑表达式为:
co2=(ci1&(a’⊕b’⊕c’))||(ci2||(ci1⊕a’⊕b’⊕c’));
其中,ci1由相邻低位3:1压缩器bit级结构中LUT3模块输入的低进位信号;ci2表示由相邻低位3:1压缩器bit级结构中第二muxcy模块输入的低进位信号;a’,b’,c’分别表示3个相同权值的输入。
本发明的有益效果是:
现有技术的4:2压缩器设计至少消耗三个LUT资源,对应两级LUT的延迟,而本发明提出的基于Xilinx原语的4:2压缩器设计只消耗一个LUT资源,并充分利用了CLB中的muxcy和xorcy资源。因此以本发明所提4:2压缩器构建的Wallace树在面积、延迟和功耗方面都远小于现有技术。
本发明提出的3:1压缩器作为Wallace树的最终求和模块,其资源消耗和延迟性能都远优于当前CSA串联CPA的三操作数相加方法,进一步降低了Wallace树的硬件开销和整体延迟。
附图说明
图1为4:2压缩器现有实现方法之一的原理图;
其中,a,b,c,d表示4个输入,ci和co分别表示输入和输出的进位信号,S表示输出的伪和信号,C表示输出的进位信号。
图2为4:2压缩器现有实现方法之二的原理图;
其中,a,b,c,d表示4个输入,ci和co分别表示输入和输出的进位信号,S表示输出的伪和信号,C表示输出的进位信号。
图3为本发明Wallace树的结构示意图。
图4为本发明4:2压缩器bit级的结构示意图。
图5为现有技术中三操作数加法实现方法的原理图;
其中, a,b,c表示3个输入, S表示CSA输出的伪和信号,C表示CSA输出的进位信号,R表示CPA输出的计算结果。
图6为本发明3:1压缩器bit级的结构示意图。
其中,101-4:2压缩器,102-3:2压缩器,103-2:1压缩器,104-3:1压缩器,201-LUT6-2模块,202-第一muxcy模块,203-第一xorcy模块,301-LUT4模块,302-LUT3模块,303-第二muxcy模块,304-第二xorcy模块。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的详细说明,便于清楚地了解本发明,但它们不对本发明构成限定。
如图3所示,本发明一种基于Xilinx FPGA原语的Wallace树压缩器,包括由多个压缩单元按照层级分布构成的树型压缩结构和求和单元,树型压缩结构将多个二进制数输入压缩至两或者三个输出,求和模块将压缩结果相加输出最终结果;多个二进制数经由树型压缩结构的多个压缩单元压缩后,底层的压缩单元输出压缩结果;求和模块将压缩结果相加得出最终结果。树型压缩结构的每一层包含一个或者多个压缩单元,各压缩单元彼此并行。顶层的压缩单元的输入为多个二进制数,顶层的压缩单元的输出为下一层压缩单元的输入;每层压缩单元的的输入为上一层压缩单元的输出,每层压缩单元的的输出为下一层压缩单元的输入,上下层间串行。所述树型压缩结构以4:2压缩器为基本的压缩单元,所述4:2压缩器将四个输入压缩为两个输出。4:2压缩器101接收4个相同权值的二进制数,输出为权值为1的伪和、权值为2的进位。由于进位的权值为2,所以要经过左移操作(最低位补零)才能与权值为1的伪和S共同作为下层压缩单元的输入。4:2压缩器101作为基本压缩单元,求和模块为2:1压缩器103或者3:1压缩器104,在输入和中间结果的数量受限时也会结合使用3:2压缩器102作为基本压缩单元。
层与层之间只有上层压缩单元的输出作为下层压缩单元的输入,权值为1的伪和S和权值为2的进位C经过移位对齐后,与同层另一个4:2压缩器产生的伪和S和进位C共同构成下层压缩单元中的4:2压缩器的4个输入。
如果输入的二进制数位宽为n个bit,则每个4:2压缩器对应配置有n个依次从低位到高位排列的4:2压缩器bit级结构;所述4:2压缩器bit级结构的输入为来自上层压缩单元的4个权值为1的输入和一个来自相邻低位4:2压缩器bit级结构的进位,输出的1个权值为1的伪和、1个权值为2的进位传递给下层压缩单元,输出的1个权值为1的进位传递给相邻高位的4:2压缩器bit级结构。n个4:2压缩器bit级结构输出的伪和与权值为2的进位依次对应整个4:2压缩器输出的n bit伪和与n bit进位。在水平方向有权值为1的进位从低位4:2压缩器bit级结构传给高位4:2压缩器bit级结构,但是处在最低位的4:2压缩器bit级结构是没有该进位输入的,为0。所述4:2压缩器bit级结构包括LUT6-2模块、第一muxcy模块与第一xorcy模块;LUT6-2单元被配置为两个共输入且独立输出的LUT5;第一muxcy模块与第一xorcy模块构成一个3:2压缩器;一个3:2压缩器和两个LUT5模块分别用于实现4:2压缩器三个输出所对应的二进制函数。如果输入的二进制数位宽为n个bit,则每个3:1压缩器对应配置有n个依次从低位到高位水平排列的3:1压缩器bit级结构。
此处以9个4bit宽的二进制数为例(1110、1101、1011、0111、1001、1101、1011、0111、1001)简要介绍压缩树的原理。首先,由于是9个输入,每个输入位宽为4,那么第一层就需要2个4bit位宽的4:2压缩器将8个输入压缩为4个输出(2个伪和S、两个进位C),两个4:2压缩器之间是并行的、互不相干。
8个输入对应两个4:2压缩器的输入,第九个输入在前面先不处理保留至最后的3:1压缩器时才运算。即,树型压缩结构的层级为:
第一层:输入4 + 4 + 1个二进制数至两个4:2压缩器,输出2 + 2 + 1个二进制数;
第二层:输入4 + 1 个二进制数至一个4:2压缩器,输出:2 + 1个二进制数;
第三层:输入3 个二进制数至一个3:1压缩器,输出:一个最终结果。
其次,由于进位C的权值为2,因此两个进位C需要左移1bit(1变为10),移位后的4个结果作为第二层压缩单元中4:2压缩器的输入。图4、图6所描述的设计图是bit级的所举例中的4:2压缩器处理的数是4bit宽,那么意味着每个4:2压缩器内部有4个图4所示的4:2压缩器bit级结构,这四个结构虽然也是并行的,但是在水平方向是存在低位向高位的进位的,比如1110、1101、1011、0111次高位对应压缩结构的输入不仅是1、1、0、1本身,还要考虑低位1、0、1、1相加产生的进位。3:1压缩器的内部设计同理。
如图4所示,4:2压缩器bit级结构实际上有五个权1的输入(来自上级压缩单元的4个输入a、b、c、d以及来自相邻低位4:2压缩器bit级结构的进位ci),两个权2的输出(进位C,进位co)和一个权1的输出(伪和S),但是进位ci、co需要参与水平方向的进位传递,竖直方向可以实现的压缩比为4:2,因而称其为4:2压缩器bit级结构;
4:2压缩器bit级结构将四个权值为1的输入压缩为一个权值为1的伪和S与一个权值为2的进位C,3:2压缩器bit级结构将三个权值为1的输入压缩为一个权值为1的伪和S与一个权值为2的进位C;上层压缩单元产生的伪和S与进位C过移位对齐后,被作为下层压缩单元的输入,以此类推构建树型压缩结构。
所述4:2压缩器bit级结构借助Xilinx FPGA的LUT6-2原语将底层的CLB内六输入查找表(LUT6)资源配置为两个共输入、独立输出的LUT5,相当于两个独立的LUT5资源。利用muxcy 、xorcy原语将CLB内的专用快速进位逻辑构建为一个3:2压缩器。两个LUT5、一个3:2压缩器分别用于实现4:2压缩器三个输出所对应的二进制函数,共同构建一种新的4:2压缩器。
由于LUT6-2模块201可以完成两个独立的二进制函数,即相当于两个LUT5,它的四个输入分别为b、c、d以及来自相邻低位4:2压缩器bit级结构的进位ci,它的两个输出中的co作为相邻高位4:2压缩器bit级结构的进位,中间量s作为第一muxcy模块202的选择信号与第一xorcy模块203的一个输入;第一muxcy模块202的两个输入分别为a和来自相邻低位4:2压缩器bit级结构的进位ci,输出权值为2的进位C;第一xorcy模块203的另一个输入为a,输出为权1的伪和S。
LUT6-2模块201两个输出中间量s与进位co对应的逻辑表达式为:s=ci⊕b⊕c⊕d;co=(b&c)||(c&d)||(b&d),分别对应一个LUT4资源和一个LUT3资源;可以看出,进位信号co的产生只取决于输入b、c和d,也只限于影响相邻高位4:2压缩器bit级结构的输出,不会进一步向高位传递。第一muxcy模块202与第一xorcy模块203在中间量s的配合下实际上构成了一个3:2压缩器,对应一个LUT3资源,进位ci、输入a和中间量s为三个输入,两个输出伪和S、进位C对应的逻辑表达式分别为:S =a⊕ci⊕b⊕c⊕d;C=(ci&(b⊕c⊕d))||(a||(ci⊕b⊕c⊕d))。
所述4:2压缩器bit级结构共消耗一个LUT、一个muxcy和一个xorcy,这三种硬件资源在Xilinx FPGA CLB中的比例为1:1:1,因此资源的利用率相比现有消耗三个LUT的方法大幅提高;同时,所述4:2压缩器bit级结构在水平方向的进位只会传递给临高位且不会影响关键路径,竖直方向上的关键路径为一个LUT和一个muxcy。
求和模块为2:1压缩器103还是3:1压缩器104由树型压缩结构最终输出的伪和S、进位C数量决定;2:1压缩器103采用普通的基于专用进位链的进位传播加法器(CarryPropagation Adder,CPA),3:1压缩器104采用借助Xilinx FPGA原语实现的三元加法器。
所述求和模块在最终压缩结果的数量为2时由一个普通的基于专用进位链的CPA实现,在最终压缩结果的数量为3时由一个3:1压缩器实现。
例如:输入的多个二进制数经过层层压缩后产生的结果要么为2要么为3,在输入的二进制数的数量为(4n+1)时(比如5),可以用一个4:2压缩器将数量由5压缩为3,最后再由3:1压缩器压缩为1。3:1压缩器和2:1压缩器只会出现一个,如果出现的话一定是以最底层的求和单元出现的。
如果输入的二进制数位宽为n个bit,则每个3:1压缩器对应配置有n个依次从低位到高位排列的3:1压缩器bit级结构;所述3:1压缩器bit级结构的输入为3个权值为1的输入和2个来自相邻低位3:1压缩器bit级结构的低进位信号,输出为1个权值为1的伪和2个高进位信号;n个3:1压缩器bit级结构输出的伪和依次对应整个3:1压缩器输出的n bit伪和。
所述3:1压缩器bit级结构采用一个LUT4模块和一个LUT3模块替换4:2压缩器bit级结构中LUT6-2模块,目的是切断基于LUT的进位链,保证低进位通过第二muxcy模块和第二xorcy模块构成的进位链一直向高位传递。
如图6所示,所述3:1压缩器bit级结构包含一个LUT4模块301、一个LUT3模块302、一个第二muxcy模块303与一个第二xorcy模块304,同样有五个输入(来自底层压缩单元的a’、b’、c’和来自相邻低位3:1压缩器bit级结构的进位信号ci1、ci2)和三个输出(最终结果S’、输出至相邻高位3:1压缩器bit级结构的进位信号co1和co2)。a’、b’、c’同时是LUT4模块301和LUT3模块302的输入;低进位信号ci1作为LUT4模块301的第四个输入,产生的输出中间量s’连接到第二muxcy模块303的信号选择端口与第二xorcy模块304的输入端口;低进位ci1信号与另一个低进位信号ci2共同构成第二muxcy模块303的两个输入,产生一个高进位信号co2。LUT3模块302输出高进位信号co1
3:1压缩器bit级结构采用一个LUT4模块301和一个LUT3模块302替换4:2压缩器bit级结构中LUT6-2模块201,这样进位信号只能通过muxcy模块202和xorcy模块203。构成的专用进位链传递;各输出的逻辑表达式同4:2压缩器101。
所述3:1压缩器bit级结构中,LUT4模块输出的中间量s’逻辑表达式为:s’=ci1⊕a’⊕b’⊕c’;
LUT3模块输出的高进位信号co1逻辑表达式为:
co1=(a’&b’)||(b’&c’)||(a’&c’);
第二xorcy模块输出的伪和S’逻辑表达式为:
S’=ci2⊕ci1⊕a’⊕b’⊕c’;
第二muxcy模块输出的高进位信号co2逻辑表达式为:
co2=(ci1&(a’⊕b’⊕c’))||(ci2||(ci1⊕a’⊕b’⊕c’))。
所述3:1压缩器bit级结构共消耗两个LUT、一个muxcy和一个xorcy,以只比CPA多消耗一个LUT资源的代价就完成了三个操作数的相加,由于利用了CLB内部的进位逻辑构建了进位链,因此拥有几乎与CPA相等的总延迟。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (8)

1.一种基于Xilinx FPGA原语的Wallace树压缩器,其特征在于:包括按照层级分布构成的树型压缩结构和求和模块,树型压缩结构将多个二进制数输入压缩至两或者三个输出,求和模块将树型压缩结构的压缩结果相加输出最终结果;树型压缩结构的每一层包含一个或者多个压缩单元,各压缩单元彼此并行;每层压缩单元的输入为上一层压缩单元的输出,每层压缩单元的输出为下一层压缩单元的输入,上下层间串行;所述树型压缩结构以4:2压缩器为基本的压缩单元;所述4:2压缩器输入为4个相同权值的多位宽二进制数,输出为权值为1的伪和与权值为2的进位,输出与输入同位宽;每个4:2压缩器产生的权值为1的伪和与权值为2的进位经过移位对齐后作为下层压缩单元的输入;
如果输入的二进制数位宽为n个bit,则每个4:2压缩器对应配置有n个相同的依次从低位到高位排列的4:2压缩器bit级结构;所述4:2压缩器bit级结构的输入为4个权值为1的输入和一个来自相邻低位4:2压缩器bit级结构的进位,输出为1个权值为1的伪和、1个权值为2的进位和1个权值为1的进位;n个4:2压缩器bit级结构输出的伪和与权值为2的进位依次对应整个4:2压缩器输出的n bit伪和与n bit进位;每个4:2压缩器bit级结构权值为1的进位传给相邻高位的4:2压缩器bit级结构,作为其进位输入;所述4:2压缩器bit级结构包括一个LUT6-2模块、一个第一muxcy模块与一个第一xorcy模块;LUT6-2模块被配置为两个共输入且独立输出的LUT5,第一muxcy模块与第一xorcy模块为CLB中的专用进位逻辑资源,两者共同构建成一个3:2压缩器,两个LUT5和3:2压缩器分别用于实现4:2压缩器三个输出所对应的二进制函数。
2.根据权利要求1所述的一种基于Xilinx FPGA原语的Wallace树压缩器,其特征在于:所述LUT6-2模块基于接收到的来自上一层压缩单元的3个相同权值的输入和来自相邻低位4:2压缩器bit级结构的进位,输出一个传递至相邻高位4:2压缩器bit级结构的进位和一个传递至第一muxcy模块与第一xorcy模块的中间量;第一muxcy模块基于接收到的另一个来自上一层压缩单元的权值为1的输入和中间量,输出一个权值为2的进位,该进位经过移位对齐后输出至下一层压缩单元;第一xorcy模块基于接收到的另一个来自上一层压缩单元的权值为1的输入和中间量,输出一个权值为1的伪和至下一层压缩单元;所有最低位的4:2压缩器bit级结构对应的进位输入为零。
3.根据权利要求1所述的一种基于Xilinx FPGA原语的Wallace树压缩器,其特征在于:树型压缩结构的每一层所需压缩单元的类型、数量与位宽根据输入的二进制数配置,以4:2压缩器为基础压缩单元,二进制数的数量不满足4的倍数时,配合使用3:2压缩器作为压缩单元;位于同一层的压缩单元间彼此并行。
4.根据权利要求1所述的一种基于Xilinx FPGA原语的Wallace树压缩器,其特征在于:根据树型压缩结构底层的压缩单元输出的最终压缩结果的数量决定求和模块采用2:1压缩器或者3:1压缩器。
5.根据权利要求4所述的一种基于Xilinx FPGA原语的Wallace树压缩器,其特征在于:如果输入的二进制数位宽为n个bit,则每个3:1压缩器对应配置有n个依次从低位到高位排列的3:1压缩器bit级结构;所述3:1压缩器bit级结构的输入为3个权值为1的输入和2个来自相邻低位3:1压缩器bit级结构的低进位信号,输出为1个权值为1的伪和2个高进位信号;n个3:1压缩器bit级结构输出的伪和依次对应整个3:1压缩器输出的n bit结果;所述3:1压缩器bit级结构包含一个LUT4模块、一个LUT3模块、一个第二muxcy模块与一个第二xorcy模块;来自树型压缩结构底层压缩单元的3个输入同时是LUT4模块和LUT3模块的输入;来自相邻低位3:1压缩器bit级结构的低进位信号作为LUT4模块的第四个输入,LUT4模块根据4个输入产生的中间量输出至第二muxcy模块与第二xorcy模块;LUT3模块根据3个输入产生1个高进位信号输出至相邻高位3:1压缩器bit级结构的LUT4模块和第二muxcy模块,作为其低进位信号;来自相邻低位3:1压缩器bit级结构的2个低进位信号和中间量共同构成第二muxcy模块的3个输入,第二muxcy模块基于3个输入产生一个高进位信号输出至相邻高位3:1压缩器bit级结构的第二muxcy模块和第二xorcy模块,作为其低进位信号;相邻低位3:1压缩器bit级结构的低进位信号和中间量共同构成第二xorcy模块的2个输入,第二xorcy模块输出最终压缩结果。
6.根据权利要求4所述的一种基于Xilinx FPGA原语的Wallace树压缩器,其特征在于:所述2:1采用基于专用进位链的进位传播加法器。
7.根据权利要求2所述的一种基于Xilinx FPGA原语的Wallace树压缩器,其特征在于:所述4:2压缩器bit级结构中,LUT6-2模块输出的中间量s逻辑表达式为:s=ci⊕b⊕c⊕d,
LUT6-2模块输出的进位co逻辑表达式为:
co=(b&c)||(c&d)||(b&d);
第一xorcy模块输出的伪和S逻辑表达式为:
S =a⊕ci⊕b⊕c⊕d;
第一muxcy模块输出的进位C逻辑表达式为:
C=(ci&(b⊕c⊕d))||(a||(ci⊕b⊕c⊕d));
其中,ci表示由相邻低位4:2压缩器bit级结构输入的进位信号,co表示输出给相邻高位4:2压缩器bit级结构的进位信号;a,b,c,d分别表示4个相同权值的输入;ci、co的下标表示input和output。
8.根据权利要求5所述的一种基于Xilinx FPGA原语的Wallace树压缩器,其特征在于:所述3:1压缩器bit级结构中,LUT4模块输出的中间量s’逻辑表达式为:s’=ci1⊕a’⊕b’⊕c’;
LUT3模块输出的高进位信号co1逻辑表达式为:
co1=(a’&b’)||(b’&c’)||(a’&c’);
第二xorcy模块输出的最终压缩结果S’逻辑表达式为:
S’=ci2⊕ci1⊕a’⊕b’⊕c’;
第二muxcy模块输出的高进位信号co2逻辑表达式为:
co2=(ci1&(a’⊕b’⊕c’))||(ci2||(ci1⊕a’⊕b’⊕c’));
其中,ci1由相邻低位3:1压缩器bit级结构中LUT3模块输入的低进位信号;ci2表示由相邻低位3:1压缩器bit级结构中第二muxcy模块输入的低进位信号;a’,b’,c’分别表示3个相同权值的输入。
CN202111453128.XA 2021-12-01 2021-12-01 一种基于Xilinx FPGA原语的Wallace树压缩器 Active CN113872608B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111453128.XA CN113872608B (zh) 2021-12-01 2021-12-01 一种基于Xilinx FPGA原语的Wallace树压缩器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111453128.XA CN113872608B (zh) 2021-12-01 2021-12-01 一种基于Xilinx FPGA原语的Wallace树压缩器

Publications (2)

Publication Number Publication Date
CN113872608A true CN113872608A (zh) 2021-12-31
CN113872608B CN113872608B (zh) 2022-03-25

Family

ID=78985578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111453128.XA Active CN113872608B (zh) 2021-12-01 2021-12-01 一种基于Xilinx FPGA原语的Wallace树压缩器

Country Status (1)

Country Link
CN (1) CN113872608B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116126283A (zh) * 2023-02-02 2023-05-16 大连理工大学 一种fpga卷积加速器的资源占用率优化方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724276A (en) * 1996-06-17 1998-03-03 Xilinx, Inc. Logic block structure optimized for sum generation
US20070043802A1 (en) * 2005-07-20 2007-02-22 Stmicroelectronics ( Research & Development ) Ltd. Multiplication circuitry
US7274211B1 (en) * 2006-03-10 2007-09-25 Xilinx, Inc. Structures and methods for implementing ternary adders/subtractors in programmable logic devices
CN101178645A (zh) * 2007-12-20 2008-05-14 清华大学 一种并行浮点乘加单元
US7653677B1 (en) * 2005-01-26 2010-01-26 Xilinx, Inc. Digital logic circuit for adding three binary words and method of implementing same
CN112596699A (zh) * 2020-12-30 2021-04-02 海光信息技术股份有限公司 乘法器、处理器及电子设备
CN112997408A (zh) * 2018-11-13 2021-06-18 美高森美SoC公司 具有对计数器的改进的支持的fpga逻辑单元

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724276A (en) * 1996-06-17 1998-03-03 Xilinx, Inc. Logic block structure optimized for sum generation
US7653677B1 (en) * 2005-01-26 2010-01-26 Xilinx, Inc. Digital logic circuit for adding three binary words and method of implementing same
US20070043802A1 (en) * 2005-07-20 2007-02-22 Stmicroelectronics ( Research & Development ) Ltd. Multiplication circuitry
US7274211B1 (en) * 2006-03-10 2007-09-25 Xilinx, Inc. Structures and methods for implementing ternary adders/subtractors in programmable logic devices
CN101178645A (zh) * 2007-12-20 2008-05-14 清华大学 一种并行浮点乘加单元
CN112997408A (zh) * 2018-11-13 2021-06-18 美高森美SoC公司 具有对计数器的改进的支持的fpga逻辑单元
CN112596699A (zh) * 2020-12-30 2021-04-02 海光信息技术股份有限公司 乘法器、处理器及电子设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
K. SHI, D. BOLAND AND G. A. CONSTANTINIDES: "《Efficient FPGA implementation of digit parallel online arithmetic operators》", 《 2014 INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE TECHNOLOGY 》 *
N. VAN TOAN AND J. LEE: "《FPGA-Based Multi-Level Approximate Multipliers for High-Performance Error-Resilient Applications》", 《IN IEEE ACCESS,》 *
VORTEX: "《进位保留加法器与(m;n)压缩器》", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/368514294》 *
陈钦树,文爱军,雷海军: "《一种新型乘法累加器IP设计》", 《湖南工程学院学报(自然科学版)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116126283A (zh) * 2023-02-02 2023-05-16 大连理工大学 一种fpga卷积加速器的资源占用率优化方法
CN116126283B (zh) * 2023-02-02 2023-08-08 大连理工大学 一种fpga卷积加速器的资源占用率优化方法

Also Published As

Publication number Publication date
CN113872608B (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
Sureka et al. An efficient high speed Wallace tree multiplier
Guo et al. Fast binary counters and compressors generated by sorting network
Jagadeshwar Rao et al. A high speed wallace tree multiplier using modified booth algorithm for fast arithmetic circuits
CN101625634A (zh) 一种可重构的乘法器
CN112540743B (zh) 面向可重构处理器的有无符号乘累加器及方法
CN113872608B (zh) 一种基于Xilinx FPGA原语的Wallace树压缩器
Kandula et al. Area efficient vlsi architecture for square root carry select adder using zero finding logic
CN107092462B (zh) 一种基于fpga的64位异步乘法器
Nagamani et al. Quaternary high performance arithmetic logic unit design
Jangalwa et al. Design and Analysis of 8-Bit Multiplier for Low Power VLSI Applications
Laxman et al. FPGA implementation of different multiplier architectures
Natarajan et al. Low power high performance carry select adder
US7840628B2 (en) Combining circuitry
Sreelakshmi et al. Design and implementation of vinculum binary coded decimal multipliers using vinculum binary coded decimal compressors
Khatibzadeh et al. A novel design of a 6-GHz 8/spl times/8-b pipelined multiplier
Afreen et al. Design and implementation of area-delay-power efficient CSLA based 32-bit array multiplier
CN115857873B (zh) 乘法器、乘法计算方法、处理系统及存储介质
CN116126283B (zh) 一种fpga卷积加速器的资源占用率优化方法
Vishwanath Optimized Counter Design for Accelerated Summation in Digital Signal Processing Systems
CN111752528B (zh) 一种支持高效乘法运算的基本逻辑单元
Deng et al. 8-Bit NCL Asynchronous Multiplier based on Radix-4 Booth Algorithm
Kumar et al. Performance analysis of different multiplier architectures using 1-bit full adder structures
Satoh et al. Complex Multiplier suited for EPGA structure
Devi et al. Bit Wise Multipliers Using Symmetric Stackers
Saboor et al. Implementation of 24 Bit Multiplier Using Parallel Multiplication with Sorting Based Binary Counters for VLSI Applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant