CN111897513B - 一种基于反向极性技术的乘法器及其代码生成方法 - Google Patents

一种基于反向极性技术的乘法器及其代码生成方法 Download PDF

Info

Publication number
CN111897513B
CN111897513B CN202010745540.8A CN202010745540A CN111897513B CN 111897513 B CN111897513 B CN 111897513B CN 202010745540 A CN202010745540 A CN 202010745540A CN 111897513 B CN111897513 B CN 111897513B
Authority
CN
China
Prior art keywords
signal
adder
signals
polarity
input
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
CN202010745540.8A
Other languages
English (en)
Other versions
CN111897513A (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.)
Shanghai Zhirui Electronic Technology Co ltd
Original Assignee
Shanghai Zhirui Electronic Technology 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 Shanghai Zhirui Electronic Technology Co ltd filed Critical Shanghai Zhirui Electronic Technology Co ltd
Priority to CN202010745540.8A priority Critical patent/CN111897513B/zh
Publication of CN111897513A publication Critical patent/CN111897513A/zh
Application granted granted Critical
Publication of CN111897513B publication Critical patent/CN111897513B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种基于反向极性技术的乘法器及其代码生成方法,所述乘法器包括部分积生成模块、部分积压缩模块和进位保留加法器;部分积生成模块对乘数和被乘数进行计算得到部分积;部分积压缩模块对部分积进行压缩得到部分积压缩树;进位保留加法器对压缩过程中连接到进位保留加法器上的信号进行相加处理,将相加处理结果连接到乘法器的输出端。部分积生成模块采用与非门阵列,部分积压缩模块采用华莱士树结构,压缩器主要采用反向极性全加器和反向极性半加器,在特定条件下采用普通全加器和普通半加器。本发明通过采用面积小、功耗低的反向极性全加器有效降低了乘法器的功耗,且可自动化生成乘法器的代码及对乘法器时序进行整体优化。

Description

