CN110780843A - 高性能fpga加法 - Google Patents

高性能fpga加法 Download PDF

Info

Publication number
CN110780843A
CN110780843A CN201910505586.XA CN201910505586A CN110780843A CN 110780843 A CN110780843 A CN 110780843A CN 201910505586 A CN201910505586 A CN 201910505586A CN 110780843 A CN110780843 A CN 110780843A
Authority
CN
China
Prior art keywords
circuit
adder
input
signal
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.)
Pending
Application number
CN201910505586.XA
Other languages
English (en)
Inventor
M·朗哈默尔
T·M·范德霍克
J·C·克罗麦克扎克
T·钱德勒
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN110780843A publication Critical patent/CN110780843A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal
    • 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
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • 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
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4812Multiplexers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/506Indexing scheme relating to groups G06F7/506 - G06F7/508
    • G06F2207/50632-input gates, i.e. only using 2-input logical gates, e.g. binary carry look-ahead, e.g. Kogge-Stone or Ladner-Fischer adder

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Complex Calculations (AREA)
  • Logic Circuits (AREA)

Abstract

本公开总体上涉及用于增强在集成电路上实施的加法器的技术。具体而言,由被实施为接收具有第一精度的操作数的加法器执行的算术可以被重新结构化为使得一组子加法器可以对操作数的相应区段执行算术。更具体而言,加法器可被重新结构化为使得该组子加法器中的子加法器可以同时输出生成信号和传播信号,生成信号和传播信号两者可以被路由至前缀网络。前缀网络可以确定相应的进位位,所述进位位可以进位到重新结构化加法器的后续子加法器中和/或选择所述后续加法器处的总和。结果,集成电路可以受益于实施加法所涉及的提高的效率、减少的等待时间和减少的资源消耗(例如,面积和/或电力),这可以改善集成电路上的诸如加密或机器学习的运算。

Description

