CN116149600B - 多常数乘法器的逻辑电路设置方法、装置、设备及介质 - Google Patents

多常数乘法器的逻辑电路设置方法、装置、设备及介质 Download PDF

Info

Publication number
CN116149600B
CN116149600B CN202310236726.4A CN202310236726A CN116149600B CN 116149600 B CN116149600 B CN 116149600B CN 202310236726 A CN202310236726 A CN 202310236726A CN 116149600 B CN116149600 B CN 116149600B
Authority
CN
China
Prior art keywords
constant
target
combination
binary
adders
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
CN202310236726.4A
Other languages
English (en)
Other versions
CN116149600A (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.)
Shenzhen Hongxin Micro Nano Technology Co ltd
Original Assignee
Shenzhen Hongxin Micro Nano 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 Shenzhen Hongxin Micro Nano Technology Co ltd filed Critical Shenzhen Hongxin Micro Nano Technology Co ltd
Priority to CN202310236726.4A priority Critical patent/CN116149600B/zh
Publication of CN116149600A publication Critical patent/CN116149600A/zh
Application granted granted Critical
Publication of CN116149600B publication Critical patent/CN116149600B/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)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种多常数乘法器的逻辑电路设置方法、装置、设备及介质,涉及数字电路领域,方法包括:对乘法器对应的常数进行二进制转换,得到对应的二进制表达;选取目标常数,并确定其对应的候选组合;对候选组合中的二进制表达进行公因子消除,得到简化组合;基于简化组合中非零元的数量,确定最优简化组合;将最优简化组合对应的候选组合中目标常数的二进制表达作为其最优二进制表达;返回目标常数的抽取,直至得到所有常数的最优二进制表达时,基于最后的最优简化组合对应的最小总和,确定加法器数量;基于加法器数量,设置乘法器的加法器。由此,本发明确定出了多常数乘法器所需的加法器最少数量,进而使得多常数乘法器的面积能最小。

Description

