CN107533455B - 增量/减量装置和方法 - Google Patents

增量/减量装置和方法 Download PDF

Info

Publication number
CN107533455B
CN107533455B CN201680023212.9A CN201680023212A CN107533455B CN 107533455 B CN107533455 B CN 107533455B CN 201680023212 A CN201680023212 A CN 201680023212A CN 107533455 B CN107533455 B CN 107533455B
Authority
CN
China
Prior art keywords
gate
input
output
row
increment
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.)
Active
Application number
CN201680023212.9A
Other languages
English (en)
Other versions
CN107533455A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN107533455A publication Critical patent/CN107533455A/zh
Application granted granted Critical
Publication of CN107533455B publication Critical patent/CN107533455B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/5055Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination in which one operand is a constant, i.e. incrementers or decrementers

Landscapes

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

Abstract

一种方法,包括:接收N位无符号数和控制信号;响应于控制信号指示增量运算,通过具有(2m+3)级的2输入逻辑门的增量/减量装置将N位无符号数增加1,其中m等于log2(N);以及响应于控制信号指示减量运算,通过增量/减量装置将N位无符号数减小1。

Description

增量/减量装置和方法
技术领域
本发明涉及中央处理单元和数字信号处理器设计,并且在特定实施方式中,涉及增量/减量装置和方法。
背景技术
浮点算术运算广泛地用于诸如中央处理单元(Central Process Unit,CPU)、数字信号处理器(Digital Signal Processor,DSP)等的数字应用中。实数可以用浮点表示法写入。例如,实数‘a’可以由以下等式表示:
a=(-1)S·Ma·bq (1)
其中,S是实数‘a’的符号;Ma是实数‘a’的尾数;b是该实数的基数(2或10),q是实数‘a’的指数。
诸如增量/减量处理的浮点算术运算可以由各种逻辑电路执行。例如,可以基于如下加法器来执行增量处理,该加法器的第一输入被配置成接收要增加1的数并且该加法器的第二输入被配置成接收被设置为1的二进制数。另一方面,对于减量处理,将第一输入的数据与值被设置为-1的第二输入相加。两个n位二进制数由加法器处理以生成(n+1)位输出。通常,基于加法器(例如,逐位进位加法器)的增量/减量运算的计算延迟是(n-1)级的逻辑门。
发明内容
通过本发明的提供用于对二进制数应用增量/减量运算的装置和方法的优选实施方式,总体解决或规避了这些问题及其他问题并且总体实现了技术优点。
根据一个实施方式,一种装置包括:输入块,其被配置成接收N位无符号数,其中输入块包括N个传播和生成单元;按行和列布置的多个计算单元,其中列的数目等于N并且行的数目等于log2(N),其中每一行具有索引ri并且变量d等于2ri,并且其中每个计算单元具有与前一行中的两个单元连接的两组输入,其中,第一组输入连接至前一行中的第一计算单元的输出并且与计算单元竖向对准,并且第二组输入连接至与第一计算单元相距d个单元的第二计算单元的输出;以及包括多个异或门的输出块。
根据另一实施方式,一种系统包括:输入块,其被配置成接收N位无符号数和控制信号,其中输入块包括N个传播和生成单元;多个计算单元,其按行和列布置并且耦接至输入块,其中计算单元被配置成执行增量/减量运算,该增量/减量运算通过(2m+3)级的2输入逻辑门被施加于N位无符号数,其中m等于log2(N);以及包括多个异或门的输出块,所述多个异或门耦接至所述多个计算单元的最后一行。
根据又一实施方式,一种方法包括:接收N位无符号数和控制信号;响应于控制信号指示增量运算,通过具有(2m+3)级的2输入逻辑门的增量/减量装置将N位无符号数增加1,其中m等于log2(N);以及响应于控制信号指示减量运算,通过增量/减量装置将N位无符号数减小1。
本发明的优选实施方式的优点是通过具有(2·log2(N)+3)级的逻辑门(例如,2输入与非门)的增量/减量装置来实现二进制数的快速增量/减量处理。这样的装置有助于减少逻辑门延迟,从而提高浮点算术运算的效率。
前面已经相当广泛地概述了本发明的特征和技术优点,以便可以更好地理解下面对本发明的详细描述。在下文中将对形成本发明的权利要求的主题的本发明的另外特征和优点进行描述。本领域技术人员应当理解,所公开的构思和具体实施方式可以容易地用作对实现本发明的相同目的的其他结构或处理进行修改或设计的基础。本领域技术人员还应当认识到,这样的等同结构未脱离所附权利要求书中阐述的本发明的精神和范围。
附图说明
为了更完整地理解本发明及其优点,现在参照以下结合附图进行的描述,在附图中:
图1示出了根据本公开内容的各个实施方式的增量/减量装置的框图;
图2示出了根据本公开内容的各个实施方式的8位增量/减量装置的框图;
图3示出了根据本公开内容的各个实施方式的第一行的传播和生成单元的示意图;
图4示出了根据本公开内容的各个实施方式的其他行的传播和生成单元的示意图;
图5示出了根据本公开内容的各个实施方式的图2所示的8位增量/减量装置的最高有效位(Most Significant Bit,MSB)单元的示意图;
图6示出了根据本公开内容的各个实施方式的增量运算;
图7示出了根据本公开内容的各个实施方式的图6所示的8位增量/减量装置的第一行的示意图;
图8示出了根据本公开内容的各个实施方式的图6所示的8位增量/减量装置的第二行的示意图;
图9示出了根据本公开内容的各个实施方式的图6所示的8位增量/减量装置的第三行的示意图;
图10示出了根据本公开内容的各个实施方式的图6所示的8位增量/减量装置的第四行的示意图;
图11示出了根据本公开内容的各个实施方式的图6所示的8位增量/减量装置的输出块的示意图;
图12示出了根据本公开内容的各个实施方式的增量/减量运算的流程图。
除非另有说明,否则不同附图中的对应附图标记和符号通常指代对应部分。绘制附图,以清楚地说明各个实施方式的相关方面,但不一定按比例绘制。
具体实施方式
下面详细讨论本优选实施方式的实施和使用。然而,应当理解,本发明提供的许多可应用的发明构思可以实施在多种具体环境中。所讨论的具体实施方式仅说明用以实施和使用本发明的具体方式,而不限制本发明的范围。
将在具体环境——即在数字电路应用中的增量/减量装置——中关于优选实施方式描述本发明。然而,本发明还可以应用于诸如中央处理单元(Central Processing Unit,CPU)、数字信号处理(Digital Signal Processing,DSP)等的应用中的各种浮点算术运算。在下文中,将参照附图详细说明各个实施方式。
图1示出了根据本公开内容的各个实施方式的增量/减量装置的框图。增量/减量装置100具有两个输入和一个输出,如图1所示。第一输入A被配置成接收二进制格式的N位无符号数。在一些实施方式中,N位无符号数的范围为从位0至位(n-1)。如图1所示,N位无符号数的二进制表示是A[n-1:0]。在一些实施方式中,N位无符号数A是要取决于在增量/减量装置100的第二输入处接收的控制信号INC/DEC而增加1或减小1的数。
增量/减量装置100的第二输入被配置成接收用于指示增量运算和减量运算的控制信号INC/DEC。更具体地,当对N位无符号数A执行增量运算时,将INC/DEC设置为以二进制表示的1。另一方面,当对N位无符号数A执行减量运算时,将INC/DEC设置为以二进制表示的0。
增量/减量装置100的输出执行N位无符号数A的增量或减量运算。增量/减量装置100的输出生成二进制格式的数。输出OUT具有范围从位0至位n的(n+1)位。
增量/减量装置100包括输入块、输出块、以及按行和列布置的多个计算单元。列的数目等于N。行的数目等于m,其中m等于log2(N)。增量/减量装置100的最长延迟路径等于(2·m+3)级的逻辑门(例如,2输入与非门)。下面将参照图2至图11来详细描述增量/减量装置100的详细运算原理和示意图。
图2示出了根据本公开内容的各个实施方式的8位增量/减量装置的框图。8位增量/减量装置200接收一个8位无符号数(例如,图2所示的A),并且生成范围从位0至位8的9位输出数OUT。8位增量/减量装置200包括四行,即行201、行210、行211和行212。行201中的单元的结构不同于行210、行211和行212中的单元的结构。行201可替代地称为8位增量/减量装置200的输入块。行210、行211和行212的单元共享相同的结构。在整个说明书中,行210、行211和行212的单元可替代地称为计算单元。如图2所示,这三行包括多个单元。这些单元按列和行布置。8位无符号数中的每一位被馈送到一列中。如此,8位增量/减量装置200包括如图2所示的八列。
行201包括八个传播和生成单元。每个单元包括传播输出和生成输出。行201的每个单元被配置成接收8位无符号数A的位和控制信号INC/DEC。例如,第四传播和生成单元被配置成接收位A(3)和控制信号INC/DEC。位A(3)和控制信号INC/DEC由行201的第四传播和生成单元的逻辑门处理。作为结果,在行201的第四传播和生成单元的输出处生成了传播输出P(0,3)和生成输出G(0,3)。下面将参照图3来描述行201的传播和生成单元的详细示意图。
行210包括八个传播和生成单元,其中每个传播和生成单元与行201中的对应传播和生成单元竖向对准。行201中的对应传播和生成单元被称为前一单元,这是因为它位于行210中的传播和生成单元上方并且与行210中的传播和生成单元竖向对准。例如,行201的第四单元(单元G(0,3)和P(0,3))是行210的第四单元(单元G(1,3)和P(1,3))的前一单元。
行210的每个单元包括传播输出和生成输出。下面将参照图4来详细描述行210的传播和生成单元的示意图。
行210的每个单元具有五个输入。在这五个输入中,四个输入连接至行201的单元的输出,以及一个输入连接至控制信号INC/DEC。单元(例如,包括G(1,1)和P(1,1)的单元)的第一输入和第二输入连接至前一单元(例如,包括G(0,1)和P(0,1)的单元)的输出。该单元(例如,包括G(1,1)和P(1,1)的单元)的第三输入和第四输入连接至与前一单元紧邻的单元的输出。换句话说,该单元的第三输入和第四输入连接至与前一单元相距一个单元的单元(例如,包括G(0,0)和P(0,0)的单元)的输出。
总之,行210的每个单元的输入连接至该单元的在行201中的前一单元的输出以及行201中的与前一单元相距d个单元的在前单元的输出。在一些实施方式中,d等于2ri,其中ri是行210的行索引。行210的行索引为0,因而d等于1。因此,在行210中,每个单元具有连接至其前一单元的输入并且具有连接至与前一单元相距一个单元的在前单元的输入。根据该连接原理,行210的单元的一些输入连接至不存在于行201中的单元。行210的单元的这些输入可以被设置为0。
行211包括八个传播和生成单元,其中每个传播和生成单元与行210中的对应单元竖向对准,如图2所示。行210中的对应单元被称为前一单元,这是因为它位于行211中的单元上方并且与行211中的单元竖向对准。行211的单元具有与行210的单元相同的示意图。
行211的行索引为1。因此,行211的d等于2。行211的每个单元具有五个输入。单元(例如,包括G(2,4)和P(2,4)的单元)的第一输入和第二输入连接至行210中的前一单元(例如,包括G(1,4)和P(1,4)的单元)的输出。该单元(例如,包括G(2,4)和P(2,4)的单元)的第三输入和第四输入连接至与前一单元(例如,包括G(1,4)和P(1,4)的单元)相距两个单元(d=2)的单元(例如,包括G(1,2)和P(1,2)的单元)的输出。行211中的单元的一些输入连接至不存在的单元。这些输入被设置为0。
行212包括八个传播和生成单元,其中每个传播和生成单元与行211中的对应单元竖向对准。行211中的对应单元被称为前一单元。行212的单元具有与行210的单元相同的示意图。
行212的行索引为2。因此,行212的d等于4。如图2所示,行212的每个单元具有五个输入。单元(例如,包括G(3,4)和P(3,4)的单元)的第一输入和第二输入连接至行211中的前一单元(例如,包括G(2,4)和P(2,4)的单元)的输出。该单元(例如,包括G(3,4)和P(3,4)的单元)的第三输入和第四输入连接至与前一单元(例如,包括G(2,4)和P(2,4)的单元)相距四个单元(d=4)的单元(例如,包括G(2,0)和P(2,0)的单元)的输出。行212中的单元的一些输入连接至不存在的单元。这些输入被设置为0。
8位增量/减量装置200还包括输出块220和最高有效位(Most Significant Bit,MSB)单元G(4,0)。输出块220包括八个异或(exclusive OR,XOR)门。如图2所示,第一异或门具有连接至控制信号INC/DEC的第一输入以及连接至P(0,0)的第二输入。输出块220的其他异或门的第一输入连接至与行212中的前一单元相距一个单元的单元的输出,并且其他异或门的第二输入连接至行201中的对应传播输出。例如,第二异或门具有连接至G(3,0)的第一输入以及连接至P(0,1)的第二输入,如图2所示。下面将参照图11来描述输出块220的详细示意图。
MSB单元G(4,0)具有如图2所示的三个输入。MSB单元G(4,0)的第一输入连接至位A(7)。MSB单元G(4,0)的第二输入连接至生成输出G(3,7)。MSB单元G(4,0)的第三输入连接至控制信号INC/DEC。下面将参照图5来描述MSB单元G(4,0)的详细示意图。
应当注意,图2示出了每一行中的仅八个单元,每一行可以包括数百个这样的单元。本文所示的每一行中的单元的数目仅是为了清楚地说明各个实施方式的发明性方面的目的而进行限制。本申请的各个实施方式不限于每一行中的单元的任何特定数目。
此外,图2所示的图仅是示例,并不会过度地限制权利要求的范围。本领域技术人员将认识到许多变化、替代和修改。例如,图2所示的8位增量/减量装置200仅是一个实施方式,并且可以采用增量/减量装置的其他配置,包括针对不同位数的算术运算。
图3示出了根据本公开内容的各个实施方式的第一行(行201)的传播和生成单元的示意图。传播和生成单元300包括非门301、与门302、以及异或非门304。传播和生成单元300具有被配置成接收A(ci)的第一输入以及被配置成接收INC/DEC的第二输入,其中ci表示无符号数A的位。A(ci)和INC/DEC二者均被馈送到异或非门304中。异或非门304的输出是传播输出P(0,ci)。与门302的第一输入通过非门301耦接至INC/DEC。与门302的第二输入连接至A(ci)。与门302的输出是生成输出G(0,ci)。
图4示出了根据本公开内容的各个实施方式的其他行(行210至行212)的传播和生成单元的示意图。传播和生成单元400包括第一与门404、第二与门406、以及或门408。
传播和生成单元400具有四个输入。第一输入被配置成接收G(ri-1,ci-d),其中ri表示传播和生成单元400所在行的索引;ci表示传播和生成单元400所在列的索引;d是变量。在一些实施方式中,d由以下等式给出:
d=2ri (2)
如图4所示,传播和生成单元400的第二输入被配置成接收P(ri-1,ci)。传播和生成单元400的第三输入被配置成接收G(ri-1,ci)。传播和生成单元400的第四输入被配置成接收P(ri-1,ci-d)。
如图4所示,第一与门404具有两个输入。第一与门404的第一输入被配置成接收G(ri-1,ci-d)。第一与门404的第二输入连接至第二与门406的第一输入。第二与门406的第二输入被配置成接收P(ri-1,ci-d)。第二与门的输出是传播输出P(ri,ci)。
或门408的第一输入连接至第一与门404的输出。或门408的第二输入被配置成接收G(ri-1,ci)。或门408的输出是生成输出G(ri,ci)。
返回参照图2,8位增量/减量装置200包括三行传播和生成单元。对于N位增量/减量装置,存在m行传播和生成单元,其中m等于log2(N)。如图4所示,在每个传播和生成单元中,输入信号由两级逻辑门处理。因此,在N位增量/减量装置中,输入信号可以由2m级的逻辑门处理。此外,N位增量/减量装置的输入块由图3所示的具有三个逻辑门的逻辑门形成。因此,N位增量/减量装置的总计算延迟等于(2m+3)级的逻辑门(例如,2输入与非门)。
图5示出了根据本公开内容的各个实施方式的图2所示的8位增量/减量装置的MSB单元的示意图。MSB单元具有三个输入端口。MSB单元的第一输入端口被配置成接收控制信号INC/DEC。MSB单元的第二输入端口被配置成接收N位无符号数的高阶位(位A(N-1))。MSB单元的第三输入端口被配置成接收所述多个传播和生成单元的最后一行的最左侧单元的生成输出(G(m,N-1))。
MSB单元包括第一非门502、第二非门504、第三非门506、第一与非门512、第二与非门514以及第三与非门522。如图5所示,第三与非门522具有与第一与非门512的输出连接的第一输入以及与第二与非门514的输出连接的第二输入。
如图5所示,第一与非门512具有通过第一非门502与第一输入端口耦接的第一输入、通过第二非门504与第二输入端口耦接的第二输入、以及与第三输入端口耦接的第三输入。第二与非门514具有通过第三非门506与第三输入端口耦接的第一输入、与第一输入端口耦接的第二输入、以及与第一与非门512的第二输入连接的第三输入。
图6示出了根据本公开内容的各个实施方式的增量运算。8位无符号数A被馈送到类似于图2所示的8位增量/减量装置600中。如图6所示,无符号数A具有范围从位0到位7的8位。控制信号INC/DEC被馈送到8位增量/减量装置600中。在一些实施方式中,当对无符号数A执行增量运算时,将INC/DEC设置为以二进制表示的1。另一方面,当对无符号数A执行减量运算时,将INC/DEC设置为以二进制表示的0。
在增量运算中,无符号数A等于二进制格式的01110001。响应于控制信号INC/DEC指示由8位增量/减量装置600执行增量运算,8位增量/减量装置600的输出生成二进制格式的001101010,如图6所示。
图7示出了根据本公开内容的各个实施方式的图6所示的8位增量/减量装置的第一行的示意图。行201包括八个传播和生成单元,其中每个传播和生成单元包括两个输入和两个输出。每个传播和生成单元的第一输入被配置成接收无符号8位数A的位。每个传播和生成单元的第二输入被配置成接收控制信号INC/DEC。
无符号8位数A的每一位由图3所示的非门301、与门302以及异或非门304处理。第一行的传播输出为二进制格式的01110001,如图7所示。第一行的生成输出为二进制格式的00000000,如图7所示。
图8示出了根据本公开内容的各个实施方式的图6所示的8位增量/减量装置的第二行的示意图。行210包括八个传播和生成单元。每个单元包括传播输出和生成输出。返回参照图4,每个传播和生成单元具有两组输入。行210的行索引等于0。返回参照等式(2),行210的变量d等于1。换句话说,两组输入连接至行201中的前一单元以及与前一单元相距一个单元的单元。
例如,G(1,2)和P(1,2)的单元具有两组输入。这两组输入分别连接至P(0,2)和G(0,2)的单元的输出以及P(0,1)和G(0,1)的单元的输出。此外,G(1,0)和P(1,0)的单元具有两组输入。这两组输入分别连接至P(0,0)和G(0,0)的单元的输出以及P(0,-1)和G(0,-1)的单元的输出。如图8所示,G(0,-1)等于INC/DEC,其为1。如图8所示,P(0,-1)被设置为0。
行210中的八个传播和生成单元的输入信号由图4所示的逻辑门处理。第二行210的传播输出为二进制格式的01100000,如图8所示。第二行210的生成输出为二进制格式的00000001,如图8所示。
图9示出了根据本公开内容的各个实施方式的图6所示的8位增量/减量装置的第三行的示意图。行211包括八个传播和生成单元。每个单元包括传播输出和生成输出。每个单元具有两组输入。行211的行索引等于1。返回参照等式(2),行211的变量d等于2。换句话说,两组输入连接至行210中的前一单元以及与所述前一单元相距两个单元的单元。
例如,G(2,2)和P(2,2)的单元具有两组输入。这两组输入分别连接至P(1,2)和G(1,2)的单元的输出以及P(1,0)和G(1,0)的单元的输出。此外,如图9所示,G(2,0)和P(2,0)的单元具有两组输入。这两组输入分别连接至P(1,0)和G(1,0)的单元的输出以及P(1,-2)和G(1,-2)的单元的输出。如图9所示,G(1,-2)和P(1,-2)被设置为0。
行211中的八个传播和生成单元的输入信号由图4所示的逻辑门处理。行211的传播输出为二进制格式的00000000,如图9所示。行211的生成输出为二进制格式的00000001,如图9所示。
图10示出了根据本公开内容的各个实施方式的图6所示的8位增量/减量装置的第四行的示意图。行212包括八个传播和生成单元。每个单元包括传播输出和生成输出。每个单元具有两组输入。行212的行索引等于2。返回参照等式(2),行212的变量d等于4。换句话说,两组输入连接至行211中的前一单元以及与所述前一单元相距四个单元的单元。
例如,G(3,4)和P(3,4)的单元具有两组输入。这两组输入分别连接至P(2,4)和G(2,4)的单元的输出以及P(2,0)和G(2,0)的单元的输出。此外,如图10所示,G(3,0)和P(3,0)的单元具有两组输入。这两组输入分别连接至P(2,0)和G(2,0)的单元的输出以及P(2,-4)和G(2,-4)的单元的输出。如图10所示,G(2,-4)和P(2,-4)被设置为0。
行212中的八个单元的输入信号由图4所示的逻辑门处理。行212的传播输出为二进制格式的00000000,如图10所示。行212的生成输出为二进制格式的00000001,如图10所示。
图11示出了根据本公开内容的各个实施方式的图6所示的8位增量/减量装置的输出块的示意图。输出块包括八个异OR(exclusive OR,XOR)门和MSB单元G(4,0)。如图11所示,第一异或门具有与控制信号INC/DEC连接的第一输入以及与P(0,0)连接的第二输入。输出块的其他异或门具有与行213中的前一单元的生成输出的输出连接的第一输入以及与第一行201的对应传播输出连接的第二输入。例如,第二异或门具有与G(3,0)连接的第一输入以及与P(0,1)连接的第二输入。
第一行201的传播输出(从P(0,7)到P(0,0))为二进制格式的01110001,如图11所示。第四行212的生成输出(从G(3,7)到G(3,0))为二进制格式的00000001,如图11所示。
如图11所示,输入信号由八个异或门处理。异或门生成OUT(7)至OUT(0),其为二进制格式的01110010。A(7)、G(3,7)和INC/DEC由图5所示的逻辑门处理。MSB单元G(4,0)生成OUT(8),OUT(8)等于0。输出块的输出生成9位数,即二进制格式的001110010。
图12示出了根据本公开内容的各个实施方式的增量/减量运算的流程图。在步骤1202处,接收N位无符号数和控制信号。在步骤1204处,响应于控制信号指示增量运算,通过具有(2m+3)级的2输入逻辑门的增量/减量装置将N位无符号数增加1,其中m等于log2(N)。
该增量/减量装置包括:输入块,其被配置成接收N位无符号数,其中输入块包括N个传播和生成单元;按行和列布置的多个计算单元,其中列的数目等于N并且行的数目等于m,其中每一行具有索引ri并且变量d等于2ri,并且其中每个计算单元具有与前一行中的两个单元连接的两组输入,其中,第一组输入连接至前一行中的第一计算单元的输出并且与计算单元竖向对准,并且第二组输入连接至与第一计算单元相距d个单元的第二计算单元的输出;以及包括多个异或门的输出块。
在步骤1206处,响应于控制信号指示减量运算,通过增量/减量装置将N位无符号数减小1。在步骤1208处,通过MSB单元生成最高有效位。MSB单元具有:被配置成接收控制信号的第一输入端口;被配置成接收N位无符号数的高阶位的第二输入端口;以及被配置成接收所述多个计算单元的最后一行的最左侧单元的生成输出的第三输入端口。在步骤1210处,在增量/减量装置的输出处生成二进制数,其中二进制数具有(N+1)位。
虽然已经详细描述了本发明的实施方式及其优点,但是应当理解,在不脱离由所附权利要求书限定的本发明的精神和范围的情况下,可以在本文中进行各种改变、替换和更改。
此外,本申请的范围不被认为限于说明书中描述的过程、机构、制造、物质组成、装置、方法和步骤的特定实施方式。本领域技术人员从本发明的公开内容中将容易理解,执行与本文中所描述的相应实施方式基本上相同的功能或者实现与本文中所描述的相应实施方式基本上相同的结果的目前存在或将来开发的过程、机构、制造、物质组成、装置、方法或步骤可以根据本发明进行使用。因此,所附权利要求书旨在将这样的过程、机构、制造、物质组成、装置、方法或步骤包括在其范围内。