一种基于反向极性技术的乘法器及其代码生成方法
技术领域
本发明属于集成电路技术领域,具体涉及一种基于反向极性技术的乘法器及其代码生成方法。
背景技术
随着大数据、人工智能和云计算技术的快速发展,对芯片算力的需求越来越高,而制约影响芯片算力的一个重要因素就是功耗,为了解决性能和功耗问题,国内外目前研究的重点是人工智能芯片,乘法器作为人工智能芯片中的一个主要部件,其性能和功耗直接影响着整个芯片的性能和功耗,因此设计高性能低功耗的乘法器尤为重要。
通常,压缩器是乘法器的一种重要组成单元,压缩器的性能和功耗直接关系着整个乘法器的性能和功耗。目前常用的一种压缩器为全加器,图1为现有的一种普通全加器的电路结构图,其中a、b、c为输入信号,sum和carry为输出信号,图1所示的“和”输出和“进位”输出分别连接了一个反相器。基于反向极性的全加器在图1的基础上移除了与“和”输出和“进位”输出相连的反相器,因此具有更小的面积和功耗,且延迟相近。
华莱士树的压缩过程通常由人工手动完成,其设计复杂,且难以从整体考虑时序,而在采用反向极性全加器和反向极性半加器后,将使得整个部分积的压缩过程变得更为复杂,因为在压缩过程中需要考虑信号的极性和压缩器的类型,同时还要考虑信号的到达时间,以及如何合理的将信号分配到压缩器的输入管脚上。
发明内容
本发明所要解决的技术问题是针对上述现有技术的不足,提供一种基于反向极性技术的乘法器及其代码生成方法,通过采用面积小、功耗低的反向极性全加器有效降低了乘法器的功耗,可自动化生成乘法器的代码及对乘法器时序进行整体优化,在高速低功耗领域具有广阔的应用场景。
为实现上述技术目的,本发明采取的技术方案为:
一种基于反向极性技术的乘法器,所述乘法器包括部分积生成模块、部分积压缩模块和进位保留加法器;
所述部分积生成模块用于对乘数和被乘数进行计算,得到部分积;
所述部分积压缩模块用于对部分积进行压缩,得到部分积压缩树;
所述进位保留加法器用于对压缩过程中连接到进位保留加法器上的信号进行相加处理,并将相加处理结果连接到乘法器的输出端;
所述信号的极性包括正极性和负极性,所述正极性信号和负极性信号逻辑值互斥,一个正极性信号经过反向后变为负极性信号,一个负极性信号经过反向后变为正极性信号。
为优化上述技术方案,采取的具体措施还包括:
上述的部分积生成模块为与非门阵列,所述与非门阵列由N×N个部分积构成,分布在2N-1列,所述N×N个部分积由N位的乘数和N位的被乘数进行“与非”逻辑计算得到。
上述的部分积压缩模块采用华莱士树结构,包括反向极性全加器、反向极性半加器、普通全加器和普通半加器;
所述反向极性全加器、反向极性半加器、普通全加器和普通半加器均用于对部分积进行压缩,当压缩树一列中剩下的信号元素个数等于4且至少有3个正极性信号,则使用普通全加器对最先到达的3个正极性信号进行压缩,当压缩树一列中剩下的信号元素个数等于3且至少有2个正极性信号,则使用普通半加器对最先到达的2个正极性信号进行压缩,其他情况均采用反向极性全加器或反向极性半加器进行压缩;
所述反向极性全加器采用标准单元库中面积最小的反向极性全加器单元,具有三个输入信号A、B、CI和两个输出信号SN、CON。
当输入为A、B、CI时,输出SN和CON逻辑功能分别等价于输入为A、B、CI时普通全加器的“和”输出取反和“进位”输出取反,当输入为A、B、CI取反时,输出SN和CON逻辑功能分别等价于输入为A、B、CI时普通全加器的“和”输出和“进位”输出。
所述反向极性半加器由一个或非门和一个异或门并联组成,具有两个输入信号A、B和两个输出信号SN、CON;
当输入为A、B取反时,输出SN和CON逻辑功能分别等价于输入为A、B时普通半加器的“和”输出和“进位”输出。
上述的压缩器在进行压缩时所有输入信号的极性相同,若有不同则加反相器使输入信号的极性变为相同;
对于普通全加器和普通半加器,输入和输出信号均为正极性;
对于反向极性半加器,输入极性均为负极性,且输出为正极性;
对于反向极性全加器,输入为正极性或负极性,且输入极性和输出极性相反。
对于普通全加器和反向极性全加器,其“和”输出及“进位”输出的信号到达时间由表达式(1)计算:
对于普通半加器和反向极性半加器,其“和”输出及“进位”输出的信号到达时间由表达式(2)计算:
表达式(1)和表达式(2)中的Delay表示信号到达时间,A、B和CI表示输入信号,S和CO分别表示“和”输出及进位输出信号,MAX表示求取其中一个的最大值,DA-S表示输入A信号到输出S信号需要的路径延迟,DA-CO表示输入A信号到输出CO信号需要的路径延迟,DB-S表示输入B信号到输出S信号需要的路径延迟,DB-CO表示输入B信号到输出CO信号需要的路径延迟,DCI-S表示输入CI信号到输出S信号需要的路径延迟,DCI-CO表示输入CI信号到输出CO信号需要的路径延迟。
上述的部分积压缩模块所使用的反向极性全加器和反向极性半加器的面积和占比大于部分积压缩模块总面积的80%。
上述的一种基于反向极性技术的乘法器的代码生成方法,其特征在于,所述方法包括:
1)初始化设置所述乘法器采用的基本电路单元输入管脚到输出管脚的路径延迟参数,该参数用于计算信号的到达时间;
2)创建2N-1个队列保存部分积压缩中的数据元素,每个队列对应存储部分积压缩树中一列的数据元素,所述数据元素包括信号名称、信号到达时间和信号极性;
3)产生部分积生成模块的与非门阵列并存储于队列中,所述与非门阵列由N位的乘数和N位的被乘数进行“与非”逻辑计算,共有N×N个部分积,分布在2N-1列;
4)从低位到高位依次对2N-1列部分积进行压缩,在压缩过程中根据信号到达时间及信号的极性判断当前应采取的压缩器类型,并使用信号路径重安排技术将输入信号连接到压缩器相应的输入管脚上,每一列部分积压缩完成后若剩下两个信号未被压缩,则将剩下的两个信号分别连接到进位保留加法器的输入端;
5)使用进位保留加法器计算结果,并将计算的结果连接到乘法器的输出端;
6)计算完成,输出最终的乘积。
上述的基本电路单元包括普通全加器、普通半加器、反相器、反向极性全加器和反向极性半加器。
上述的所述路径重安排为将压缩器三个输入信号中最晚到达的信号连接到压缩器最快的输入管脚,所述压缩器最快的输入管脚为从输入管脚到“和”输出管脚延迟最小的管脚。
本发明具有以下有益效果:
1)本发明的部分积生成模块采用与非门阵列实现,相比于传统的与门阵列可以减少功耗、面积和延迟;
2)本发明的压缩器采用了面积小功耗低的反向极性全加器,相比于普通的全加器可以有效的减少功耗和面积;
3)本发明设计了一种算法来自动生成乘法器的代码并从整体考虑电路优化,同时还采用了信号路径重安排技术,有效减少了电路延迟;
4)本发明混合使用了反向极性的全加器、反向极性半加器、普通全加器和普通半加器,使得电路延迟得到进一步优化;
5)本发明设计的自动生成乘法器代码的算法可以通用于所有N x N的乘法器,提高了设计效率。
附图说明
图1为现有技术中普通全加器的一种电路结构图。
图2为本发明乘法器的整体结构图。
图3为本发明实施例使用的反向极性全加器的真值表图。
图4为本发明实施例使用的反向极性半加器的电路结构图。
图5为本发明实施例使用的反向极性全加器的极性反转说明图。
图6为本发明实施例使用的信号路径重安排技术说明图。
图7为本发明自动生成乘法器代码方法的流程图。
图8为本发明实施例部分积压缩算法的流程图。
具体实施方式
以下结合附图对本发明的实施例作进一步详细描述。
参见图2,本发明的一种基于反向极性技术的乘法器,所述乘法器包括部分积生成模块、部分积压缩模块和进位保留加法器;
所述部分积生成模块用于对乘数和被乘数进行计算,得到部分积;
所述部分积压缩模块用于对部分积进行压缩,得到部分积压缩树;
所述进位保留加法器用于对压缩过程中连接到进位保留加法器上的信号进行相加处理,并将相加处理结果连接到乘法器的输出端;
所述信号的极性包括正极性和负极性,所述正极性信号和负极性信号逻辑值互斥,一个正极性信号经过反向后变为负极性信号,一个负极性信号经过反向后变为正极性信号。
实施例中,所述部分积生成模块为与非门阵列,所述与非门阵列由N×N个部分积构成,分布在2N-1列,所述N×N个部分积由N位的乘数和N位的被乘数进行“与非”逻辑计算得到。
N×N个部分积将组成2N-1列的部分积压缩树。
实施例中,所述部分积压缩模块采用华莱士树结构,包括反向极性全加器、反向极性半加器、普通全加器和普通半加器;
所述反向极性全加器、反向极性半加器、普通全加器和普通半加器均用于对部分积进行压缩,当压缩树一列中剩下的信号元素个数等于4且至少有3个正极性信号,则使用普通全加器对最先到达的3个正极性信号进行压缩,当压缩树一列中剩下的信号元素个数等于3且至少有2个正极性信号,则使用普通半加器对最先到达的2个正极性信号进行压缩,其他情况均采用反向极性全加器或反向极性半加器进行压缩;
图3为反向极性全加器的真值表,它具有三个输入信号A、B、CI和两个输出信号SN、CON,它的一种电路实现方式为将图1所示的与“和”输出和“进位”输出相连的两个反相器进行移除,因此相比于普通全加器具有更小的面积和功耗,在本实施例中,将直接采用标准单元库中面积最小的反向极性全加器单元。
当输入为A、B、CI时,输出SN和CON逻辑功能分别等价于输入为A、B、CI时普通全加器的“和”输出取反和“进位”输出取反,当输入为A、B、CI取反时,输出SN和CON逻辑功能分别等价于输入为A、B、CI时普通全加器的“和”输出和“进位”输出。
图4为本实施例中反向极性半加器的电路结构图,它具有两个输入信号A、B和两个输出信号SN、CON,当输入为A、B取反时,输出SN和CON逻辑功能分别等价于输入为A、B时普通半加器的“和”输出和“进位”输出,它由一个或非门和一个异或门组成。
图5为反向极性全加器的输入输出信号极性变化图,当输入为负极性时,输出为正极性,当输入为正极性时,输出为负极性。
压缩器在进行压缩时必须保证所有输入信号的极性相同,若有不同需要加反相器变为相同,对于普通全加器和普通半加器,输入和输出信号都必须为正极性,对于反向极性半加器输入极性必须为负极性,且输出为正极性,对于反向极性全加器,输入可以为正极性或负极性,且输入和输出极性相反。
在本实施例中,为了对乘法器的时序进行整体考虑,需要保存并更新信号的到达时间,对于普通全加器和反向极性全加器,其“和”输出及“进位”输出的信号到达时间由表达式(1)计算:
对于普通半加器和反向极性半加器,其“和”输出及“进位”输出的信号到达时间由表达式(2)计算:
表达式(1)和表达式(2)中的Delay表示信号到达时间,A、B和CI表示输入信号,S和CO分别表示“和”输出及进位输出信号,MAX表示求取其中一个的最大值,DA-S表示输入A信号到输出S信号需要的路径延迟,DA-CO表示输入A信号到输出CO信号需要的路径延迟,DB-S表示输入B信号到输出S信号需要的路径延迟,DB-CO表示输入B信号到输出CO信号需要的路径延迟,DCI-S表示输入CI信号到输出S信号需要的路径延迟,DCI-CO表示输入CI信号到输出CO信号需要的路径延迟。
实施例中,所述部分积压缩模块所使用的反向极性全加器和反向极性半加器的面积和占比大于部分积压缩模块总面积的80%。
图6为本实施例中信号路径重安排技术的说明图,由于反向极性全加器或普通全加器的输入管脚逻辑功能相同,因此可以互换,但输入管脚到输出管脚的延迟不同,不同连接方式将导致不同的输出关键路径延迟。如图6所示,假设A和B到SN的路径延迟为2,CI到SN的路径延迟为1,A、B、CI到CON的路径延迟都为1,输入输出信号上的数字代表信号到达时间,对于图左边的任意连接方式,输出的关键路径延迟为5,对于图右边采用的路径重安排技术,通过将图左边连接到管脚A和CI的信号进行互换,使得输出的关键路径延迟变为4,因此采取信号路径重安排可以有效减少延迟。
一种基于反向极性技术的乘法器的代码生成方法,图7为自动化生成乘法器代码的流程图,所述方法包括:
1)初始化设置所述乘法器采用的基本电路单元输入管脚到输出管脚的路径延迟参数,该参数用于计算信号的到达时间;所述基本电路单元包括普通全加器、普通半加器、反相器、反向极性全加器和反向极性半加器。
对于一个输入管脚数为N,输出管脚数为M的元件,其需要设置的延迟参数的个数为N×M。下面以反向极性全加器为例说明需要设置的延迟参数,在本实施例中,反向极性全加器具有三个输入信号A、B、CI和两个输出信号SN和CON,则需要设置的延迟参数分别为A到SN、B到SN、CI到SN、A到CON、B到CON和CI到CON的延迟,其他元件以此类推。由于电路输入到输出的延迟与具体的工艺有关,本实施例中采用的延迟参数是根据给定的工艺库中的查找表由Synopsys的Primetime工具计算所得。
2)创建队列保存部分积压缩中的数据元素,本实施例中创建了2N-1个队列,每个队列对应存储部分积压缩树中一列的数据元素,所述数据元素包括信号名称、信号到达时间和信号极性;
3)产生部分积生成模块的与非门阵列并存储于队列中,所述与非门阵列由N位的乘数和N位的被乘数进行“与非”逻辑计算,共有N×N个部分积,分布在2N-1列;
在本实施例中,假设乘法器输入信号到达时间相同,这样部分积信号到达时间可以设为一个相同值0。另外由于部分积模块采用了与非门阵列,它与原有的与门阵列部分积逻辑值相反,因此部分积信号的极性为负,最后将部分积信号名、信号到达时间和信号极性组成一个整体数据元素存储于队列中。
4)从低位到高位依次对2N-1列部分积进行压缩,在压缩过程中根据信号到达时间及信号的极性判断当前应采取的压缩器类型,并使用信号路径重安排技术将输入信号连接到压缩器相应的输入管脚上,每一列部分积压缩完成后若剩下两个信号未被压缩,则将剩下的两个信号分别连接到进位保留加法器的输入端;所述路径重安排为将压缩器三个输入信号中最晚到达的信号连接到压缩器最快的输入管脚,所述压缩器最快的输入管脚为从输入管脚到“和”输出管脚延迟最小的管脚。
图8为部分积压缩算法的流程图,i=0和i=2N-2分别对应部分积压缩树的第1列和第2N-1列,首先将i初始化为0,如果i>2N-2,则结束遍历,否则获取当前列的队列值,根据队列中数据长度,分为下列5种方法执行:
方法1:当前队列中只有一个数据元素,如果队列中的信号为正极性,则直接将信号连接到进位保留加法器的输出管脚上,否则对信号取反后再连接到进位保留加法器的输出管脚上。
方法2:当前队列中只有两个数据元素,如果队列中的2个信号为正极性,则将2个信号分别连接到进位保留加法器的2个输入端,否则对2个信号中的负极性信号取反后再分别连接到进位保留加法器的2个输入端。
方法3:当前队列中只有三个数据元素,将队列按信号到达时间的先后进行排序,如果队列中正极性信号个数大于等2,则将最先到达的两个正极性信号连接到普通半加器的输入端,如果队列中负极性信号个数大于等于2,则将最先到达的两个负极性信号连接到反向极性半加器的输入端,然后更新所述半加器输出信号的到达时间和输出信号的极性,并将所述半加器的“进位”输出信号名、信号到达时间和信号极性作为一个整体保存在下一列的队列中,最后将本列中剩下的两个信号转换为正极性后连接到进位保留加法器的2个输入端。
本实施例中混合使用普通半加器和反向极性半加器的好处是使得所述半加器输出值为正极性,它们输出的“和”信号可以直接连接到进位保留加法器的输入端,而不需要进行极性反转,从而减少电路延迟。
方法4:当前队列中只有四个数据元素,将队列按信号到达时间的先后进行排序,如果队列中正极性信号个数大于等3,则将最先到达的三个正极性信号按信号路径重安排技术连接到普通全加器的输入端,如果队列中负极性信号个数大于等于3,则将最先到达的三个负极性信号按信号路径重安排技术连接到反向极性全加器的输入端,如果队列中正负极性信号个数均为2,则将一个正极性的信号取反,并更新取反后该信号的到达时间,同时与另外两个负极性信号按信号路径重安排技术连接到反向极性全加器的输入端,接着更新所述全加器输出信号的到达时间和输出信号的极性,并将所述全加器的“进位”输出信号名、信号到达时间和信号极性作为一个整体保存在下一列的队列中,最后将本列中剩下的两个信号转换为正极性后连接到进位保留加法器的2个输入端。
在本实施例中使用普通全加器的好处是可以减少电路延迟,因为对于三个正极性信号,如果不使用普通全加器而使用反向极性全加器进行压缩,则经过反向极性全加器的输出信号极性为负,它需要经过一级反转后才可以连接到进位保留加法器上,这会使得采用反向极性全加器的总延迟时间大于只使用一个普通全加器的延迟。
方法5:当前队列中数据元素的个数大于等于5,将队列按信号到达时间的先后进行排序,从队列中取出最先到达的3个信号,若这三个信号极性不同,则通过加反相器将最先到达的两个信号极性转换为与最晚到达的那个信号相同的极性,并更新极性转换后信号的到达时间,之后将这三个信号按照信号路径重安排技术连接到反向极性全加器的输入端,接着更新所述全加器输出信号的到达时间和输出信号的极性,并将所述全加器的“和”输出信号名、信号到达时间和信号极性作为一个整体保存在当前列的队列中,将所述全加器的“进位”输出信号名、信号到达时间和信号极性作为一个整体保存在下一列的队列中。
本实施例中将最先到达的两个信号极性转换为与最晚到达的那个信号相同的极性具有两个好处,一方面是可以减少电路延迟,电路的关键延迟是由最晚到达的信号决定的,在最先到达的两个信号上加反相器,则最晚到达的那个信号延迟时间不变,相比于在最晚到达的那个信号上加反相器,电路关键延迟要小,另一方面有利于减少毛刺功耗,这是因为最先到达的两个信号加上反相器后,它们的信号到达时间与最晚到达的那个信号到达时间更为接近,这样三个输入信号的到达时间将更为平衡,从而有利于减少毛刺发生的概率。
5)使用进位保留加法器计算结果,并将计算的结果连接到乘法器的输出端;
6)计算完成,输出最终的乘积。
一种基于反向极性技术的乘法器的设计技术,包括部分积生成模块采用与非门阵列实现,部分积压缩模块采用华莱士树结构,压缩器主要采用反向极性全加器和反向极性半加器,并在特定条件下也采用普通全加器和普通半加器;自动化生成乘法器代码的算法在执行过程中计算压缩器输入信号的到达时间,并且根据信号到达时间及信号的极性判断当前应采用的压缩器类型,同时在算法中采用了信号路径重安排技术;
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (8)