多常数乘法器的逻辑电路设置方法、装置、设备及介质
技术领域
本发明涉及数字电路领域,尤其涉及一种多常数乘法器的逻辑电路设置方法、装置、设备及介质。
背景技术
多常数乘法器包括加法器、移位器及其他电路器件,其用于将接收到的一个二进制输入参数与各个预设常数分别进行相乘,从而得到二进制输入参数对应各个预设常数的输出。
在多常数乘法器计算二进制输入参数对应的输出的过程中,若预设常数的数量较多,则多常数乘法器所需包括的加法器的数量需随之增多,进而导致多常数乘法器的面积和时延增大。
因此,如何优化多常数乘法器中加法器的数量,从而使多常数乘法器的面积和时延能满足当下设置需要成为了现阶段需解决的问题。
发明内容
有鉴于此,本发明提供一种多常数乘法器的逻辑电路设置方法、装置、设备及介质,用于解决如何优化多常数乘法器中加法器的数量的问题。
第一方面,本发明实施例提供一种多常数乘法器的逻辑电路设置方法,包括:
对目标多常数乘法器对应的每个常数进行二进制转换,得到每个常数的多种二进制表达;
从所有常数中选取一个常数作为目标常数,并确定所述目标常数对应的各个候选组合,其中,各个所述候选组合均由每个常数对应的一种二进制表达构成,各个所述候选组合中仅所述目标常数对应的二进制表达不同,各个所述候选组合中已被选取过的常数的二进制表达均为对应的最优二进制表达;
分别对所述各个所述候选组合中的二进制表达进行公因子消除操作,得到各个所述候选组合对应的简化组合;
基于各个所述简化组合中的所有二进制表达的非零元的数量总和,确定最小总和对应的最优简化组合;
将所述最优简化组合对应的候选组合中所述目标常数的二进制表达作为所述目标常数的最优二进制表达;
返回至所述从所有常数中选取一个未被选取过的常数以作为目标常数,并确定所述目标常数对应的各个候选组合的步骤,直至得到所有常数的最优二进制表达时,基于最后得到的最优简化组合对应的最小总和,确定所述目标多常数乘法器中的第一加法器数量,其中,所述最后得到的最优简化组合对应的最小总和与所述第一加法器数量成正比;
基于所述第一加法器数量,设置所述目标多常数乘法器中的加法器。
可选的,在本发明实施例提供的一种可行方式中,所述对目标多常数乘法器对应的每个常数进行二进制转换,得到每个常数的多种二进制表达,包括:
针对目标多常数乘法器对应的每个常数,基于哈特利算法得到每个常数的多种二进制表达。
可选的,在本发明实施例提供的一种可行方式中,所述分别对所述各个所述候选组合中的二进制表达进行公因子消除操作,得到各个所述候选组合对应的简化组合,包括:
针对每个所述候选组合,确定所述候选组合中的各个二进制表达中出现频率最高的目标公因子,并基于所述目标公因子对所述候选组合中的各个二进制表达进行消除操作,得到对应的简化组合,其中,所述目标公因子大于2。
可选的,在本发明实施例提供的一种可行方式中,还包括:
基于所述最后得到的最优简化组合对应的目标公因子中的非零元的数量,确定第二加法器数量,其中,所述目标公因子中的非零元的数量与所述第二加法器的数量成正比;
所述基于所述第一加法器数量,设置所述目标多常数乘法器中的加法器,包括:
基于所述第一加法器数量和所述第二加法器数量,设置所述目标多常数乘法器中的加法器。
第二方面,本发明实施例提供一种多常数乘法器的逻辑电路设置装置,包括:
转换模块,用于对目标多常数乘法器对应的每个常数进行二进制转换,得到每个常数的多种二进制表达;
选取模块,用于从所有常数中选取一个常数作为目标常数,并确定所述目标常数对应的各个候选组合,其中,各个所述候选组合均由每个常数对应的一种二进制表达构成,各个所述候选组合中仅所述目标常数对应的二进制表达不同,各个所述候选组合中已被选取过的常数的二进制表达均为对应的最优二进制表达;
消除模块,用于分别对所述各个所述候选组合中的二进制表达进行公因子消除操作,得到各个所述候选组合对应的简化组合;
组合确定模块,用于基于各个所述简化组合中的所有二进制表达的非零元的数量总和,确定最小总和对应的最优简化组合;
表达确定模块,用于将所述最优简化组合对应的候选组合中所述目标常数的二进制表达作为所述目标常数的最优二进制表达;
第一数量确定模块,用于返回至所述从所有常数中选取一个未被选取过的常数以作为目标常数,并确定所述目标常数对应的各个候选组合的步骤,直至得到所有常数的最优二进制表达时,基于最后得到的最优简化组合对应的最小总和,确定所述目标多常数乘法器中的第一加法器数量,其中,所述最后得到的最优简化组合对应的最小总和与所述第一加法器数量成正比;
设置模块,用于基于所述第一加法器数量,设置所述目标多常数乘法器中的加法器。
可选的,在发明实施例提供的一种可行方式中,所述转换模块还用于针对目标多常数乘法器对应的每个常数,基于哈特利算法得到每个常数的多种二进制表达。
可选的,在发明实施例提供的一种可行方式中,所述消除模块还用于针对每个所述候选组合,确定所述候选组合中的各个二进制表达中出现频率最高的目标公因子,并基于所述目标公因子对所述候选组合中的各个二进制表达进行消除操作,得到对应的简化组合,其中,所述目标公因子大于2。
可选的,在发明实施例提供的一种可行方式中,还包括:
第二数量确定模块,用于基于所述最后得到的最优简化组合对应的目标公因子中的非零元的数量,确定第二加法器数量,其中,所述目标公因子中的非零元的数量与所述第二加法器的数量成正比;
所述设置模块还用于基于所述第一加法器数量和所述第二加法器数量,设置所述目标多常数乘法器中的加法器。
第三方面,本发明实施例提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的多常数乘法器的逻辑电路设置方法。
第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的多常数乘法器的逻辑电路设置方法。
本发明提供的多常数乘法器的逻辑电路设置方法中,首先对目标多常数乘法器对应的每个常数进行二进制转换,得到每个常数的多种二进制表达,如无符号二进制表达和正则有符号二进制表达;随后,从所有常数中选取一个常数作为目标常数,并确定目标常数对应的各个候选组合;之后,分别对各个候选组合中的二进制表达进行公因子消除操作,得到各个候选组合对应的简化组合;接着,基于各个简化组合中的所有二进制表达的非零元的数量总和,确定最小总和对应的最优简化组合;然后,将最优简化组合对应的候选组合中目标常数的二进制表达作为目标常数的最优二进制表达;随即,返回至从所有常数中选取一个未被选取过的常数以作为目标常数,并确定目标常数对应的各个候选组合的步骤,直至得到所有常数的最优二进制表达时,基于最后得到的最优简化组合对应的最小总和,确定目标多常数乘法器中的第一加法器数量;最后,基于第一加法器数量,设置目标多常数乘法器中的加法器。
基于此,本发明实施例通过对各个常数的最佳二进制表达的查找,从而确定出了多常数乘法器所对应的最少加法器数量,使得多常数乘法器的面积能最小,由此使得多常数乘法器的设置能满足当下电路设计需求。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本发明实施例提供的第一种多常数乘法器的逻辑电路设置方法的流程示意图;
图2示出了本发明实施例提供的第二种多常数乘法器的逻辑电路设置方法的流程示意图;
图3示出了本发明实施例提供的第三种多常数乘法器的逻辑电路设置方法的流程示意图;
图4示出了本发明实施例提供的多常数乘法器的逻辑电路设置装置的结构示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
为更好地说明本发明提供的各个实施例,故对现有技术中的多常数乘法器的进行简要说明。
可以理解的是,对于单常数乘法器而言,其乘法运算逻辑通常包括:(1)对输入参数的左移或右移以得到对应的积;(2)将所有的积相加。
示范性的,以输出参数为210,常数为310举例,因310的无符号二进制表的达为112,则计算210与112的乘积时,包含两个子乘积,其一为210与112的左侧的“1”相乘以得到210左移一位的子乘积,其二为210与112的左侧的“1”相乘以得到子乘积。最后,将两个子乘积相加,即得到算210与112的乘积计算结果。容易想到的是,在计算前述两个子乘积的过程中,实际上就是将210与两个“1”进行与(AND)运算并进行相应的位移操作。
不难想到的是,若常数对应的二进制表达中,“1”的数量越多,则表示需计算子乘积的数量越多,进而需执行的加法次数越多。
还可以理解的是,对于乘法器而言,其乘法器的电路面积由其包含的加法器的面积所决定的,加法器的数量越多,则乘法器的电路面积越多。
实施例1
参照图1,示出了本发明实施例提供的第一种多常数乘法器的逻辑电路设置的流程示意图,本发明实施例提供的多常数乘法器的逻辑电路设置包括:
步骤S110,对目标多常数乘法器对应的每个常数进行二进制转换,得到每个常数的多种二进制表达。
可以理解的是,多常数乘法器用于将接收到的参数与各个预设的常数相乘,也即,与各个常数的二进制表达相乘。但还可以理解的是,多数的十进制数均能写成两种及两种以上的二进制表达,如对于1110而言,可表达为10112、110 2、10/>0/> 2,其中,/>表示-1。
不难想到的是,将接收到的参数与常数的不同二进制表达相乘时,不同二进制表达对应的计算过程可能存在差异,如二进制表达中非零元(也即“1”)的数量越多,则乘法运算的复杂性越高。
基于此,本发明实施例将从每个常数对应的各种二进制表达进行筛选,从而确定出每个常数最合适的二进制表达,并以此完成多常数乘法器的逻辑电路优化/设置。
此外,需理解的是,本发明实施例中的目标多常数乘法器即指代需进行逻辑电路设置的多常数乘法器。
可选的,请参考图2,图2示出了本发明实施例提供的第二种多常数乘法器的逻辑电路设置方法的流程示意图,即,在此种可行方式中,上述步骤S110具体包括:
S111,针对目标多常数乘法器对应的每个常数,基于哈特利算法得到每个常数的多种二进制表达。
也即,本发明实施例将基于哈特利(Hartley)算法确定多常数乘法器对应的每个常数的每种二进制表达。不难理解的是,任意一个十进制常数均有多种二进制表达,如包括通常意义的二进制表达和正则有符号(Canonic Signed Digit,CSD)二进制表达。
一般来说,一个数的任意二进制数表示,都是由该数的一般二进制演变而来的,这些二进制表示方式虽不同,但这些二进制表示最终所代表的意义是相同的。以CSD为例,CSD是将一个一般二进制从低位到高位遍历,将二进制表示存在的相邻非零元例如11替换成10,进位的1与高位相加,如此反复循环,直到表示中不存在相邻的非零元为止。
下面以19和45为例,来举例说明19和45的一般二进制表示和CSD表示:
19的一般二进制表示为10011,是由1<<4+1<<1+1<<0=16+2+1=19得来的,把19的一般二进制中存在的相邻两个11替换成10,即可得到19的CSD表示,19的CSD表示为1010/>,是由1<<4+1<<2+/><<0=16+4+(-1)=19得来的。
45的一般二进制表示为101101,是由1<<5<<+1<<3+1<<2+1<<0=32+8+4+1=45得来的,同样把45中存在的相邻的两个11替换成101,便可以得到45的CSD表示,45的CSD表示为100/>01,由1<<6+/><<4+/><<2+1<<0=64+(-16)+(-4)+1=45得到。
根据19和45的一般二进制表示和CSD表示推导结果,可知,一个数的不同二进制表示不相同,但是它们的最终所表示的数值完全相同。
步骤S120,从所有常数中选取一个或多个未被选取过的常数作为目标常数,并确定所述目标常数对应的各个候选组合,其中,各个所述候选组合均由每个常数对应的一种二进制表达构成,各个所述候选组合中仅所述目标常数对应的二进制表达不同,各个所述候选组合中已被选取过的常数的二进制表达均为对应的最优二进制表达。
也即,本发明实施例将依次对每个常数进行最优二进制表达的选择。
具体而言,在确定各个常数的二进制后,针对于每个常数,随机地从其对应的各个二进制表达中抽取一种,再将抽取到的各个二进制表达作为一个组合,重复多次以得到所有常数对应的所有二进制表达组合。示范性的,设目标多常数乘法器对应3个常数,每个常数均对应为2种二进制表达,则3个常数对应的所有二进制表达组合共23种,即8种。
随后,从所有常数对应的所有二进制表达组合中,随机选取一个组合以作为初始组合。
最后,再选取一个常数以作为本轮需进行最优二进制表达选取的常数,也即目标常数,并选取初始组合和初始组合之外、仅目标常数的二进制表达不同的其他组合以构成候选组合。
为更好地说明步骤,请参考此例:设目标多常数乘法器对应的常数有19,5及45,从对应的所有二进制表达组合抽取一种以作为初始组合,设此初始组合为{1010 2,1012,10/>0012};再将19作为目标常数,从所有二进制表达组合抽取19初始组合和初始组合之外、仅19的二进制表达不同的其他组合以构成候选组合,设19的另一种二进制表达为100112,则19对应的候选组合包括:{1010/> 2,1012,10/>0/>012}和{100112,1012,10/>0/>012}。
步骤S130,分别对所述各个所述候选组合中的二进制表达进行公因子消除操作,得到各个所述候选组合对应的简化组合。
需说明的是,本发明实施例中的公因子消除(Common SubexpressionElimination,CSE)操作指代将候选组合中相同的因子消除/隐藏/共享,从而使消去公因子后的候选组合中的非零元数量减少。
还需说明的是,在进行二进制表达式的公因子消元操作时,公因子是一个子表达式,其中‘1’的个数为2,如101,1001。
可以理解的是,公因子消元操作的具体执行过程为根据实际情况设置的内容。如在本发明实施例提供一种可行方式中,将基于候选组合中的每个公因子,分别进行消元以得到每个公因子在消元之后的组合。
而在本发明实施例提供的另一种可行方式中,具体可参考图3,示出了本发明实施例提供的第三种可行方式的流程示意图,即在此种可行方式中,上述步骤S130具体包括:
步骤S130,针对每个所述候选组合,确定所述候选组合中的各个二进制表达中出现频率最高的目标公因子,并基于所述目标公因子对所述候选组合中的各个二进制表达进行消除操作,得到对应的简化组合,其中,所述目标公因子大于2。
为更好地说明此种可行方式,以前例{1010 2,1012,10/>0/>012}和{100112,1012,10/>0/>012}进行说明。
针对于{1010 2,1012,10/>0/>012},在此组合中不难发现,101的出现次数最多,为3,则将101视作公因子A以对集合{1010/> 2,1012,10/>0/>012}进行重写/消除,进而{1010/> 2,1012,10/>0/>012}变化为{00A0/> 2,00A2,10/>0/>012},即得到简化组合。
针对于{100112,1012,100/>012},因此组合中任意一个公因子的出现次数均不超过1,换言之,所有公因子的出现频率均为最高,故简化组合与原组合相同。
步骤S140,基于各个所述简化组合中的所有二进制表达的非零元的数量总和,确定最小总和对应的最优简化组合。
可以理解的是,非零元的数量能代表加法执行次数,即,每个非零元(也即“1”)均代表输入参数进行一次与(AND)运算以得到对应的子乘积,而非零元数量越多,则子乘积的数量越多,进而各个子乘积需进行的加法的次数也越多。
仍以前述例子进行说明,对比简化组合{00A0 2,00A2,10/>0/>012}和{1012,100112,10/>0/>012},因“A”可共享,则在{00A0/> 2,00A2,10/>0/>012}中,(包括“A”在内的)非零元的数量为8,在{100112,1012,10/>0/>012}中,非零元的数量为9。
进而,因{00A2,00A0 2,10/>0/>012}的所包含的非零元的数量总和最少,故其为最优简化组合。
步骤S150,将所述最优简化组合对应的候选组合中所述目标常数的二进制表达作为所述目标常数的最优二进制表达。
仍以前例进行说明,即:{00A0 2,00A2,10/>0/>012}为最优简化组合时,其对应的候选组合为{1010/> 2,1012,10/>0/>012},进而,目标常数为19的最优二进制表达为1010/> 2
步骤S160,返回至所述从所有常数中选取一个未被选取过的常数以作为目标常数,并确定所述目标常数对应的各个候选组合的步骤,直至得到所有常数的最优二进制表达时,基于最后得到的最优简化组合对应的最小总和,确定所述目标多常数乘法器中的第一加法器数量,其中,所述最后得到的最优简化组合对应的最小总和与所述第一加法器数量成正比。
任意前例进行说明,当得到19对应的最优二进制表达1010 2后,本发明实施例将在固定1010/> 2的情况下,查找5和45二者分别对应的最优二进制表达。
具体的,因5对应的一般二进制表达和其它任意二进制表达均一致,故5对应的最优二进制表达即1012
之后,因45对应的二进制表达包括1011012和100/>012,故45对应的候选组合为{1010/> 2,1012,1011012}和{1010/> 2,1012,10/>0/>012}。
随后,针对{1010 2,1012,1011012},可知公因子101的出现频率最高,故其对应的简化组合为{00A0/> 2,00A2,00A00A2}。对比{1010/> 2,1012,10/>0/>012},可知第一个组合公因子101出现频率仍为最高,故其对应的简化组合为{00A2,00A01/> 2,00A00A2}。
然后,针对简化组合{00A0 2,00A2,00A00A2},可知加法数量总和为3;针对简化组合{00A0/> 2,00A2,10/>0/>012},可知加法的数量总和为5。由此,简化组合{00A0/> 2,00A2,00A00A2}为最优简化组合。
最后,因简化组合{00A2,00A0 2,00A00A2}对应的候选组合为{1010/> 2,1012,1011012},故45对应的最优二进制为1011012
由此,完成5、19即45的最优二进制确定后,最后得到的最优简化组合为{00A2,00A0 2,00A00A2},其对应的最小总和(也即加法器个数的总和)为3,由此即可确定目标多常数乘法器中的第一加法器数量。
举例而言,设目标多常数乘法器的输入参数为X,则基于最优简化组合可知的计算过程分别为:
因X*5的输出结果计算过程为:510*X=1012*X=X<<2+X=A。包含1个加法器,产生共享因子A。
常数X*19的输出结果计算过程为:(X<<2)+(X*<<0)。此过程包含1次加法运算。
常数X*45的输出结果计算过程为:(X<<3)+X。此过程包含1次加法运算。
不难发现,此种计算过程方式下,则仅执行3次加法运算即可完成三种输出结果的计算。也即,加法器的数量为3即可实现此目标多常数乘法器。
步骤S170,基于所述第一加法器数量,设置所述目标多常数乘法器中的加法器。
也即,本发明实施例将基于前一步骤确定出的加法器数量,对应设置目标多常数乘法器中各个的加法器,进而,针对于5、19及45对应的目标多常数乘法器,基于3个加法器即能实现各个常数的计算。
可选的,在公因子中可能存在复数个非零元,而公因子的复数个非零元亦需对应的加法器,故在本发明实施例提供的一种可行方式中,还包括:
基于所述最后得到的最优简化组合对应的目标公因子中的非零元的数量,确定第二加法器数量,其中,所述目标公因子中的非零元的数量与所述第二加法器的数量成正比。
进而,上述步骤S170具体包括:
基于所述第一加法器数量和所述第二加法器数量,设置所述目标多常数乘法器中的加法器。
示范性的,以前述目标公因子1012为例,此目标公因子1012中存在两个“1”,进而目标公因子1012亦需1个相应的加法器以完成相应的运算。由此,前述5、19及45对应的目标多常数乘法器中,设置3个加法器即可完成5、19及45分别对应的常数乘积运算。
此外,可以理解的是,本发明实施例中步骤S120至S160为迭代循环过程,此过程可采用任意地搜索算法以得到前述“最后得到的最优简化组合”。如在一种实例中,本发明实施例基于模拟退火算法、遗传算法、贪心算法中的其中一种以完成步骤S120至S160的迭代执行。
基于此,本发明实施例通过对各个常数的最佳二进制表达的查找,从而确定出了多常数乘法器所对应的最少加法器数量,使得多常数乘法器的面积能最小,由此使得多常数乘法器的设置能满足当下电路设计需求。
实施例2
与本发明实施例1提供的多常数乘法器的逻辑电路设置方法相对应的,本发明实施例2还提供一种多常数乘法器的逻辑电路设置装置,参照图4,示出了本发明实施例提供的多常数乘法器的逻辑电路设置装置的结构示意图,本发明实施例提供的多常数乘法器的逻辑电路设置装置200,包括:
转换模块210,用于对目标多常数乘法器对应的每个常数进行二进制转换,得到每个常数的多种二进制表达;
选取模块220,用于从所有常数中选取一个常数作为目标常数,并确定所述目标常数对应的各个候选组合,其中,各个所述候选组合均由每个常数对应的一种二进制表达构成,各个所述候选组合中仅所述目标常数对应的二进制表达不同,各个所述候选组合中已被选取过的常数的二进制表达均为对应的最优二进制表达;
消除模块230,用于分别对所述各个所述候选组合中的二进制表达进行公因子消除操作,得到各个所述候选组合对应的简化组合;
组合确定模块240,用于基于各个所述简化组合中的所有二进制表达的非零元的数量总和,确定最小总和对应的最优简化组合;
表达确定模块250,用于将所述最优简化组合对应的候选组合中所述目标常数的二进制表达作为所述目标常数的最优二进制表达;
第一数量确定模块260,用于返回至所述从所有常数中选取一个未被选取过的常数以作为目标常数,并确定所述目标常数对应的各个候选组合的步骤,直至得到所有常数的最优二进制表达时,基于最后得到的最优简化组合对应的最小总和,确定所述目标多常数乘法器中的第一加法器数量,其中,所述最后得到的最优简化组合对应的最小总和与所述第一加法器数量成正比;
设置模块270,用于基于所述第一加法器数量,设置所述目标多常数乘法器中的加法器。
可选的,在本发明实施例提供的一种可行方式中,所述转换模块还用于针对目标多常数乘法器对应的每个常数,基于哈特利算法得到每个常数的多种二进制表达。
可选的,在本发明实施例提供的一种可行方式中,所述消除模块还用于针对每个所述候选组合,确定所述候选组合中的各个二进制表达中出现频率最高的目标公因子,并基于所述目标公因子对所述候选组合中的各个二进制表达进行消除操作,得到对应的简化组合,其中,所述目标公因子大于2。
可选的,在本发明实施例提供的一种可行方式中,还包括:
第二数量确定模块,用于基于所述最后得到的最优简化组合对应的目标公因子中的非零元的数量,确定第二加法器数量,其中,所述目标公因子中的非零元的数量与所述第二加法器的数量成正比;
所述设置模块还用于基于所述第一加法器数量和所述第二加法器数量,设置所述目标多常数乘法器中的加法器。
本申请实施例提供的多常数乘法器的逻辑电路设置装置200能够实现实施例1对应的多常数乘法器的逻辑电路设置方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如实施例1中所述的多常数乘法器的逻辑电路设置方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如实施例1中所述的多常数乘法器的逻辑电路设置方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种多常数乘法器的逻辑电路设置方法,其特征在于,包括:
对目标多常数乘法器对应的每个常数进行二进制转换,得到每个常数的多种二进制表达;
从所有常数中选取一个常数作为目标常数,并确定所述目标常数对应的各个候选组合,其中,各个所述候选组合均由每个常数对应的一种二进制表达构成,各个所述候选组合中仅所述目标常数对应的二进制表达不同,各个所述候选组合中已被选取过的常数的二进制表达均为对应的最优二进制表达;
分别对所述各个所述候选组合中的二进制表达进行公因子消除操作,得到各个所述候选组合对应的简化组合;
基于各个所述简化组合中的所有二进制表达的非零元的数量总和,确定最小总和对应的最优简化组合;
将所述最优简化组合对应的候选组合中所述目标常数的二进制表达作为所述目标常数的最优二进制表达;
返回至所述从所有常数中选取一个未被选取过的常数以作为目标常数,并确定所述目标常数对应的各个候选组合的步骤,直至得到所有常数的最优二进制表达时,基于最后得到的最优简化组合对应的最小总和,确定所述目标多常数乘法器中的第一加法器数量,其中,所述最后得到的最优简化组合对应的最小总和与所述第一加法器数量成正比;
基于所述第一加法器数量,设置所述目标多常数乘法器中的加法器。
2.根据权利要求1所述的多常数乘法器的逻辑电路设置方法,其特征在于,所述对目标多常数乘法器对应的每个常数进行二进制转换,得到每个常数的多种二进制表达,包括:
针对目标多常数乘法器对应的每个常数,基于哈特利算法得到每个常数的多种二进制表达。
3.根据权利要求1所述的多常数乘法器的逻辑电路设置方法,其特征在于,所述分别对所述各个所述候选组合中的二进制表达进行公因子消除操作,得到各个所述候选组合对应的简化组合,包括:
针对每个所述候选组合,确定所述候选组合中的各个二进制表达中出现频率最高的目标公因子,并基于所述目标公因子对所述候选组合中的各个二进制表达进行消除操作,得到对应的简化组合,其中,所述目标公因子大于2。
4.根据权利要求3所述的多常数乘法器的逻辑电路设置方法,其特征在于,还包括:
基于所述最后得到的最优简化组合对应的目标公因子中的非零元的数量,确定第二加法器数量,其中,所述目标公因子中的非零元的数量与所述第二加法器的数量成正比;
所述基于所述第一加法器数量,设置所述目标多常数乘法器中的加法器,包括:
基于所述第一加法器数量和所述第二加法器数量,设置所述目标多常数乘法器中的加法器。
5.一种多常数乘法器的逻辑电路设置装置,其特征在于,包括:
转换模块,用于对目标多常数乘法器对应的每个常数进行二进制转换,得到每个常数的多种二进制表达;
选取模块,用于从所有常数中选取一个常数作为目标常数,并确定所述目标常数对应的各个候选组合,其中,各个所述候选组合均由每个常数对应的一种二进制表达构成,各个所述候选组合中仅所述目标常数对应的二进制表达不同,各个所述候选组合中已被选取过的常数的二进制表达均为对应的最优二进制表达;
消除模块,用于分别对所述各个所述候选组合中的二进制表达进行公因子消除操作,得到各个所述候选组合对应的简化组合;
组合确定模块,用于基于各个所述简化组合中的所有二进制表达的非零元的数量总和,确定最小总和对应的最优简化组合;
表达确定模块,用于将所述最优简化组合对应的候选组合中所述目标常数的二进制表达作为所述目标常数的最优二进制表达;
第一数量确定模块,用于返回至所述从所有常数中选取一个未被选取过的常数以作为目标常数,并确定所述目标常数对应的各个候选组合的步骤,直至得到所有常数的最优二进制表达时,基于最后得到的最优简化组合对应的最小总和,确定所述目标多常数乘法器中的第一加法器数量,其中,所述最后得到的最优简化组合对应的最小总和与所述第一加法器数量成正比;
设置模块,用于基于所述第一加法器数量,设置所述目标多常数乘法器中的加法器。
6.根据权利要求5所述的多常数乘法器的逻辑电路设置装置,其特征在于,所述转换模块还用于针对目标多常数乘法器对应的每个常数,基于哈特利算法得到每个常数的多种二进制表达。
7.根据权利要求5所述的多常数乘法器的逻辑电路设置装置,其特征在于,所述消除模块还用于针对每个所述候选组合,确定所述候选组合中的各个二进制表达中出现频率最高的目标公因子,并基于所述目标公因子对所述候选组合中的各个二进制表达进行消除操作,得到对应的简化组合,其中,所述目标公因子大于2。
8.根据权利要求7所述的多常数乘法器的逻辑电路设置装置,其特征在于,还包括:
第二数量确定模块,用于基于所述最后得到的最优简化组合对应的目标公因子中的非零元的数量,确定第二加法器数量,其中,所述目标公因子中的非零元的数量与所述第二加法器的数量成正比;
所述设置模块还用于基于所述第一加法器数量和所述第二加法器数量,设置所述目标多常数乘法器中的加法器。
9.一种计算机设备,其特征在于,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行如权利要求1-4任一项所述的多常数乘法器的逻辑电路设置方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在处理器上运行时执行如权利要求1-4任一项所述的多常数乘法器的逻辑电路设置方法。
CN202310236726.4A 2023-03-13 2023-03-13 多常数乘法器的逻辑电路设置方法、装置、设备及介质 Active CN116149600B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310236726.4A CN116149600B (zh) 2023-03-13 2023-03-13 多常数乘法器的逻辑电路设置方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310236726.4A CN116149600B (zh) 2023-03-13 2023-03-13 多常数乘法器的逻辑电路设置方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN116149600A CN116149600A (zh) 2023-05-23
CN116149600B true CN116149600B (zh) 2023-09-08