Claims (20)

1.一种增量/减量装置,包括:
输入块,所述输入块被配置成接收N位无符号数,其中所述输入块包括N个传播和生成单元;
按行和列布置的多个计算单元,其中所述列的数目等于N并且所述行的数目等于log2(N),其中每一行具有索引ri并且变量d等于2ri,并且其中每个所述计算单元具有与前一行中的两个单元连接的两组输入,其中:
第一组输入连接至所述前一行中的第一计算单元的输出并且与所述计算单元竖向对准;并且
第二组输入连接至与所述第一计算单元相距d个单元的第二计算单元的输出;以及
包括多个异或门的输出块。
2.根据权利要求1所述的装置,其中:
所述传播和生成单元包括非门、与门、以及异或非门,其中:
所述与门的第一输入通过所述非门连接至所述异或非门的第一输入;并且
所述与门的第二输入连接至所述异或非门的第二输入。
3.根据权利要求2所述的装置,其中:
所述异或非门的所述第一输入被配置成接收控制信号;并且
所述异或非门的所述第二输入被配置成接收所述N位无符号数的位。
4.根据权利要求1所述的装置,其中,所述计算单元包括第一与门、第二与门、以及或门,并且其中:
所述第一与门的第二输入连接至所述第二与门的第一输入;并且
所述或门的第一输入连接至所述第一与门的输出。
5.根据权利要求4所述的装置,其中:
所述第一与门的第一输入连接至所述第二计算单元的生成输出;
所述第一与门的第二输入连接至所述第一计算单元的传播输出;
所述第二与门的第二输入连接至所述第二计算单元的传播输出;并且
所述或门的第二输入连接至所述第一计算单元的生成输出。
6.根据权利要求4所述的装置,其中:
所述或门的输出被配置成生成:生成输出信号;并且
所述第二与门的输出被配置成生成:传播输出信号。
7.根据权利要求1所述的装置,还包括:
具有第一非门、第二非门、第三非门、第一与非门、第二与非门和第三与非门的最高有效位MSB单元,其中:
所述第三与非门的第一输入连接至所述第一与非门的输出;并且
所述第三与非门的第二输入连接至所述第二与非门的输出。
8.根据权利要求7所述的装置,其中:
所述MSB单元具有:被配置成接收控制信号的第一输入端口;被配置成接收所述N位无符号数的高阶位的第二输入端口;以及被配置成接收所述多个计算单元的最后一行的最左侧单元的生成输出的第三输入端口。
9.根据权利要求8所述的装置,其中:
所述第一与非门具有通过所述第一非门与所述第一输入端口耦接的第一输入、通过所述第二非门与所述第二输入端口耦接的第二输入、以及与所述第三输入端口耦接的第三输入;并且
所述第二与非门具有通过所述第三非门与所述第三输入端口耦接的第一输入、与所述第一输入端口耦接的第二输入、以及与所述第一与非门的所述第二输入连接的第三输入。
10.根据权利要求1所述的装置,其中:
所述输出块被配置成生成(N+1)位数。
11.一种增量/减量系统,包括:
输入块,所述输入块被配置成接收N位无符号数和控制信号,其中所述输入块包括N个传播和生成单元;
多个计算单元,所述多个计算单元按行和列布置并且耦接至所述输入块,其中所述计算单元被配置成执行增量/减量运算,所述增量/减量运算通过(2m+3)级的2输入逻辑门被施加于所述N位无符号数,其中m等于log2(N);以及
包括多个异或门的输出块,所述多个异或门耦接至所述多个计算单元的最后一行。
12.根据权利要求11所述的系统,其中:
所述列的数目等于N;并且
所述行的数目等于log2(N)。
13.根据权利要求11所述的系统,其中:
每个所述行具有索引ri并且变量d等于2ri,并且其中,每个所述计算单元具有与前一行中的两个单元连接的两组输入,其中:
第一组输入连接至所述前一行中的第一计算单元的输出并且与所述计算单元竖向对准;并且
第二组输入连接至与所述第一计算单元相距d个单元的第二计算单元的输出。
14.根据权利要求11所述的系统,其中:
所述计算单元被配置成:响应于所述控制信号指示1而执行增量运算;并且
所述计算单元被配置成:响应于所述控制信号指示0而执行减量运算。
15.一种增量/减量方法,包括:
接收N位无符号数和控制信号;
响应于所述控制信号指示增量运算,通过具有(2m+3)级的2输入逻辑门的增量/减量装置将所述N位无符号数增加1,其中m等于log2(N);以及
响应于所述控制信号指示减量运算,通过所述增量/减量装置将所述N位无符号数减小1。
16.根据权利要求15所述的方法,其中,所述增量/减量装置包括:
输入块,所述输入块被配置成接收所述N位无符号数,其中所述输入块包括N个传播和生成单元;
按行和列布置的多个计算单元,其中所述列的数目等于N并且所述行的数目等于m,其中每一行具有索引ri并且变量d等于2ri,并且其中每个所述计算单元具有与前一行中的两个单元连接的两组输入,其中:
第一组输入连接至所述前一行中的第一计算单元的输出并且与所述计算单元竖向对准;并且
第二组输入连接至与所述第一计算单元相距d个单元的第二计算单元的输出;以及
包括多个异或门的输出块。
17.根据权利要求16所述的方法,其中:
所述传播和生成单元包括非门、与门、以及异或非门,其中:
所述与门的第一输入通过所述非门连接至所述异或非门的第一输入;
所述与门的第二输入连接至所述异或非门的第二输入;
所述异或非门的所述第一输入被配置成接收控制信号;并且
所述异或非门的所述第二输入被配置成接收所述N位无符号数的位。
18.根据权利要求16所述的方法,还包括:
通过MSB单元生成最高有效位。
19.根据权利要求18所述的方法,其中:
所述MSB单元具有:被配置成接收所述控制信号的第一输入端口;被配置成接收所述N位无符号数的高阶位的第二输入端口;以及被配置成接收所述多个计算单元的最后一行的最左侧单元的生成输出的第三输入端口。
20.根据权利要求15所述的方法,还包括:
在所述增量/减量装置的输出处生成二进制数,其中所述二进制数具有(N+1)位。
CN201680023212.9A 2015-05-29 2016-02-15 增量/减量装置和方法 Active CN107533455B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/726,167 US9785405B2 (en) 2015-05-29 2015-05-29 Increment/decrement apparatus and method
US14/726,167 2015-05-29
PCT/CN2016/073815 WO2016192411A1 (en) 2015-05-29 2016-02-15 Increment/decrement apparatus and method