1.一种基于反向极性技术的乘法器,其特征在于,所述乘法器包括部分积生成模块、部分积压缩模块和进位保留加法器;
所述部分积生成模块用于对乘数和被乘数进行计算,得到部分积;
所述部分积压缩模块用于对部分积进行压缩,得到部分积压缩树;
所述进位保留加法器用于对压缩过程中连接到进位保留加法器上的信号进行相加处理,并将相加处理结果连接到乘法器的输出端;
所述信号的极性包括正极性和负极性,所述正极性信号和负极性信号逻辑值互斥,一个正极性信号经过反向后变为负极性信号,一个负极性信号经过反向后变为正极性信号;
所述部分积压缩模块采用华莱士树结构,包括反向极性全加器、反向极性半加器、普通全加器和普通半加器;
所述反向极性全加器、反向极性半加器、普通全加器和普通半加器均用于对部分积进行压缩,当压缩树一列中剩下的信号元素个数等于4且至少有3个正极性信号,则使用普通全加器对最先到达的3个正极性信号进行压缩,当压缩树一列中剩下的信号元素个数等于3且至少有2个正极性信号,则使用普通半加器对最先到达的2个正极性信号进行压缩,其他情况均采用反向极性全加器或反向极性半加器进行压缩;
所述反向极性全加器采用标准单元库中面积最小的反向极性全加器单元,具有三个输入信号A、B、CI和两个输出信号SN、CON;
当输入为A、B、CI时,输出SN和CON逻辑功能分别等价于输入为A、B、CI时普通全加器的“和”输出取反和“进位”输出取反,当输入为A、B、CI取反时,输出SN和CON逻辑功能分别等价于输入为A、B、CI时普通全加器的“和”输出和“进位”输出;
所述反向极性半加器由一个或非门和一个异或门并联组成,具有两个输入信号A、B和两个输出信号SN、CON;
当输入为A、B取反时,输出SN和CON逻辑功能分别等价于输入为A、B时普通半加器的“和”输出和“进位”输出。
2.根据权利要求1所述的一种基于反向极性技术的乘法器,其特征在于,所述部分积生成模块为与非门阵列,所述与非门阵列由N×N个部分积构成,分布在2N-1列,所述N×N个部分积由N位的乘数和N位的被乘数进行“与非”逻辑计算得到。
3.根据权利要求1所述的一种基于反向极性技术的乘法器,其特征在于,压缩器在进行压缩时所有输入信号的极性相同,若有不同则加反相器使输入信号的极性变为相同;
对于普通全加器和普通半加器,输入和输出信号均为正极性;
对于反向极性半加器,输入极性均为负极性,且输出为正极性;
对于反向极性全加器,输入为正极性或负极性,且输入极性和输出极性相反。
4.根据权利要求3所述的一种基于反向极性技术的乘法器,其特征在于,对于普通全加器和反向极性全加器,其“和”输出及“进位”输出的信号到达时间由表达式(1)计算:
对于普通半加器和反向极性半加器,其“和”输出及“进位”输出的信号到达时间由表达式(2)计算:
表达式(1)和表达式(2)中的Delay表示信号到达时间,A、B和CI表示输入信号,S和CO分别表示“和”输出及进位输出信号,MAX表示求取其中一个的最大值,DA-S表示输入A信号到输出S信号需要的路径延迟,DA-CO表示输入A信号到输出CO信号需要的路径延迟,DB-S表示输入B信号到输出S信号需要的路径延迟,DB-CO表示输入B信号到输出CO信号需要的路径延迟,DCI-S表示输入CI信号到输出S信号需要的路径延迟,DCI-CO表示输入CI信号到输出CO信号需要的路径延迟。
5.根据权利要求1所述的一种基于反向极性技术的乘法器,其特征在于,所述部分积压缩模块所使用的反向极性全加器和反向极性半加器的面积和占比大于部分积压缩模块总面积的80%。
6.根据权利要求1-5任意一项所述的一种基于反向极性技术的乘法器的代码生成方法,其特征在于,所述方法包括:
1)初始化设置所述乘法器采用的基本电路单元输入管脚到输出管脚的路径延迟参数,该参数用于计算信号的到达时间;
2)创建2N-1个队列保存部分积压缩中的数据元素,每个队列对应存储部分积压缩树中一列的数据元素,所述数据元素包括信号名称、信号到达时间和信号极性;
3)产生部分积生成模块的与非门阵列并存储于队列中,所述与非门阵列由N位的乘数和N位的被乘数进行“与非”逻辑计算,共有N×N个部分积,分布在2N-1列;
4)从低位到高位依次对2N-1列部分积进行压缩,在压缩过程中根据信号到达时间及信号的极性判断当前应采取的压缩器类型,并使用信号路径重安排技术将输入信号连接到压缩器相应的输入管脚上,每一列部分积压缩完成后若剩下两个信号未被压缩,则将剩下的两个信号分别连接到进位保留加法器的输入端;
5)使用进位保留加法器计算结果,并将计算的结果连接到乘法器的输出端;
6)计算完成,输出最终的乘积。
7.根据权利要求6所述的一种基于反向极性技术的乘法器的代码生成方法,其特征在于,所述基本电路单元包括普通全加器、普通半加器、反相器、反向极性全加器和反向极性半加器。
8.根据权利要求6所述的一种基于反向极性技术的乘法器的代码生成方法,其特征在于,所述路径重安排为将压缩器三个输入信号中最晚到达的信号连接到压缩器最快的输入管脚,所述压缩器最快的输入管脚为从输入管脚到“和”输出管脚延迟最小的管脚。
CN202010745540.8A 2020-07-29 2020-07-29 一种基于反向极性技术的乘法器及其代码生成方法 Active CN111897513B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010745540.8A CN111897513B (zh) 2020-07-29 2020-07-29 一种基于反向极性技术的乘法器及其代码生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010745540.8A CN111897513B (zh) 2020-07-29 2020-07-29 一种基于反向极性技术的乘法器及其代码生成方法