Family

ID=86339002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310236726.4A Active CN116149600B (zh) 2023-03-13 2023-03-13 多常数乘法器的逻辑电路设置方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116149600B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1419388A (zh) * 2001-11-12 2003-05-21 三星电子株式会社 利用垂直公共子表达式的低功率滤波器结构及其设计方法
CN109510609A (zh) * 2018-12-11 2019-03-22 天津工业大学 一种低复杂度的稀疏fir低通滤波器的设计方法
CN110086452A (zh) * 2018-12-11 2019-08-02 天津工业大学 一种低复杂度的稀疏fir陷波滤波器的设计方法
CN110737869A (zh) * 2019-12-20 2020-01-31 眸芯科技(上海)有限公司 Dct/idct乘法器电路优化方法及应用
CN112256236A (zh) * 2020-10-30 2021-01-22 东南大学 一种基于近似定常数复数乘法器的fft电路及实现方法
GB202117313D0 (en) * 2021-11-30 2022-01-12 Imagination Tech Ltd Multiplication by a rational in hardware with selectable rounding mode

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1419388A (zh) * 2001-11-12 2003-05-21 三星电子株式会社 利用垂直公共子表达式的低功率滤波器结构及其设计方法
CN109510609A (zh) * 2018-12-11 2019-03-22 天津工业大学 一种低复杂度的稀疏fir低通滤波器的设计方法
CN110086452A (zh) * 2018-12-11 2019-08-02 天津工业大学 一种低复杂度的稀疏fir陷波滤波器的设计方法
CN110737869A (zh) * 2019-12-20 2020-01-31 眸芯科技(上海)有限公司 Dct/idct乘法器电路优化方法及应用
CN112256236A (zh) * 2020-10-30 2021-01-22 东南大学 一种基于近似定常数复数乘法器的fft电路及实现方法
GB202117313D0 (en) * 2021-11-30 2022-01-12 Imagination Tech Ltd Multiplication by a rational in hardware with selectable rounding mode

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于MSD编码的FIR滤波器优化方法;刘砚一;《太原理工大学学报》;全文 *