Publications (2)

Publication Number Publication Date
CN107533455A CN107533455A (zh) 2018-01-02
CN107533455B true CN107533455B (zh) 2020-10-09

Family

ID=57398613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680023212.9A Active CN107533455B (zh) 2015-05-29 2016-02-15 增量/减量装置和方法

Country Status (4)

Country Link
US (1) US9785405B2 (zh)
EP (2) EP3528107B1 (zh)
CN (1) CN107533455B (zh)
WO (1) WO2016192411A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629189A (zh) * 2012-03-15 2012-08-08 湖南大学 基于fpga的流水浮点乘累加方法
CN103019647A (zh) * 2012-11-28 2013-04-03 中国人民解放军国防科学技术大学 具有浮点精度保持功能的浮点累加/累减运算方法
CN104603744A (zh) * 2012-08-30 2015-05-06 高通股份有限公司 用于高效浮点计算的运算

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8910960D0 (en) 1989-05-12 1989-06-28 Secr Defence Digital processor for two's complement computations
US5339447A (en) 1989-11-17 1994-08-16 Texas Instruments Incorporated Ones counting circuit, utilizing a matrix of interconnected half-adders, for counting the number of ones in a binary string of image data
US5349250A (en) * 1993-09-02 1994-09-20 Xilinx, Inc. Logic structure and circuit for fast carry
GB2317971B (en) * 1996-10-02 2000-12-06 Advanced Risc Mach Ltd Digital adder circuit
JP3502302B2 (ja) 1999-07-16 2004-03-02 日本電信電話株式会社 周波数シンセサイザ
US6665698B1 (en) 2000-05-12 2003-12-16 Hewlett-Packard Development Company, L.P. High speed incrementer/decrementer
US6678711B1 (en) 2000-09-20 2004-01-13 Lsi Logic Corporation Incrementer/decrementer circuit
US7139789B2 (en) 2001-09-24 2006-11-21 Broadcom Corporation Adder increment circuit
US6591286B1 (en) * 2002-01-18 2003-07-08 Neomagic Corp. Pipelined carry-lookahead generation for a fast incrementer
DE10216240A1 (de) 2002-04-12 2003-10-30 Infineon Technologies Ag Verfahren und Vorrichtung zur Berechnung eines iterierten Zustands einer rückgekoppelten Schieberegisteranordnung
US20040015534A1 (en) * 2002-07-17 2004-01-22 Sun Microsystems, Inc. Method for adding one to a binary number
US7308471B2 (en) 2003-03-28 2007-12-11 Arithmatica Limited Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding
US7475301B2 (en) 2003-05-09 2009-01-06 Hewlett-Packard Development Company, L.P. Increment/decrement circuit for performance counter
CN1591824A (zh) 2003-08-26 2005-03-09 中国科学院微电子中心 40位带舍入功能的快速累加累减器电路实现结构
US7447727B2 (en) * 2004-06-28 2008-11-04 Intel Corporation Recursive carry-select topology in incrementer designs
US7743308B2 (en) 2005-02-09 2010-06-22 Adaptec, Inc. Method and system for wire-speed parity generation and data rebuild in RAID systems
DE102005011666B3 (de) * 2005-03-14 2006-06-29 Infineon Technologies Ag Carry-Ripple-Addierer
US7814138B2 (en) * 2006-05-11 2010-10-12 Intel Corporation Method and apparatus for decimal number addition using hardware for binary number operations
US8214416B2 (en) 2008-07-28 2012-07-03 Agere Systems Inc. Floating-point addition acceleration
US8805917B2 (en) * 2010-07-06 2014-08-12 Silminds, Llc, Egypt Parallel redundant decimal fused-multiply-add circuit
CN102707931A (zh) 2012-05-09 2012-10-03 刘大可 一种基于并行数据通道的数字信号处理器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629189A (zh) * 2012-03-15 2012-08-08 湖南大学 基于fpga的流水浮点乘累加方法
CN104603744A (zh) * 2012-08-30 2015-05-06 高通股份有限公司 用于高效浮点计算的运算
CN103019647A (zh) * 2012-11-28 2013-04-03 中国人民解放军国防科学技术大学 具有浮点精度保持功能的浮点累加/累减运算方法