Publications (2)

Publication Number Publication Date
CN111897513A CN111897513A (zh) 2020-11-06
CN111897513B true CN111897513B (zh) 2023-07-21

Family

ID=73182952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010745540.8A Active CN111897513B (zh) 2020-07-29 2020-07-29 一种基于反向极性技术的乘法器及其代码生成方法

Country Status (1)

Country Link
CN (1) CN111897513B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032723B (zh) * 2021-05-25 2021-08-10 广东省新一代通信与网络创新研究院 一种矩阵乘法器的实现方法及矩阵乘法器装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685385A (zh) * 2008-09-28 2010-03-31 北京大学深圳研究生院 一种复数乘法器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6065033A (en) * 1997-02-28 2000-05-16 Digital Equipment Corporation Wallace-tree multipliers using half and full adders
JP2006301685A (ja) * 2005-04-15 2006-11-02 Renesas Technology Corp 乗算装置
US9146707B2 (en) * 2013-05-28 2015-09-29 International Business Machines Corporation Generating a fast 3x multiplicand term for radix-8 booth multiplication
CN104467815B (zh) * 2014-12-05 2017-12-15 北京大学 一种基于延时的双轨预充逻辑p型及n型全加器电路
CN107977191B (zh) * 2016-10-21 2021-07-27 中国科学院微电子研究所 一种低功耗并行乘法器
CN110362292B (zh) * 2019-07-22 2022-12-20 电子科技大学 一种基于近似4-2压缩器的近似乘法运算方法和近似乘法器
CN111221499B (zh) * 2019-11-18 2022-04-26 合肥工业大学 基于近似6-2和4-2压缩器的近似乘法器及计算方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685385A (zh) * 2008-09-28 2010-03-31 北京大学深圳研究生院 一种复数乘法器