Also Published As

Publication number Publication date
CN116149600A (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
US11720783B2 (en) Multiplication and addition device for matrices, neural network computing device, and method
CN112199707A (zh) 一种同态加密中的数据处理方法、装置以及设备
CN103294445B (zh) 产生用于多项式运算的部分乘积的设备和方法
CN114067157B (zh) 基于忆阻器的神经网络优化方法、装置及忆阻器阵列
CN106708468B (zh) 一种除法运算装置
CN110109646A (zh) 数据处理方法、装置和乘加器及存储介质
CN116149600B (zh) 多常数乘法器的逻辑电路设置方法、装置、设备及介质
US10963746B1 (en) Average pooling in a neural network
CN115035384B (zh) 数据处理方法、装置和芯片
CN112507710B (zh) 估计差分隐私保护数据中分词频度的方法及装置
CN116166217A (zh) 执行浮点操作的系统和方法
JP7243498B2 (ja) 演算処理装置、制御プログラム、及び制御方法
US11494165B2 (en) Arithmetic circuit for performing product-sum arithmetic
CN111260036B (zh) 一种神经网络加速方法和装置
CN110457008B (zh) m序列生成方法、装置及存储介质
JP6059572B2 (ja) 画像処理装置
JP7006808B2 (ja) 演算処理装置および演算処理装置の制御方法
KR101976315B1 (ko) 이산대칭채널에서의 극 부호 설계 방법 및 그 장치
US20240056058A1 (en) Fir filter, filtering method by fir filter, and non-transitory computer readable medium storing control program
US20210365239A1 (en) Logarithm calculation method and logarithm calculation circuit
JP2020067897A (ja) 演算処理装置、学習プログラム及び学習方法
US9336579B2 (en) System and method of performing multi-level integration
JP4176097B2 (ja) 符号化システム、符号化コンピュータ・プログラム、復号化システムおよび復号化コンピュータ・プログラム
CN116755658A (zh) 一种基于巴雷特约减的模乘器及约减计算方法
WO2020079802A1 (ja) 演算処理装置および演算処理装置の制御方法

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