Also Published As

Publication number Publication date
CN107533455A (zh) 2018-01-02
EP3528107B1 (en) 2022-08-31
EP3278210A4 (en) 2018-05-23
US20160350076A1 (en) 2016-12-01
EP3278210B1 (en) 2019-07-31
WO2016192411A1 (en) 2016-12-08
EP3528107A1 (en) 2019-08-21
US9785405B2 (en) 2017-10-10
EP3278210A1 (en) 2018-02-07

Similar Documents

Publication Publication Date Title
US9405728B2 (en) Floating-point adder circuitry
US9722629B2 (en) Method and apparatus for converting from floating point to integer representation
JP2002108606A (ja) スティッキービット生成回路及び乗算器
US10089073B2 (en) Method and apparatus for converting from integer to floating point representation
US10037189B2 (en) Distributed double-precision floating-point multiplication
CN107533455B (zh) 增量/减量装置和方法
JPH09222991A (ja) 加算方法および加算器
US9575725B1 (en) Specialized processing block with embedded pipelined accumulator circuitry
Payal et al. Design and implementation of parallel prefix adder for improving the performance of carry lookahead adder
US11281428B2 (en) Conversion circuitry
CN107533462B (zh) 浮点运算装置以及方法
US5978826A (en) Adder with even/odd 1-bit adder cells
US7240085B2 (en) Faster shift value calculation using modified carry-lookahead adder
Ganguly et al. A reconfigurable parallel prefix ling adder with modified enhanced flagged binary logic
Kumar et al. Performance Analysis of Different types of Adders for High Speed 32 bit Multiply and Accumulate Unit
Hou et al. Research and design of subword shift unit based on inverse butterfly network
Vishwaja et al. Performance Comparison of Carry Select Adder with Different Techniques
Begum et al. V.,“Design and Verification of Low Power and Area Effcient Kogge-Stone Carry Select Adder”
REDDY et al. Design and Implementation of VLSI Architectures of 16-Bit Carry Select Adder Using Brent Kung Adder
Pal et al. FPGA implementation of DSP applications using HUB floating point technique
CN117971157A (zh) 进位逻辑电路
Jayanthi et al. Comparison of High Speed VLSI Adders
SHAHIN et al. Analysis of Delay, Power and Area for Parallel Prefix Adders
Neelima et al. Area Efficient New CSLA Architecture
Asadee A new MAC design using high-speed partial product summation tree

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