Also Published As

Publication number Publication date
CN111897513A (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN109542393B (zh) 一种近似4-2压缩器及近似乘法器
CN112257378A (zh) 一种针对近阈值的鲁棒时钟树综合算法实现方法
CN114647399B (zh) 一种低能耗高精度近似并行定宽乘法累加装置
CN111221499B (zh) 基于近似6-2和4-2压缩器的近似乘法器及计算方法
CN111897513B (zh) 一种基于反向极性技术的乘法器及其代码生成方法
CN112862091B (zh) 一种基于快速卷积的资源复用型神经网络硬件加速电路
CN111966323B (zh) 基于无偏压缩器的近似乘法器及计算方法
CN112580279B (zh) 逻辑电路的优化方法、优化装置以及存储介质
Kandula et al. Area efficient vlsi architecture for square root carry select adder using zero finding logic
CN107092462B (zh) 一种基于fpga的64位异步乘法器
CN110825346B (zh) 一种低逻辑复杂度的无符号近似乘法器
US7437657B2 (en) High speed add-compare-select processing
CN113157247B (zh) 一种可重构整型-浮点型乘法器
Kumar et al. Complex multiplier: implementation using efficient algorithms for signal processing application
CN210109863U (zh) 乘法器、装置、神经网络芯片及电子设备
US7840628B2 (en) Combining circuitry
CN209879493U (zh) 乘法器
US20070180014A1 (en) Sparce-redundant fixed point arithmetic modules
CN113031916A (zh) 乘法器、数据处理方法、装置及芯片
Li A single precision floating point multiplier for machine learning hardware acceleration
CN110705196A (zh) 一种基于随机计算的无误差加法器
CN114239818B (zh) 基于tcam和lut的存内计算架构神经网络加速器
CN110647307A (zh) 数据处理器、方法、芯片及电子设备
CN112949830B (zh) 智能推断网络系统以及加法单元和池化单元电路系统
Kumar et al. Design of an area-efficient multiplier

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