高性能FPGA加法
相关申请的交叉引用
本申请要求2018年7月12日提交的标题为“Multi-Input Reduction Structurefor Very Large Integers”的美国临时申请序列号No.62/697,265的优先权和权益,出于所有目的通过引用将该美国临时申请的全文并入本文。
背景技术
本公开总体上涉及集成电路,例如现场可编程门阵列(FPGA)。更具体而言,本公开涉及使用集成电路的电路元件(例如,FPGA的可编程逻辑)实施的用以执行大型算术运算的加法器电路。
本部分旨在向读者介绍可能与本公开的各个方面相关的本领域技术的各个方面,本公开的各个方面在下文中描述和/或要求保护。认为这种论述有助于为读者提供背景信息以便于更好地理解本公开的各个方面。因此,应当理解,要在这个意义上来阅读这些文字描述,而不是作为对现有技术的承认。
集成电路越来越多地实施对于我们的日常生活而言已经变得至关重要的功能,例如加密。实际上,加密在很多技术领域(例如,金融交易安全领域)都变得越来越有价值。加密(以及在集成电路上发生的其它运算,例如,某些乘法运算)可能使用精度越来越大的算术,其在一些情况下可能涉及用以对具有大精度的操作数求和的最终加法运算。在一些情况下,例如,操作数的精度可以约为几千位。最终加法运算可以由最终加法器电路执行。然而,由于最终加法器电路可以包括链结到一起的小加法器电路,以适应涉及对各操作数求和的大精度算术,因而最终加法器电路可以代表在集成电路上实施的用于加密和/或乘法运算的关键路径。实际上,最终加法器可能占用集成电路的相对较大的面积,消耗相对大量的电力,和/或在集成电路中产生附加的等待时间。
附图说明
在阅读以下具体实施方式并参考附图时,可以更好地理解本公开的各个方面,在附图中:
图1是根据实施例的用于实施算术运算的系统的方框图;
图2是根据实施例的可以在其中实施加法器的集成电路的方框图;
图3是根据实施例的流水线加法器的方框图;
图4是根据实施例的解码器电路的方框图;
图5是根据实施例的重新结构化加法器的方框图;
图6是根据实施例的包括被实施为同时输出生成信号和传播信号的子加法器的重新结构化加法器的方框图;
图7是根据实施例的包括被实施为同时输出生成信号、传播信号和总和的子加法器的重新结构化加法器的方框图;
图8是根据实施例的逻辑阵列块(LAB)的支持电路的方框图;
图9是根据实施例的被实施为基于传播信号的若干部分计算传播信号的支持电路的方框图;
图10是根据实施例的第一逻辑阵列结构的方框图;
图11是根据实施例的进位链电路的方框图;
图12是根据实施例的第二逻辑阵列结构的方框图;
图13是根据实施例的第三逻辑阵列结构的方框图;
图14是根据实施例的通过第一和第二输出耦合至若干输出路径的自适应逻辑模块的方框图;
图15是根据实施例的通过第一和第二输出、生成信号和传播信号耦合至若干输出路径的自适应逻辑模块的方框图;
图16是根据实施例的第四逻辑阵列结构的方框图;以及
图17是根据实施例的数据处理系统的方框图。
具体实施方式
下文将描述一个或多个具体实施例。为努力提供这些实施例的简洁描述,并未在本说明书中描述实际实施方式的所有特征。应当理解,在任何这种实际实施方式的开发过程中,如在任何工程或设计项目中,可以做出许多实施方式特定的决策以实现开发者的具体目标,例如,符合系统相关和商业相关的约束,所述约束可以随着实施方式的不同而存在变化。此外,应当理解,这种开发工作有可能是复杂且耗时的,但是对于受益于本公开的本领域普通技术人员而言,其仍将是设计、加工和制造的常规工作。此外,应当指出,如本公开中提及的,术语“行波进位加法器”一般是指一种加法器电路结构,其被实施为使得全加器的进位输出被馈送(例如,行波传送)到行波进位加法器的接下来的更重要的全加器的进位输入位置中。如本公开中另外提及的,术语“进位传播加法器”可以指可以由多个较小加法器电路(例如,行波进位加法器)构建的加法器电路。此外,如本公开中提及的,术语“自适应逻辑模块”可以指可以用于执行算术运算的电路单元。此外,如本公开中提及的,术语“逻辑阵列块”可以指被布置(例如,通信耦合)到一起以执行一项或多项算术和/或组合运算的若干自适应逻辑模块。
如下文进一步详细讨论的,本公开的实施例总体上涉及降低加法器电路占用的集成电路面积和/或由加法器电路导致的等待时间。更具体而言,本公开涉及适于执行大型算术运算的加法器(例如,用于执行乘法运算的最终加法器)到可编程逻辑的更有效率的映射。在一些情况下,可以采用行波进位加法器实施进位传播加法器电路(例如,用以执行乘法的最终加法器)。此外,为了构建具有适当精度的进位传播加法器和/或将进位传播加法器装配到集成电路上,可以将一组具有较小精度的加法器(例如,子加法器电路)以链和/或流水线方式联结在一起,并且与以链和/或流水线方式联结在一起的该组子加法器中的每个子加法器相关联的输入和/或输出数据路径可以与彼此达到延迟均衡。由于延迟均衡可能使用相当数量的寄存器和/或存储器,因而进位传播加法器可能在集成电路上导致显著的面积问题、等待时间问题和/或电力问题。
相应地,为了减少向可编程逻辑实施加法器所涉及的面积、电力和/或等待时间,可以将加法器重新结构化为不按照链和/或流水线方式将该组子加法器联结到一起(例如,取决于相互的等待时间)。如下文进一步详细讨论的,对加法器的重新结构化还可以涉及将在该组子加法器中的每者处确定的相应生成信号和相应传播信号路由至前缀网络电路,所述前缀网络电路被实施为生成适当的相应进位位,以进位到该组子加法器中的接下来的子加法器中。此外,为了减少输出生成信号和传播信号所涉及的资源,子加法器可以被实施为同时输出相应的生成信号和相应的传播信号(例如,以使相应的生成信号和相应的传播信号同时可用)。子加法器可以被另外实施为同时输出相应的总和以及生成信号和传播信号。更具体而言,在一些实施例中,子加法器可以是使用逻辑阵列块实施的,逻辑阵列块可以包括若干电路单元,例如自适应逻辑模块。逻辑阵列块可以被结构化为包括用于传播信号的传播逻辑路径(例如,硬逻辑路径)和用于生成信号(例如,加法运算的进位输出信号)的生成逻辑路径(例如,进位链)。通过使用传播逻辑路径和生成逻辑路径,逻辑阵列块可以被实施为在同一逻辑阵列块中或者在接下来的逻辑阵列块中输出传播信号、以及生成信号和总和。此外,对子加法器进行重新结构化可以包括上文描述的技术的任何适当组合。
有鉴于前文,图1示出了可以实施算术运算的系统10的方框图。设计者可能希望在集成电路器件12(例如,现场可编程门阵列(FPGA)或者专用集成电路(ASIC))上实施诸如本公开的大精度算术运算的功能。在一些情况下,设计者可以指定所要实施的高级程序,例如OpenCL程序,其可以使设计者能够更有效率地并且更加容易地提供编程指令,以在无需具体了解低级硬件描述语言(例如,Verilog或VHDL)的情况下对集成电路器件12的一组可编程逻辑单元加以配置。例如,由于OpenCL与诸如C++的其它高级编程语言相当类似,因而熟悉这种编程语言的可编程逻辑设计者与被要求学习不熟悉的低级硬件描述语言来实施集成电路器件12中的新功能的设计者相比,可以具有缩短的学习曲线。
设计者可以使用设计软件14(例如,英特尔公司推出的的版本)来实施其高级设计。设计软件14可以使用编译器16将高级程序转化成低级描述。编译器16可以向主机18和集成电路器件12提供表示高级程序的机器可读指令。主机18可以接收可以通过内核程序20实施的主机程序22。为了实施主机程序22,主机18可以将来自主机程序22的指令经由通信链路24传送到集成电路器件12,例如,所述通信链路24可以是直接存储器存取(DMA)通信或者外围部件互连快速(PCIe)通信。在一些实施例中,内核程序20和主机18可以实现对集成电路器件12上的乘法器26的配置。乘法器26可以包括电路和/或其它逻辑元件,并且可以被配置为实施(例如)加密和/或算术运算。
尽管本文描述的技术涉及应用高级程序,但是在一些实施例中,设计者可以使用设计软件14生成和/或指定低级程序,例如,上文所述的低级硬件描述语言。此外,在一些实施例中,可以在无需单独主机程序22的情况下实施系统10。此外,在一些实施例中,本文描述的技术可以被作为不可编程电路设计而实施到电路中。因而,本文描述的实施例旨在进行举例说明而非构成限制。
现在来看对集成电路器件12的更加详细的讨论,图2示出了作为可编程逻辑器件(例如,现场可编程门阵列(FPGA))的集成电路器件12的示例。此外,应当理解,集成电路器件12可以是任何适当类型的可编程逻辑器件(例如,专用集成电路和/或专用标准产品)。如所示,集成电路器件12可以具有用于驱动信号离开器件以及用于经由输入/输出引脚44接收来自其它器件的信号的输入/输出电路42。可以使用诸如全局和局部垂直和水平导线和总线的互连资源46对集成电路器件12上的信号进行路由。此外,互连资源46可以包括固定互连(导线)和可编程互连(即,相应固定互连之间的可编程连接)。可编程逻辑48可以包括组合或者顺序逻辑电路。例如,可编程逻辑48可以包括查找表格、寄存器和复用器。在各种实施例中,可编程逻辑48可以被配置为执行自定义逻辑功能。与互连资源相关联的可编程互连可以被看作是可编程逻辑48的部分。
诸如集成电路器件12的可编程逻辑器件可以包含具有可编程逻辑48的可编程元件50。例如,如上文所讨论的,设计者(例如客户)可以对可编程逻辑48进行编程(例如,配置),以执行一项或多项预期功能。作为示例,可以通过使用掩模编程布置对一些可编程逻辑器件的可编程元件50进行配置而对所述可编程逻辑器件进行编程,对可编程元件50的配置是在半导体制造期间执行的。其它可编程逻辑器件是在已经完成半导体制作操作之后,通过(例如)使用电编程或激光编程对其可编程元件50进行编程而被配置的。一般而言,可编程元件50可以基于任何适当的可编程技术,例如,熔丝、反熔丝、电可编程只读存储器技术、随机存取存储器单元、掩模编程元件及其它。
很多可编程逻辑器件受到电编程。利用电编程布置,可编程元件50可以由一个或多个存储器单元形成。例如,在编程期间,可以使用引脚44以及输入/输出电路42将配置数据加载到存储器单元中。在一个实施例中,可以将存储器单元实施为随机存取存储器(RAM)单元。文中描述的对基于RAM技术的存储器单元的使用仅旨在作为一个示例。此外,由于这些RAM单元在编程期间加载了配置数据,因而有时将它们称为配置RAM单元(CRAM)。这些存储器单元均可以提供对应的静态控制输出信号,所述信号控制可编程逻辑48中的相关联逻辑部件的状态。例如,在一些实施例中,输出信号可以被施加至可编程逻辑48内的金属氧化物半导体(MOS)晶体管的栅极。
现在来看图3,其示出了流水线加法器100(例如,加法器电路),例如进位传播加法器(CPA),其可以通过将操作数分解成较小的区段来处理大操作数的求和。在所例示的实施例中,流水线加法器100接收两个128位操作数AA[127:0]和BB[127:0],它们每者被分成四个32位区段(例如,分别是AA[31:0]、AA[63:32]、AA[95:64]和AA[127:96]以及BB[31:0]、BB[63:32]、BB[95:64]和BB[127:96])。通过将两个128位操作数分成更小(例如,32位)区段(例如,操作数区段),可以采用一组的四个32位子加法器102来确定两个128位操作数的总和,所述四个32位子加法器102可以被实施成以流水线方式联结到一起的行波进位加法器。因而,如图3所示,第一子加法器102可以对AA[31:0]和BB[31:0]求和,第二子加法器102可以利用接收自第一子加法器102的第一进位输入值对AA[63:32]和BB[63:32]求和,第三子加法器102可以利用接收自第二子加法器102的第二进位输入值对AA[95:64]和BB[95:64]求和,并且第四子加法器102可以利用接收自第三子加法器102的第三进位输入值对AA[127:96]和BB[127:96]求和。
为了在AA[63:32]和BB[63:32]的求和期间使用所述第一进位输入值,可以使输入到第二子加法器102的操作数区段AA[63:32]和BB[63:32]延迟一个或多个时钟周期,从而与第一进位输入值同时抵达。例如,由于AA[31:0]和BB[31:0]的加法的结果(例如,进位输出)被用作AA[63:32]和BB[63:32]的求和过程中的第一进位输入值,因而可以使AA[63:32]和BB[63:32]的求和延迟,直到来自第一子加法器102的进位输出(其可以被存储到寄存器104中)可获得为止。在一些实施例中,为了使操作数区段AA[63:32]和BB[63:32]延迟,流水线加法器100可以在第二子加法器102处接收到操作数区段AA[63:32]和BB[63:32]之前,通过可以利用一个或多个寄存器104、存储器、和/或先进先出(FIFO)数据结构等实施的第一延迟链106对操作数区段AA[63:32]和BB[63:32]进行路由。此外,为了使操作数区段AA[95:64]和BB[95:64]适当延迟,流水线加法器100可以通过第二延迟链106对操作数区段AA[95:64]和BB[95:64]进行路由,所述第二延迟链106在一些实施例中可以使操作数区段AA[95:64]和BB[95:64]抵达第三子加法器102的时间延迟两个或更多时钟周期,以使操作数区段AA[95:64]和BB[95:64]与接收自第二子加法器102的第二进位输入值在第三子加法器102处同时可获得。相应地,流水线加法器100可以包括第三延迟链106,以使操作数区段AA[127:96]和BB[127:96]延迟三个或更多时钟周期再抵达第四子加法器102,使得操作数区段AA[127:96]和BB[127:96]与接收自第三子加法器102的第三进位输入值同时可获得。
此外,通过使第一32位加法器102的输出与第二子加法器102、第三子加法器102和第四子加法器102的输出衔接起来,可以形成AA[127:0]和BB[127:0]的128位总和。由于第一子加法器102可以在其它子加法器102(例如,第二子加法器102、第三子加法器102和第四子加法器102)中的任何子加法器之前计算并输出操作数区段AA[31:0]和BB[31:0]的总和,因而流水线加法器100可以被实施为通过第四延迟链106对第一子加法器102的输出进行路由。第四延迟链可以使第一子加法器102的输出延迟若干时钟周期,其取决于在流水线加法器100中跟在第一子加法器102之后的子加法器102的数量。相应地,在所例示的实施例中,第四延迟链106可以使第一子加法器102的输出延迟三个时钟周期,但是在其它实施例中,第四延迟链106可以被实施为使第一子加法器102的输出延迟更大或更少数量的时钟周期。此外,流水线加法器100可以通过第五延迟链106对第二子加法器102的输出进行路由,并且通过第六延迟链106对第三子加法器102的输出进行路由,使得子加法器102中的每者的输出同时可获得。
尽管上文描述的技术参照了包括以流水线方式联结到一起的四个32位子加法器102的128位流水线加法器100,但是在一些实施例中,可以实施具有更大精度的流水线加法器100,例如,1024位流水线加法器100和/或其它适当尺寸的流水线加法器。在这种情况下,可以将流水线加法器100分解成更大数量的子加法器102,例如32个32位子加法器102。此外,可以将延迟链106实施为增大在使去往子加法器102的输入和/或来自子加法器102的输出可获得之前的等待时间(例如,延迟)。替代地或此外,可以增大或者减小操作数区段和/或子加法器102的精度,并且在一些实施例中,可以至少部分地基于集成电路器件12的精度确定操作数区段和/或子加法器102的精度。在任何情况下,本文描述的示例旨在举例说明而非构成限制。
在一些实施例中,流水线加法器100的延迟链106可能使用集成电路器件12中的显著的资源,因为延迟链106可能占据集成电路器件12中的显著的面积和/或消耗集成电路器件12中的显著的电力。此外,由于流水线加法器100的每个子加法器102算术连接至流水线加法器100中的前一子加法器102(例如,第二子加法器102与第一子加法器102算术相关),因而集成电路器件12可以将流水线加法器100装配到集成电路器件12的连续区域中,这可以限制和/或约束集成电路器件12中的可用面积的使用。此外,由于子加法器102不是独立的,因而流水线加法器100执行的加法可能引起显著的等待时间,以使输入的操作数区段和子加法器102的输出适当地延迟。
相应地,如图4所示,解码器120可以被实施为对来自一组独立的子加法器102的生成信号(G)和/或传播信号(P)进行解码。在一些实施例中,如下文更详细描述的,重新结构化加法器可以使用生成信号和/或传播信号来独立于其它子加法器102生成的输出和/或进位输出值而确定子加法器102处的两个操作数区段(例如,AA[31:0]和BB[31:0])的总和,所述和的确定。
为了对生成信号解码,解码器120可以使用子加法器102确定由第一操作数区段(A)和第二操作数区段(B)之和得到的进位输出信号。在一些实施例中,解码器120可以直接路由来自解码器120的子加法器102的进位链的生成信号(例如,进位输出信号)。替代地或此外,解码器120可以通过(例如)对子加法器102的最高有效位进行零扩展而从逻辑输出生成信号。解码器120可以将所得到的生成信号路由至逻辑与门122,其可以使用生成信号的补码生成传播信号。例如,解码器的逻辑与门122可以接收生成信号的补码和传播’信号(P’)(例如,传播信号的前体)作为输入并确定这些输入的逻辑与(非(G)与P’),以生成传播信号(P),其中,信号P’可以由被实施为对第一操作数区段和第二操作数区段连同进位输入值1求和的附加子加法器102生成。
如上所述,重新结构化加法器可以使用生成信号和传播信号独立于一个或多个附加子加法器102的输出而确定一个或多个子加法器102处的一个或多个总和。相应地,图5示出了被实施为使用解码器120和前缀网络162来确定两个操作数的总和的重新结构化加法器160(例如,加法器电路)。更具体而言,通过使用解码器120和前缀网络162,重新结构化加法器160可以至少部分地基于两个操作数区段的对应对(例如,操作数区段对)的总和来确定两个操作数的总和,每个操作数具有第一精度,每个操作数区段具有第二精度,第二精度可以是小于第一精度的精度。
如所例示的实施例中所示,重新结构化加法器160可以包括用于每个操作数区段对的解码器120。例如,重新结构化加法器160可以包括被实施为对由第一操作数区段对AA[31:0]和BB[31:0]产生的生成信号和/或传播信号(例如,分别为G1和P1)进行解码的第一解码器120、被实施为对由第二操作数区段对AA[63:32]和BB[63:32]产生的生成信号和/或传播信号(例如,分别为G2和P2)进行解码的第二解码器、以及被实施为对由第三操作数区段对AA[95:64]和BB[95:64]产生的生成信号和/或传播信号(例如,分别为G3和P3)进行解码的第三解码器。尽管未示出,但是第一操作数区段对、第二操作数区段对和第三操作数区段对中的每者可以从重新结构化加法器160的分别被实施为接收第一操作数(AA)和第二操作数(BB)的第一输入电路和第二输入电路路由。此外,如上文所述,在每个解码器120处解码的生成信号和传播信号是独立于其它生成信号和传播信号并且独立于其它操作数区段对的值而生成的。相应地,解码器120和/或输入至相应的解码器120的操作数区段可以被置于集成电路器件12上的相互分开并且远离的区域中,而不是被置于连续区域内。照此,在一些实施例中,将重新结构化加法器160装配到集成电路器件12上的麻烦程度可以低于装配流水线加法器100的麻烦程度。
来自每个解码器120的生成信号和传播信号可以馈送到前缀网络162(例如,软逻辑前缀网络)中。前缀网络162可以是由组合逻辑(例如,组合电路)构建而成的,并且前缀网络162的布局可以是灵活的。相应地,在一些实施例中,前缀网络162可以是利用Kogge-Stone拓扑结构、Brent-Kung拓扑结构、Sklansky拓扑结构、流水线拓扑结构和/或任何其它适当拓扑结构实施的。在任何情况下,前缀网络162可以被实施为接收来自解码器120的生成信号和传播信号作为输入,并基于所接收到的生成信号和所接收到的传播信号生成进位位。重新结构化加法器160可以将所生成的进位位馈送到被实施为进行如下操作的子加法器102的输入中:所述子加法器102对紧随在被输入到负责产生对应于进位位的生成信号和传播信号的解码器120中的操作数区段对之后(具有紧挨着的更高有效位位置)的操作数区段对求和。例如,前缀网络162可以生成对应于由子加法器102执行的求和中的每者的相应进位输出位,并且可以将进位输出位路由至相应的后续子加法器102的进位输入位置。相应地,重新结构化加法器160可以模仿流水线加法器100使用的进位链,以使用前缀网络162将每个进位输出位从前一子加法器102馈送至后续子加法器102。此外,如上文所讨论的,通过利用前缀网络172和解码器120代替进位链,可以使用重新结构化加法器160按照独立于彼此的方式生成操作数区段对的总和。相应地,解码器120和/或子加法器102可以与附加解码器120和/或子加法器分开地装配到集成电路器件12上,这样可以减少集成电路器件12上的用于执行求和的面积。
在一些实施例中,为了确保操作数区段对在重新结构化加法器160的最终子加法器102处与由前缀网络162生成的对应进位输出位同时可获得,重新结构化加法器160可以包括延迟链106,延迟链106被实施为使操作数区段对延迟适当数量的时钟周期,以补偿按照前缀网络162的拓扑结构实施的任何流水线。在这样的实施例中,重新结构化加法器160中包含的延迟链106中的每者可以实施相同的延迟(例如,相同数量的时钟周期)。此外,由于最低有效操作数区段对(例如,AA[31:0]和BB[31:0])的加法不包含进位输入,因而最低有效操作数区段对的总和可以通过延迟最低有效生成信号的产生来实施。此外,在一些实施例中,重新结构化加法器160可以被实施为使得相等数量的等待时间周期被施加给输入至重新结构化加法器160的每个操作数区段对。
尽管重新结构化加法器160可能看起来比流水线加法器100更加复杂,但是重新结构化加法器160的深度(级数和/或等待时间)可以保持相对恒定,而不管重新结构化加法器160的精度如何。例如,具有1024位精度的重新结构化加法器160可以包括比重新结构化加法器160的具有128位精度的所例示实施例更宽(例如,更高精度)的前缀网络162,但是由于前缀网络162可以是采用组合逻辑构建的,因而前缀网络162的提高的宽度(例如,精度)不会提高重新结构化加法器160的深度和/或等待时间。相应地,在具有1024位精度的重新结构化加法器160和所例示的重新结构化加法器160之间,在前缀网络162的输出处使用的延迟链106的深度可以保持相同。另一方面,流水线加法器100的深度可以随着每个附加的子加法器102用于对每个附加的操作数区段对求和而加1,因为流水线加法器100可以包括附加的流水线级(例如,进位链)。相应地,由流水线加法器100的延迟链106产生的等待时间可以随着流水线加法器100的精度的增大而增大。
此外,在一些实施例中,分开计算生成信号(G)和传播信号(P)(例如,利用一对子加法器102)可能消耗集成电路器件12的显著资源(例如,面积、路由、电流、和/或其它)。例如,值3N可以表示大的N位加法器(例如,图5的重新结构化加法器160)的算术成本。然而,通过同时计算生成信号和传播信号,N位加法器的算术成本可以降低至2N,这样可以在集成电路器件12中产生显著的资源(例如,放置和路由、面积和/或其它)和/或性能(例如,等待时间)利益。相应地,在一些实施例中,解码器120可以被重新结构化为同时确定生成信号和传播信号,如图6所示。更具体而言,如下文更详细所述,可以根据一项或多项技术对用于实施子加法器102的电路和/或逻辑进行重新结构化。
此外,如图7所示,在一些实施例中,可以在子加法器102内同时确定传播信号、生成信号和总和中的每者。相应地,在这样的实施例中,可以将操作数区段对的总和直接流水线传送至对应的最终子加法器102。例如,重新结构化加法器160可以将第一子加法器102生成的总和路由为绕过前缀网络162并连同前缀网络162确定的进位输入值一起充当最终子加法器102的输入。照此,最终子加法器102可以对第一子加法器102生成的总和与进位输入值相加,以生成输出区段。结果,与图5-6的实施例相比,重新结构化加法器160可以被实施为具有减少的路由,这样可以产生更有效率的集成电路器件12。
现在来看图8,其示出了支持电路170。更具体而言,如下文更详细所述,可以用于执行一项或多项算术运算和/或组合运算(例如,加法)的被称为逻辑阵列块(LAB)的结构可以包括支持电路170。在一些实施例中,逻辑阵列块可以包括被布置(通信耦合)在一起的若干(例如,5个、10个、20个和/或其它数量)自适应逻辑块(ALM)(算术逻辑电路)。可以认识到,自适应逻辑模块可以表示可以用于执行算术运算的电路单元。相应地,在一些实施例中,子加法器102可以是使用若干逻辑阵列块实施的,所述逻辑阵列块中的每者可以包括若干自适应逻辑模块,和/或可以包括支持电路170。
所例示的支持电路170包括确定传播信号和/或对传播信号进行路由的电路。更具体而言,所例示的支持电路170包括与传播信号的第一部分(例如,第一数量的位)(Ptop)和传播信号的第二部分(例如,第二数量的位)(Pbot)相关联的电路。在一些实施例中,由于一群自适应逻辑模块可以通信耦合到一起(例如,在逻辑阵列块内),因而第一组自适应逻辑模块可以确定传播信号的第一部分(ptop),并且第二组自适应逻辑模块可以确定传播信号的第二部分(pbot)。因而,支持电路170可以被实施为接收传播信号的每个部分(例如,第一部分和第二部分)。此外,支持电路170可以被实施为将传播信号的每个部分跨越第一逻辑阵列块路由至第二逻辑阵列块,和/或跨越逻辑阵列块的第一部分和第二部分(例如,跨越一个或多个自适应逻辑模块)路由传播信号的每个部分。例如,在一些实施例中,支持电路170可以被实施为跨越两个或更多逻辑阵列块和/或自适应逻辑模块将诸如传播信号(例如,传播信号的部分)的信号组合。
尽管在本文中将传播信号描述为是使用第一和第二部分(例如,分别为ptop和pbot)确定的,但是可以认识到,传播信号可以是基于传播信号的更少部分或者附加部分而确定的。例如,在一些实施例中,第三组自适应逻辑模块可以确定传播信号的第三部分(pmid)。在这样的实施例中,传播信号可以是部分地基于传播信号的第一、第二和第三部分(例如,ptop、pbot和pmid)中的每者而确定的。此外,传播信号的部分中的每者可以是基于相同或不同数量的位而确定的。照此,用于确定每个部分的自适应逻辑模块的数量可以发生变化。例如,传播信号的第一部分(ptop)可以是由第二数量的自适应逻辑模块部分地基于第一数量的位而确定的,而传播信号的第二部分(pbot)可以是由第四数量的自适应逻辑模块部分地基于第三数量的位而确定的,第三数量的位不同于第一数量的位。因而,实施例旨在进行举例说明而非构成限制。
此外,为了输出传播信号,可以将传播信号的部分(例如,第一部分(ptop)和第二部分(pbot))中的每者组合。更具体而言,传播信号的每个部分可以被逻辑与运算到一起,以产生传播信号。出于该目的,如图9所示,支持电路170可以被修改为包括逻辑与门122,所述逻辑与门被实施为对传播信号的第一部分和第二部分进行逻辑与运算(例如,ptop与pbot)。逻辑与门122可以被通信耦合至复用器(mux)176A(例如,选择电路)。在一些实施例中,逻辑与门122的输出可以部分地基于信号路由路径的时序关键性而被路由至mux 176A。例如,在所例示的实施例中,mux 176A可以用于测试(例如,用于测试的设计(DFT))和/或用于重定时目的,而mux 176B可以用于组合加法器。结果,去往mux 176B中的路由可以表示高度速度关键性路径,而mux 176A可以表示时序关键性较小的路径。相应地,在这样的实施例中,逻辑与门122的结果(例如,传播信号)可以被路由到mux 176A的较慢路径中。此外,由于被实施为执行高精度算术的加法器(例如,流水线加法器100和/或重新结构化加法器160)可能不必以集成电路器件12可以实现的最快速率运行,因而与改善操作的时序相比,改善集成电路器件12上的电路的放置和路由可能更容易改善集成电路器件12的性能。相应地,将逻辑与门122装配到支持电路170中可以涉及将逻辑与门122通信耦合至mux 176A,这样所消耗的集成电路器件12的资源(例如,面积和/或布线资源)可以比将逻辑与门122装配为通信耦合至mux176B所消耗的资源更少。
此外,尽管本文将传播信号的部分描述为通过逻辑与门122被组合,但是应当认识到,可以使用任何适当的逻辑和/或电路。例如,在一些实施例中,可以使用逻辑门的任何适当组合来确定传播信号的部分中的每者的逻辑与。替代地或此外,可以在软逻辑电路(未示出)中计算传播信号,软逻辑电路可以通信地耦合到自适应逻辑模块(例如,耦合到自适应逻辑模块的输入和/或输出)。此外,本文描述的实施例旨在进行举例说明而非构成限制。
作为说明性示例,图10描绘了被实施为同时输出生成信号和传播信号的第一逻辑阵列结构200。相应地,第一逻辑阵列结构200可以实施上文参考图6和/或图7描述的子加法器102。第一逻辑阵列结构200可以包括第一逻辑阵列块202A以及第二逻辑阵列块202B的一部分,第一逻辑阵列块202A可以包括若干自适应逻辑模块180和/或支持电路170。如所示,使用一组的十个自适应逻辑模块180(例如,每个自适应逻辑模块180两位算术)将20位的算术组合到第一逻辑阵列块202A中。更具体而言,第一逻辑阵列块202A被实施为执行19位的加法,并且包括两个零(例如,逻辑低)位作为第20位算术的输入。相应地,所例示的第一逻辑阵列块202A被实施为输出19位总和(例如,S[0:18])和表示生成信号的进位值。
此外,第一逻辑阵列结构200可以包括路由电路(例如,进位链电路),例如,布线、选择电路(例如,若干复用器(mux))和/或其它,以将传播信号连同总和(S[0:18])以及生成信号同时输出。例如,如所示,第一逻辑阵列块202A的若干最低有效自适应逻辑模块180(例如,180A)可以至少部分地基于最低有效输入值(例如,a[0:9])确定传播信号的第一部分(ptop)并将其路由至第一逻辑阵列块202A。此外,第一逻辑阵列块202A的若干最高有效自适应逻辑模块180(例如,180B和180C)可以至少部分地基于最高有效输入值(例如,a[18:10])确定传播信号的第二(剩余)部分(pbot)并将其路由至第一逻辑阵列块202A。第一逻辑阵列块202A的支持电路170可以被实施为包括操作耦合至如上文参考图9所述的具有低时序关键性的mux 176(例如,mux 176A)的逻辑与门122。相应地,支持电路170可以部分地基于传播信号的第一部分和第二部分(例如,分别为ptop和pbot)计算传播信号,所述第一部分和第二部分可以分别从最低有效自适应逻辑模块180和最高有效自适应逻辑模块180路由到逻辑与门122的输入中。此外,在一些实施例中,传播信号的第一部分(pbot)、传播信号的第二部分(ptop)以及所得到的传播信号中的每者可以是独立于生成信号确定的。例如,传播信号和/或其部分中的每者可以是在不使用生成信号的情况下确定的。
此外,由于所例示的最高有效自适应逻辑模块180C被实施为输出总和的最高有效位(例如,S[18])和生成信号,因而第一逻辑阵列结构200可以使用第二逻辑阵列块202B的部分来输出传播信号。在一些实施例中,由第一逻辑阵列块202(例如,202A)得到的进位信号可以任选被路由到后续逻辑阵列块202(例如,202B)中,以实施具有较高精度(例如,具有更大数量的位的算术)的行波进位加法器。然而,在一些实施例中,第一逻辑阵列块202A的支持电路170可以包括被实施为在传播信号和进位信号之间进行选择的mux 176B,如所示。相应地,由于进位信号被第一逻辑阵列块202A作为生成信号而输出,因而所例示的mux176B可以被实施为选择传播信号作为被路由到第二逻辑阵列块202B中的输出。更具体而言,传播信号可以被选择为路由到第二逻辑阵列块202B的第一(例如,最低有效)自适应逻辑模块180D的输入中。可以使对自适应逻辑模块180D的两个输入值为零(例如,逻辑低),使得传播信号作为从第二逻辑阵列块202B得到的最低有效位被输出(例如,进位输出)。相应地,可以计算和/或输出开始于第二逻辑阵列块202B的第二位的新算术运算。
为了简单起见,第一逻辑阵列结构200的例示的实施例包括自适应逻辑模块180(例如,180A、180B、180C和180D)的简化方框图。然而,可以认识到,任何适当电路(例如,图11所示的电路和/或其它)可以由自适应逻辑模块180实施。此外,在一些实施例中,自适应逻辑模块180可以被实施为执行更多或更少的算术运算(例如,1位、3位、4位和/或其它)。此外,在一些实施例中,自适应逻辑模块180可以被实施为执行备选加法器功能。例如,自适应逻辑模块180可以被实施为使用压缩、冗余形式算术和/或其它来计算总和,使得传播信号可以在不使用第二逻辑阵列块202的情况下从第一逻辑阵列块202A输出。因而,本文描述的实施例旨在进行举例说明而非构成限制。
现在来看图11,其示出了自适应逻辑模块180结构的实施例的方框图220。更具体而言,方框图220示出了逻辑阵列块202的两位中的进位链电路的示例,其可以由自适应逻辑模块180表示。在一些实施例中,进位链222(例如,逻辑路径)可以将进位输入信号(例如,Cin0)路由到也可以接收若干输入信号(例如,P0、G0、P1、G1)的自适应逻辑模块180中。此外,进位链222可以路由进位输出信号(例如,nCout1),该信号与进位输入信号相比可以被反转(例如,求补)。相应地,在一些实施例中,进位链222可以用于通过自适应逻辑模块180对传播信号和/或生成信号进行路由。例如,P0可以表示对应于算术的第零位位置的第零传播信号(例如,传播信号的部分),P1可以表示对应于算术的第一位位置的第一传播信号(例如,传播信号的部分),G0可以表示对应于算术的第零位位置的第零生成信号,并且G1可以表示对应于算术的第一位位置的第一生成信号。相应地,可以使用进位链电路将传播信号的部分和/或生成信号进位输出。例如,如上文所讨论的,所例示的自适应逻辑模块180可以耦合至若干附加自适应逻辑模块180,以确定传播信号的第一部分(ptop)或第二部分(pbot)。此外,如果目的地逻辑阵列块202(例如,逻辑阵列块202和/或耦合至自适应逻辑模块180的后续自适应逻辑模块180)是非算术的,那么可以使用门控信号(例如,rb2ctl3)通过sum0输出位置将传播信号路由出来。此外,如果目的地逻辑阵列块202用于分形算术,那么LUT掩模(lutmask)可以被配置为将P0和P1都设置为一(例如,逻辑高),以避免破坏传播信号进位链。
图12示出了被实施为包括若干自适应逻辑模块180的第二逻辑阵列结构240,若干自适应逻辑模块180中的每者可以是使用基于实例的连接实施的,以构建2位进位跳跃结构。更具体而言,第二逻辑阵列结构240可以包括被实施为接收无反转输入并产生反转(例如,求补)输出的第一组自适应逻辑模块180E(例如,偶数自适应逻辑模块180E)、以及被实施为接收反转输入并产生无反转输出的第二组自适应逻辑模块180F(例如,奇数自适应逻辑模块180F)。相应地,第一组自适应逻辑模块180E之一的输出可以路由到第二组自适应逻辑模块180F之一的输入中,和/或第二组自适应逻辑模块180F之一的输出可以路由到第一组自适应逻辑模块180E之一的输入中。例如,如所示,第二逻辑阵列结构240可以包括通信耦合至自适应逻辑模块180F并与之交错的自适应逻辑模块180E。此外,可以认识到,第一组自适应逻辑模块180E之一可以包括与第二组自适应逻辑模块180F之一的逻辑相比被反转的逻辑,反之亦然。
使用可以包括诸如进位链222的生成逻辑路径223(例如,硬逻辑路径电路和/或路由电路)、以及传播逻辑路径224(例如,硬辑路径电路和/或路由电路)的2位进位跳跃结构,第二逻辑阵列结构240可以被实施为确定总和。例如,如所示,第二逻辑阵列结构240可以执行每个自适应逻辑模块180处的2位算术(例如,加法),以从每个自适应逻辑模块180输出总和的两位(例如,S[1:0])。此外,第二逻辑阵列结构240可以使用基于实例的连接(如上文所述),以通信耦合进位结构中的自适应逻辑模块180,使得在自适应逻辑模块180处执行的算术运算所产生的相应进位值(例如,生成信号)可以路由到后续耦合的自适应逻辑模块180中。此外,在一些实施例中,自适应逻辑模块180中的每者可以包括被实施为控制对相应的自适应逻辑模块180的电力门控的门控信号(门控)。更具体而言,门控信号可以控制通往每个自适应逻辑模块180的输入传播信号(例如,P0和P1)和生成信号(G0和G1)。
为了简单起见,所例示的自适应逻辑模块180均接收P0、P1、G0和G1。然而,应当认识到,这些输入可以对应于对应的自适应逻辑模块180的相应位位置。例如,在所例示的最高有效自适应逻辑模块180处接收的P0值可以表示第八传播输入信号。此外,总和位置中的每者(例如,S0和S1)可以对应于对应的自适应逻辑模块180的相应位位置。因而,本文描述的实施例旨在进行举例说明而非构成限制。
现在来看图13,在一些实施例中,第二逻辑阵列结构240可以被修改,以产生可以同时输出生成信号和传播信号的第三逻辑阵列结构260。在一些实施例中,传播逻辑路径224可以被形成在自适应逻辑模块180之间,以计算并路由第三逻辑阵列结构260中的传播信号或者传播信号的部分。此外,第三逻辑阵列结构260可以使用附加的电力门控信号(pctl)来输出传播信号。照此,自适应逻辑模块180可以包括被实施为部分地基于附加电力门控信号(pctl)的状态在传播信号和门控信号之间做出选择的复用器176D。相应地,为了输出传播信号,最高有效自适应逻辑模块180C可以被实施为使得附加电力门控信号在mux176D处选择传播信号,并且前一自适应逻辑模块180可以被实施为使得附加电力门控信号在mux 176D处不选择传播信号。出于该目的,传播信号和/或传播信号的部分(例如,ptop和/或pbot)可以经由自适应逻辑模块180通过第三逻辑阵列结构260进位。此外,在最高有效自适应逻辑模块180C处,可以选择可以部分地基于传播信号的部分(例如,ptob和/或pbot)进行计算的传播信号,传播信号的所述部分将被馈送到P1输入位置并且接下来将被输出到最高有效自适应逻辑模块180C的S1输出上。替代地或此外,在一些实施例中,可以向自适应逻辑模块180中的一者或多者施加LUT掩模,以生成P0、P1、G0和/或G1的值,以在不使用门控信号和/或附加电力门控信号(pctl)的情况下对传播信号和/或生成信号进行适当路由。
如同图12的第二逻辑阵列结构240,图13的第三逻辑阵列结构260可以另外包括被实施为输出生成信号的生成逻辑路径223。相应地,自适应逻辑模块180的进位输出值可以进位到后续自适应逻辑模块180中,并且该过程可以重复直到进位值被路由到最高有效自适应逻辑模块180C中为止。在最高有效自适应逻辑模块180C处,由第三逻辑阵列结构260实施的整个算术运算(例如,加法)的进位输出值可以在最高有效逻辑模块180C的S0位置处作为生成信号被路由出来。相应地,第三逻辑阵列结构260可以同时计算并输出对应于算术运算(例如,加法运算)的总和、生成信号和传播信号。
现在来看图14,图12的第二逻辑阵列结构240和/或图13的第三逻辑阵列结构260的自适应逻辑模块180的输出(例如,S0和/或S1输出电路)可以被路由到输出路径280(例如,输出路径电路)中。例如,如所示,对应于所例示的S0位置的输出可以被作为若干输入中的一个输入而路由至第一mux 176A,并且被作为附加的若干输入中的一个输入而路由至第二mux176B。此外,第一和第二mux 176(例如,分别为176A和176B)中的每者可以通信耦合至相应的输出寄存器282(例如,触发器式寄存器)。此外,对应于S1位置的输出可以被作为输入而路由至第三和第四mux 176(例如,分别为176C和176D),所述第三和第四mux 176中的每者可以被实施为在若干相应输入之间进行选择。第三mux 176C和/或第四mux 176D可以另外耦合至相应的输出寄存器282。在一些实施例中,然而,输出路径280的mux 176可以绕过对应的输出寄存器282,和/或可以将输出路径280实施为没有输出寄存器282,使得输出被直接复用(例如,选择)到路由路径上。
相应地,现在参考图13和图14,为了将生成信号和传播信号输出到相应的输出路径280上,最高有效自适应逻辑模块180C可以将生成信号路由至对应于S0输出位置的输出路径280,并且可以将传播信号路由至对应于S1输出位置的输出路径280。替代地,最高有效逻辑模块180C可以将传播信号路由至对应于S0输出位置的输出路径280,并且可以将生成信号路由至对应于S1输出位置的输出路径280。由于通信耦合至最高有效自适应逻辑模块180C的输出的输出路径280中的每者可以被生成信号和传播信号消耗,因而最高有效自适应逻辑模块180可以不执行算术运算(例如,加法)。例如,在一些实施例中,由于算术运算的结果可以不被作为最高有效自适应逻辑模块180C的输出而路由出来,因而,最高有效自适应逻辑模块180C可以不被用于产生总和值和/或执行算术。
在一些实施例中,另一方面,自适应逻辑模块180可以同时输出生成信号、传播信号以及对应于算术运算的结果(例如,总和)的若干位,如图15所示。更具体而言,可以直接从生成逻辑路径223路由生成信号,并将其馈送到输出路径280中包含的一个或多个mux的输入中。例如,如所示,可以将生成信号连同对应于S0的输出位置的算术运算的结果(例如,总和位)路由至第一mux 176A和第二mux 176B。相应地,在一些实施例中,第一mux 176A或第二mux 176B之一可以被实施为选择生成信号作为通往对应输出寄存器282和/或直接通往路由路径(例如,绕过输出寄存器282)的输出。其余mux 176(例如,176A或176B)可以被实施为选择算术运算的结果(例如,总和值)作为通往对应的输出寄存器282和/或直接通往路由路径的输出。相应地,生成信号和总和可以被同时输出至通信耦合至自适应逻辑模块180的输出路径280。此外,可以将传播信号连同对应于S1的输出位置的附加算术运算的结果(例如,总和位)路由至第三mux176C和第四mux 176D。相应地,在一些实施例中,第三mux176C或第四mux 176D之一可以被实施为选择传播信号作为通往对应输出寄存器282和/或直接通往路由路径(例如,绕过输出寄存器282)的输出。其余mux 176(例如,176A或176B)可以被实施为选择附加算术运算的结果(例如,总和值)作为通往对应输出寄存器282和/或直接通往路由路径的输出。相应地,生成信号、传播信号和若干总和位(例如,由算术运算得到的位)可以被同时输出至通信耦合至自适应逻辑模块180的输出路径280。
此外,在一些实施例中,生成信号和/或传播信号可以被路由至与第二逻辑阵列结构240、第三逻辑阵列结构260和/或逻辑阵列块202中包含的自适应逻辑模块180中的任何自适应逻辑模块耦合的相应输出路径280。例如,生成信号、传播信号、和/或生成信号和/或传播信号的中间值(例如,传播信号的第一或第二部分)可以被从适当自适应逻辑模块180路由,所述适当自适应逻辑模块180例如是最高有效自适应逻辑模块180C、处于最低有效自适应逻辑模块180和最高有效自适应逻辑模块180C之间的自适应逻辑模块180、和/或其它。相应地,在一些实施例中,传播信号的第一部分(ptop)可以被从进位链内部(例如,最低有效自适应逻辑模块180和最高有效自适应逻辑模块180C之间)的自适应逻辑模块180路由出来,例如,路由至对应的输出路径。此外,传播信号的第二部分(pbot)可以被从最高有效自适应逻辑模块180C路由至对应于最高有效自适应逻辑模块180C的输出路径。相应地,在这样的实施例中,传播信号的第一部分和第二部分可以在从相应自适应逻辑模块180输出之后被组合,以确定传播信号。此外,可以认识到,生成信号和/或传播信号可以被从任何数量的自适应逻辑模块180路由。因而,实施例旨在举例说明而非构成限制。
此外,任何适当逻辑阵列结构(例如,200、240、260和/或其它)可以被实施为将传播信号和/或输出信号从若干适当位位置中的任何位位置处的自适应逻辑模块180路由出来。例如,可以将传播信号和/或生成信号从图13的第三算术逻辑结构260的任何适当位位置处的自适应逻辑模块180中路由出来。相应地,本文描述的实施例旨在举例说明而非构成限制。
此外,图16提供了被实施为使用对应于第八和第九算术运算(例如,a[9:8])的自适应逻辑模块180G输出传播信号的第一部分(ptop)和生成信号的第一部分(ctop)的第四逻辑阵列结构290的例示性实施例。此外,第四逻辑阵列结构290可以被实施为使用最高有效自适应逻辑模块180C输出传播信号的第二部分(pbot)和生成信号的第二部分(cbot)。与图15的自适应逻辑模块180形成对照的是,自适应逻辑模块180G和最高有效自适应逻辑模块180C中的每者可以使用输出位置(例如,S0和S1)中的每者对生成信号和/或传播信号的对应部分进行路由。例如,自适应逻辑模块180G和最高有效自适应逻辑模块180C中的每者可以分别提供两个输出(例如,传播信号输出和生成信号输出),而可以被实施为除了将传播信号和生成信号路由出来之外还执行算术运算的图15的自适应逻辑模块180可以输出四个输出(例如,生成信号、传播信号、第一算术运算结果和第二算术运算结果)。相应地,图16可以对应于图13的第三逻辑阵列结构260的修改实施例。
尽管本文描述的实施例可以被描述为具有部分地基于集成电路器件12的精度而确定的操作数区段精度,但是在一些实施例中,在重新结构化加法器160处使用的操作数区段精度可以是部分地基于可以自然地装配到集成电路器件中的精度而确定的,所述精度可以取决于集成电路器件12的实施重新结构化加法器160的面积。例如,操作数区段可以包括13位、19位和/或其它,以实现在集成电路器件12上的更容易的放置和/或重新结构化加法器160的更有效率的生成和/或构建。此外,在一些实施例中,在重新结构化加法器160的不同解码器处接收到的操作数区段可以包括不同数量的位。此外,在一些实施例中,操作数区段的精度可以取决于子加法器102的实施方式,其可以包括本文描述的技术的任何适当组合。相应地,本文描述的实施例旨在举例说明而非构成限制。
集成电路器件12可以是数据处理系统或者可以是数据处理系统的部件。例如,集成电路器件12可以是图17所示的数据处理系统320的部件。数据处理系统320可以包括主机处理器322、存储器和/或存储电路324、以及网络接口326。数据处理系统320可以包括更多或者更少的部件(例如,电子显示器、用户接口结构、专用集成电路(ASIC))。主机处理器322可以包括任何适当处理器,例如,
Figure BDA0002091718670000211
处理器或者精简指令处理器(例如,精简指令集计算机(RISC)、高级RISC机器(ARM)处理器),其可以管理对数据处理系统320的数据处理请求(例如,以执行加密、解密、机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排序、生物信息、网络安全模式识别、空间导航、或者其它)。存储器和/或存储电路324可以包括随机存取存储器(RAM)、只读存储器(ROM)、一个或多个硬盘驱动器或、闪存或者其它。存储器和/或存储电路324可以保存要被数据处理系统320处理的数据。在一些情况下,存储器和/或存储电路324还可以存储用于对集成电路器件12编程的配置程序(位流)。网络接口326可以允许数据处理系统320与其它电子设备通信。数据处理系统320可以包括几个不同封装或者可以被包含在单个封装衬底上的单个封装内。
在一个示例中,数据处理系统320可以是处理各种各样的不同请求的数据中心的部分。例如,数据处理系统320可以经由网络接口326接收数据处理请求,以执行加密、解密、机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排序、生物信息、网络安全模式识别、空间导航或者某一其它专门任务。主机处理器322可以使集成电路器件12的可编程逻辑织构被编程为具有适于实施所请求的任务的加法器。例如,主机处理器322可以指导存储在存储器和/或存储电路324上的配置数据(位流)编程到集成电路器件12的可编程逻辑织构中。配置数据(位流)可以表示用于诸如重新结构化加法器160的加法器的电路设计,其可以根据本文描述的技术被映射至可编程逻辑,以有效率地执行和/或计算所请求的任务。通过将加法器有效率地映射至可编程逻辑和/或在电路中有效率地实施加法器的子加法器,例如将子加法器实施为同时输出生成信号、传播信号和总和(这样做可以减少用于执行可能涉及大型算术运算的所请求任务的路由和面积资源),集成电路器件12可以快速辅助数据处理系统320执行所请求的任务。
尽管在本公开中阐述的实施例可能易于产生各种修改和替代形式,但已经在附图中以举例方式示出并且在文中详细描述了具体的实施例。例如,可以实施本文描述的实施例和/或技术的任何适当组合。相应地,应当理解,本公开并非旨在局限于所公开的特定形式。本公开将涵盖落在由下面的所附权利要求所限定的本公开的精神和范围内的所有修改、等同物和替代物。
文中介绍并且要求保护的技术被参照并且被应用于实物以及具有可实践本质的具体示例,其以可演示的方式改进了本技术领域,并且因而其并不是抽象、无形或者纯理论的。此外,如果附在本说明书末尾的任何权利要求中包含被指定为“用于[执行]……[功能]的装置”或者“用于[执行]……[功能]的步骤”一个或多个要素,那么其旨在表明应当根据35U.S.C.112(f)解释这样的要素。然而,对于包含通过任何其它方式指定的要素的任何权利要求,旨在表明不应根据35U.S.C.112(f)对这种要素进行解释。

Claims (21)

1.集成器件上的加法器电路,所述加法器电路包括:
被配置为接收第一输入和第二输入的输入电路;
通信耦合至所述输入电路的第一算术逻辑电路,其中,所述第一算术逻辑电路被配置为:
确定所述第一输入的第一位与所述第二输入的第一位的第一总和;并且
至少部分地基于所述第一总和确定传播信号和生成信号;以及
通信耦合至所述第一算术逻辑电路的输出电路,其中,所述输出电路被配置为同时输出所述生成信号、所述传播信号和所述第一总和。
2.根据权利要求1所述的加法器电路,包括通信耦合至所述输入电路的第二算术逻辑电路,其中,所述第二算术逻辑电路包括传播逻辑路径电路和生成逻辑路径电路,并且其中,所述第二算术逻辑电路被配置为:
确定所述第一输入的第二位与所述第二输入的第二位的第二总和;
至少部分地基于所述第二总和确定附加传播信号和附加生成信号;
将所述附加传播信号路由至所述传播逻辑路径电路;以及
将所述附加生成信号路由至所述生成逻辑路径电路。
3.根据权利要求2所述的加法器电路,其中,所述第一算术逻辑电路通信耦合至所述传播逻辑路径电路和所述生成逻辑路径电路,并且其中,所述第一算术逻辑电路被配置为:
经由所述传播逻辑路径电路接收所述附加传播信号;
经由所述生成逻辑路径电路接收所述附加生成信号;
至少部分地基于所述附加传播信号确定所述传播信号;以及
至少部分地基于所述附加生成信号确定所述生成信号。
4.根据权利要求3所述的加法器电路,其中,所述第一算术逻辑电路经由基于实例的连接而通信耦合至所述生成逻辑路径电路。
5.根据权利要求1所述的加法器电路,包括通信耦合至所述输出电路的输出路径电路,其中,所述输出路径电路包括被配置为接收所述生成信号或所述传播信号之一以及所述第一总和的复用器。
6.根据权利要求1所述的加法器电路,包括:
通信耦合至所述输入电路的第二算术逻辑电路,其中,所述第二算术逻辑电路被配置为:
确定所述第一输入的第二位与所述第二输入的第二位的第二总和;并且
至少部分地基于所述第二总和确定附加传播信号;以及
通信耦合至所述第二算术逻辑电路的附加输出电路,其中,所述输出电路被配置为同时输出所述附加传播信号和所述第二总和。
7.根据权利要求1所述的加法器电路,其中,所述传播信号包括附加传播信号的第一部分,其中,所述第一算术逻辑电路被配置为接收所述附加传播信号的第二部分,并且其中,所述第一算术逻辑电路被配置为至少部分地基于所述附加传播信号的所述第一部分和所述第二部分的逻辑与来计算所述附加传播信号。
8.根据权利要求1所述的加法器电路,其中,所述生成信号包括由所述第一总和得到的进位输出信号。
9.根据权利要求1所述的加法器电路,其中,所述第一算术逻辑电路被配置为独立于所述生成信号确定所述传播信号。
10.根据权利要求1所述的加法器电路,其中,所述输出电路包括第一输出电路和第二输出电路,其中,所述第一输出电路被配置为同时输出所述生成信号的第一部分和所述传播信号的第一部分,并且其中,所述第二输出电路被配置为同时输出所述传播信号的第二部分和所述生成信号的第二部分。
11.根据权利要求1所述的加法器电路,包括进位跳跃结构,其中,所述进位跳跃结构包括传播逻辑路径电路和生成逻辑路径电路。
12.根据权利要求11所述的加法器电路,其中,所述生成逻辑路径电路包括进位链电路。
13.根据权利要求11所述的加法器电路,其中,所述传播逻辑路径电路包括选择电路。
14.根据权利要求1所述的加法器电路,其中,所述集成器件包括现场可编程门阵列。
15.集成电路器件上的加法器电路,所述加法器电路包括:
被配置为接收具有第一组位的第一输入的第一输入电路;
被配置为接收具有第二组位的第二输入的第二输入电路;
耦合至所述第一输入电路和所述第二输入电路的第一子加法器电路,其中,所述第一子加法器电路被配置为接收所述第一组位的第一子组和所述第二组位的第一子组,并且至少部分地基于所述第一组位的第一子组和所述第二组位的第一子组同时确定生成信号、传播信号以及所述第一组位的第一子组和所述第二组位的第一子组的第一总和;
耦合至所述第一子加法器电路的前缀网络,其中,所述前缀网络被配置为至少部分地基于所述生成信号和所述传播信号确定进位输出信号,其中,所述前缀网络包括第一组合电路;以及
耦合至所述前缀网络的第二组合电路,其中,所述第二组合电路被配置为至少部分地基于所述进位输出信号确定所述第一组位和所述第二组位的第二总和的部分。
16.根据权利要求15所述的加法器电路,其中,所述第二组合电路包括第二子加法器电路,所述第二子加法器电路耦合至所述第一子加法器电路和所述前缀网络并且被配置为将所述第一总和与所述进位输出信号相加,以确定所述第一组位和所述第二组位的所述第二总和的所述部分。
17.根据权利要求15所述的加法器电路,其中,所述前缀网络的拓扑结构包括Kogge-Stone拓扑结构、Brent-Kung拓扑结构、Sklansky拓扑结构、或其组合。
18.根据权利要求15所述的加法器电路,其中,所述第一子加法器电路被配置为至少部分地基于所述第一组位的第一子组和所述第二组位的第一子组确定所述传播信号的第一部分和所述传播信号的第二部分,并且其中,所述第一子加法器电路被配置为至少部分地基于所述传播信号的所述第一部分和所述传播信号的所述第二部分确定所述传播信号。
19.一种有形非暂态机器可读介质,包括用以构建加法器电路的机器可读指令,所述机器可读指令在由一个或多个处理器执行时使得所述一个或多个处理器:
将输入电路配置为接收第一输入和第二输入;
对通信耦合至所述输入电路的算术逻辑电路进行配置,其中,对所述算术逻辑电路进行配置包括将所述算术逻辑电路配置为:
确定所述第一输入的第一位与所述第二输入的第一位的总和;并且
至少部分地基于所述总和确定传播信号和生成信号;并且
将通信耦合至所述算术逻辑电路的输出电路配置为同时输出所述生成信号、所述传播信号和所述总和。
20.根据权利要求19所述的有形非暂态机器可读介质,其中,所述算术逻辑电路包括所述输出电路,并且其中,所述机器可读指令在由一个或多个处理器执行时,使得所述一个或多个处理器:
将通信耦合至所述算术逻辑电路的输出路径电路的复用器配置为接收所述生成信号和所述传播信号之一以及所述总和。
21.一种系统,包括:
用于将可编程逻辑器件的输入电路配置为接收第一输入和第二输入的装置;
用于对通信耦合至所述可编程逻辑器件的所述输入电路的所述可编程逻辑器件的算术逻辑电路进行配置的装置,其中,所述算术逻辑电路被配置为:
确定所述第一输入的第一位与所述第二输入的第一位的总和;并且
至少部分地基于所述总和确定传播信号和生成信号;以及
用于将通信耦合至所述算术逻辑电路的输出电路配置为同时输出所述生成信号、所述传播信号和所述总和的装置。
CN201910505586.XA 2018-07-12 2019-06-12 高性能fpga加法 Pending CN110780843A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862697265P 2018-07-12 2018-07-12
US62/697,265 2018-07-12
US16/147,098 US10340920B1 (en) 2018-07-12 2018-09-28 High performance FPGA addition
US16/147,098 2018-09-28

Publications (1)

Publication Number Publication Date
CN110780843A true CN110780843A (zh) 2020-02-11

Family

ID=65231569

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201910505505.6A Pending CN110716708A (zh) 2018-07-12 2019-06-12 用于非常大整数的加法器电路
CN201910505586.XA Pending CN110780843A (zh) 2018-07-12 2019-06-12 高性能fpga加法
CN201910505521.5A Pending CN110716707A (zh) 2018-07-12 2019-06-12 前缀网络定向的加法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910505505.6A Pending CN110716708A (zh) 2018-07-12 2019-06-12 用于非常大整数的加法器电路

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910505521.5A Pending CN110716707A (zh) 2018-07-12 2019-06-12 前缀网络定向的加法

Country Status (2)

Country Link
US (4) US11334318B2 (zh)
CN (3) CN110716708A (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334318B2 (en) * 2018-07-12 2022-05-17 Intel Corporation Prefix network-directed addition
US20200159495A1 (en) * 2018-11-15 2020-05-21 Samsung Electronics Co., Ltd. Processing apparatus and method of processing add operation therein
US11301213B2 (en) 2019-06-24 2022-04-12 Intel Corporation Reduced latency multiplier circuitry for very large numbers
TWI764297B (zh) * 2019-11-20 2022-05-11 大陸商珠海南北極科技有限公司 累加電路
CN111522527B (zh) * 2020-05-09 2022-04-29 支付宝(杭州)信息技术有限公司 防止数据寄存器饱和溢出的方法、装置及电子设备
US11620106B1 (en) * 2020-12-16 2023-04-04 The United States Of America As Represented By The Secretary Of The Navy Parallel hybrid adder
CN116029238B (zh) * 2023-03-27 2023-06-16 中科亿海微电子科技(苏州)有限公司 一种对加法器进行时序分析的方法及装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3316393A (en) * 1965-03-25 1967-04-25 Honeywell Inc Conditional sum and/or carry adder
US3553446A (en) * 1966-08-04 1971-01-05 Honeywell Inc Carry determination logic
US4549280A (en) 1982-12-20 1985-10-22 Sperry Corporation Apparatus for creating a multiplication pipeline of arbitrary size
NL8401308A (nl) * 1984-04-24 1985-11-18 Philips Nv Voloptelschakeling.
US4958312A (en) 1987-11-09 1990-09-18 Lsi Logic Corporation Digital multiplier circuit and a digital multiplier-accumulator circuit which preloads and accumulates subresults
US5047974A (en) 1987-11-24 1991-09-10 Harris Corporation Cell based adder with tree structured carry, inverting logic and balanced loading
US4858168A (en) * 1988-02-16 1989-08-15 American Telephone And Telegraph Company Carry look-ahead technique having a reduced number of logic levels
US5122982A (en) * 1988-02-29 1992-06-16 Chopp Computer Corporation Carry generation method and apparatus
JP3018754B2 (ja) * 1992-07-10 2000-03-13 日本電気株式会社 桁上げ先見加算方法とその装置
US5278783A (en) * 1992-10-30 1994-01-11 Digital Equipment Corporation Fast area-efficient multi-bit binary adder with low fan-out signals
US5327369A (en) * 1993-03-31 1994-07-05 Intel Corporation Digital adder and method for adding 64-bit, 16-bit and 8-bit words
US5784305A (en) 1995-05-01 1998-07-21 Nec Corporation Multiply-adder unit
US5726927A (en) 1995-09-11 1998-03-10 Digital Equipment Corporation Multiply pipe round adder
US6233671B1 (en) * 1998-03-31 2001-05-15 Intel Corporation Staggering execution of an instruction by dividing a full-width macro instruction into at least two partial-width micro instructions
AU3884100A (en) * 1999-03-23 2000-10-09 Sony Electronics Inc. Adder circuit
US6529931B1 (en) 1999-04-14 2003-03-04 Agere Systems Inc. Prefix tree adder with efficient carry generation
WO2001046795A2 (en) * 1999-12-23 2001-06-28 Intel Corporation Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
US6539413B1 (en) * 2000-03-15 2003-03-25 Agere Systems Inc. Prefix tree adder with efficient sum generation
US7155473B2 (en) * 2000-07-21 2006-12-26 Utstarcom, Inc. High-speed parallel-prefix modulo 2n-1 adders
US6839729B2 (en) * 2001-09-28 2005-01-04 Intel Corporation Method and apparatus for a multi-purpose domino adder
US7325025B2 (en) * 2001-12-18 2008-01-29 Intel Corporation Look-ahead carry adder circuit
US7290027B2 (en) * 2002-01-30 2007-10-30 International Business Machines Corporation Circuit suitable for use in a carry lookahead adder
US7206802B2 (en) * 2002-10-10 2007-04-17 International Business Machines Corporation Hybrid carry look ahead/carry select adder including carry logic generating complementary hot carry signals, and method for producing the carry logic
US7152089B2 (en) * 2003-05-05 2006-12-19 Sun Microsystems, Inc. Parallel prefix networks that make tradeoffs between logic levels, fanout and wiring racks
US7523153B2 (en) * 2005-02-11 2009-04-21 International Business Machines Corporation Method of forcing 1's and inverting sum in an adder without incurring timing delay
US7509368B2 (en) * 2005-05-09 2009-03-24 Intel Corporation Sparse tree adder circuit
US8661072B2 (en) * 2008-08-19 2014-02-25 International Business Machines Corporation Shared parallel adder tree for executing multiple different population count operations
US8683398B1 (en) * 2012-11-27 2014-03-25 International Business Machines Corporation Automated synthesis of high-performance two operand binary parallel prefix adder
EP3264260B1 (en) * 2016-06-30 2019-10-16 Nxp B.V. Lossy arithmetic
US10171105B2 (en) * 2016-08-25 2019-01-01 International Business Machines Corporation Carry-less population count
US11334318B2 (en) * 2018-07-12 2022-05-17 Intel Corporation Prefix network-directed addition
US11169779B2 (en) * 2019-10-23 2021-11-09 Nvidia Corp. Full adder cell with improved power efficiency

Also Published As

Publication number Publication date
US11662979B2 (en) 2023-05-30
US10873332B2 (en) 2020-12-22
US10340920B1 (en) 2019-07-02
CN110716708A (zh) 2020-01-21
CN110716707A (zh) 2020-01-21
US20190114140A1 (en) 2019-04-18
US11334318B2 (en) 2022-05-17
US20190042194A1 (en) 2019-02-07
US20210075425A1 (en) 2021-03-11

Similar Documents

Publication Publication Date Title
US10340920B1 (en) High performance FPGA addition
US11899746B2 (en) Circuitry for high-bandwidth, low-latency machine learning
US7930521B1 (en) Reducing multiplexer circuitry associated with a processor
US11750195B2 (en) Compute dataflow architecture
US20190042939A1 (en) Circuitry for low-precision deep learning
CN114943057A (zh) 基于点积的处理元件
US11163530B2 (en) Programmable-logic-directed multiplier mapping
Cherbaka Verification and configuration of a run-time reconfigurable custom computing integrated circuit for dsp applications
US11010134B2 (en) High radix subset code multiplier architecture
US6750674B1 (en) Carry chain for use between logic modules in a field programmable gate array
US8214419B2 (en) Methods and apparatus for implementing a saturating multiplier
US7475221B1 (en) Circular buffer addressing
US20230239136A1 (en) Pipelined Galois Counter Mode Hash Circuit
US11768661B2 (en) Efficient logic blocks architectures for dense mapping of multipliers
US7581088B1 (en) Conditional execution using an efficient processor flag
Supritha et al. High speed and efficient ALU using modified booth multiplier
US11016733B2 (en) Continuous carry-chain packing
JPH076032A (ja) 高速のマイクロプロセッサ分岐決定回路
Myjak A medium-grain reconfigurable architecture for digital signal processing
US7358767B1 (en) Efficient multiplexer for programmable chips
Dahle Kestrel: design and implementation of a massively parallel coprocessor
Myjak A two-level reconfigurable cell array for digital signal processing
CN114675803A (zh) 用于浮点尾数的舍入电路
US9891904B1 (en) Method and apparatus for optimizing implementation of a soft processor executing a fixed program on a target device
Xydis et al. A reconfigurable arithmetic data-path based on regular interconnection

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