CN105867876A - 一种乘加器、乘加器阵列、数字滤波器及乘加计算方法 - Google Patents
一种乘加器、乘加器阵列、数字滤波器及乘加计算方法 Download PDFInfo
- Publication number
- CN105867876A CN105867876A CN201610184422.8A CN201610184422A CN105867876A CN 105867876 A CN105867876 A CN 105867876A CN 201610184422 A CN201610184422 A CN 201610184422A CN 105867876 A CN105867876 A CN 105867876A
- Authority
- CN
- China
- Prior art keywords
- multiplier
- adder
- multiply
- conversion
- accumulator
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种乘加器、乘加器阵列、数字滤波器及乘加计算方法。该乘加器包括乘数转换器,用于对乘数进行转换以获得转换后的乘数,所述转换后的乘数以二进制表示时,只有一个比特位上是1,其余比特位都是0;乘法器,用于将所述转换后的乘数与被乘数相乘以获得乘积;累加器,用于将所述乘积进行累加以输出所述乘积的累加结果。通过将乘加器的乘数进行转换,使得乘加器在做乘法运算时,不管乘数和被乘数有多少位,乘法器就只需要1个比特的空间,1个时钟周期就能完成一个乘法运算。乘加器的功耗和面积都大大降低,而速度却大大增加。
Description
技术领域
本发明涉及数字滤波技术领域,尤其涉及一种乘加器、乘加器阵列、数字滤波器及乘加计算方法。
背景技术
在现有移动通信技术的数字基带技术中,数字滤波技术是较为重要的一种技术。众所周知,数字滤波过程主要是滤波系数和采样数据的相乘操作以及累加操作来实现。因此,乘加器是数字滤波器非常核心的模块,它往往决定了数字滤波器的速度和资源消耗(如面积、功耗等)。
然而,在现有的数字滤波器中,乘加器都是基于精确计算原理来工作的,滤波系数通常是一个非常精确的、而且会随着采样数据的变化而变化的数字。但是,滤波系数对数字滤波器最终的滤波精确度的影响是一个相对的关系,并不是一个绝对的关系。这样,使用精确的滤波系数计算,就会使乘加计算,尤其是乘法计算的计算量非常大,进而导致数字滤波器存在速度慢、功耗大、面积大等缺陷。因此,需要设计一种既能保证数字滤波器的有效精度,又能简化乘法计算的乘加器。
发明内容
针对现有技术中乘加器计算量大、占用资源多的缺陷,本发明提供一种能大大简化乘法计算、降低乘加器面积和功耗的乘加器、乘加器阵列、数字滤波器和乘加计算方法。
本发明就上述技术问题而提出的技术方案如下:
一方面,提供了一种乘加器,包括:乘数转换器,用于对乘数进行转换以获得转换后的乘数,所述转换后的乘数以二进制表示时,只有一个比特位上是1,其余比特位都是0;乘法器,用于将所述转换后的乘数与被乘数相乘以获得乘积;累加器,用于将所述乘积进行累加以输出所述乘积的累加结果。
优选地,所述乘数转换器对所述乘数进行转换时,保留所述乘数的二进制最高位的1,其余位都置0。
优选地,所述乘数转换器对所述乘数进行转换时,所述乘数转换器执行以下操作:
根据所述乘数的值获得与所述乘数相邻的两个数2n与2n+1,其中所述乘数在2n~2n+1范围内,n为整数;以及
判断所述乘数更接近所述2n与2n+1中的哪一个,若更接近2n,则将所述乘数转换为2n,否则将所述乘数转换为2n+1。
另一方面,还提供了一种乘加器阵列,包括至少两个上述乘加器。
优选地,在所述乘加器阵列中,所述乘加器串联。
优选地,在所述乘加器阵列中,所述乘加器并联。
又一方面,还提供了一种数字滤波器,包括上述乘加器。
又一方面,还提供了一种乘加计算方法,包括以下步骤:
S1、将乘数转换以获得转换后的乘数,所述转换后的乘数以二进制表示时,只有一个比特位上是1,其余比特位都是0;
S2、将所述转换后的乘数与被乘数相乘以获得乘积;以及
S3、将所述乘积进行累加以输出所述乘积的累加结果。
优选地,所述将乘数转换以获得转换后的乘数包括:保留所述乘数的二进制最高位的1,其余位都置0。
优选地,所述将乘数转换以获得转换后的乘数包括:
根据所述乘数的值获得与所述乘数相邻的两个数2n与2n+1,其中所述乘数在2n~2n+1范围内,n为整数;以及
判断所述乘数更接近所述2n与2n+1中的哪一个,若更接近2n,则将所述乘数转换为2n,否则将所述乘数转换为2n+1。
实施本发明实施例,具有如下有益效果:通过将乘加器的乘数进行转换,使得转换后的乘数的二进制比特位上只有一位是1,其他比特位上都是0。这样,乘加器在做乘法运算时,不管乘数和被乘数有多少位,乘法器就只需要1个比特的空间,1个时钟周期就能完成一个乘法运算。乘加器的功耗和面积都大大降低,而速度却大大增加。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的第一实施例乘加器结构方框图;
图2是本发明提供的第一实施例乘数转换结构示意图;
图3是本发明提供的第一实施例乘数转换结构示意图;
图4是本发明提供的第二实施例乘加器阵列结构示意图;
图5是本发明提供的第二实施例乘加器阵列结构示意图;
图6是本发明提供的第三实施例数字滤波器结构示意图;
图7是本发明提供的第四实施例乘加计算方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一 乘加器
本实施例提供了一种乘加器,参见图1~3,该乘加器100包括:乘数转换器11、乘法器12和累加器13。
乘数转换器11用于对乘数A进行转换以获得转换后的乘数A'。转换后的乘数A'以二进制表示时,只有一个比特位上是1,其余比特位都是0。
乘法器12用于将转换后的乘数A'与被乘数X相乘以获得乘积。
累加器13用于将乘积进行累加以输出累加结果Y。
在本实施例中,乘数A可包括L(L为自然数)个数a1、a2…aL,被乘数X也可包括N个数x1、x2…xN。累加器13需要对这L个乘积进行累加,其计算公式如下:
具体地,如图2和3所示,乘数转换器11对乘数A进行转换的方式包括以下两种方式:
方式一,保留乘数A的二进制最高位的1,其余位都置0。例如,如图2所示,假设乘数A是一个8bit(b0~b7)的数,A的值为26,那么以二进制方式表示A时,其b1、b3和b5位为1,其余位为0。在转换时,直接保留b5位的1,其余位都置0。也就是说,转换后的乘数A'的值为16。
方式二:首先根据乘数A的值获得与乘数A相邻的两个数2n与2n+1,其中所述乘数在2n~2n+1范围内,n为整数;然后判断乘数A更接近2n与2n+1中的哪一个,若更接近2n,则将所述乘数转换为2n,否则将所述乘数转换为2n+1。例如,如图3所示,同样假设乘数A是一个8bit(b0~b7)的数,A的值为26,那么与乘数A相邻的两个数为25=32和24=16。因为26更接近32,所以A'的值为32。
当对乘数A进行了上述方式的转换后,乘数A与被乘数X之间的乘法将变得非常简单,只需要根据A'中1所在的位置而相应对X进行移位即可。如果A是大于1的数,那么X就向左移位;如果A小于1,那么X向右移位。也就是说,乘法器12不单单实现了乘法计算,其实还可以实现除法计算。由于不管转换后的乘数A'有多长(8bit、9bit、10bit…),转换后的乘数A'始终只有一个比特位上的值为1,因此乘法器12只需要占用1bit的资源。也就是说,乘法器12可以简化成1bit的移位寄存器。因此,
在现有技术中,如果用一个8bit的乘数A进行乘法运算,其实是需要对乘数A的每个位分别进行乘法运算,即便这个位上是0。那么完成一个8bit的乘数的乘法运算,至少需要8个时钟周期。而采用本申请转换后的乘数A'进行计算时,只需要进行一次移位操作来完成乘法运算。也就是说,本申请不管乘数A有多长,都只需要一个时钟周期来完成一次乘法运算。这样,大大提高了计算速度,而且明显降低了功耗。
应理解,在本申请中,数据的输入和输出既可以采用串行模式,也可以采用并行模式,还可以采用串并结合的方式。这属于本领域的现有技术,本领域技术人员可以根据实际需求,在本申请的基础上进行相应的设计,这并不需要付出创造性劳动。
实施例二 乘加器阵列
本实施例提供了一种乘加器阵列,如图4和5所示,该乘加器阵列可包括至少两个实施例一中的乘加器100。
具体地,如图4所示,乘加器阵列200包括7个并联乘加器100。7个乘加器100的输入X1~X7可以完全相同、部分相同或完全不同。如果乘加器100的输入X1~X7相同,则可以用不同的乘数A与被乘数X相乘,从而达到不同的滤波效果。如果乘加器100的输入X1~X7不同,那么就可以对同一事物的不同属性项进行滤波。例如,X1~X7可以表示频率、空间位置(x轴、y轴和z轴)、电流、电压、速率等等。实施本实施例的乘加器阵列,就可以用很少的资源来描述一个非常复杂的事项。
具体地,如图5所示,乘加器阵列300包括4个串联的乘加器100。4个乘加器100的乘数A1~A4可以完全相同、部分相同或完全不同。通过串联连接的方式来构建乘加器阵列300,可以实现对被乘数X1的多级滤波。
在本发明提供的其他优选实施例中,乘加器阵列还可以同时包括并联和串联连接的多个乘加器100。
应理解,本实施例所给出的乘加器100的具体个数只是为了举例说明,并不是为了限制本发明。本领域技术人员在本申请的教导下,可根据实际需要选择乘加器100的数量,这并不需要付出创造性劳动。
实施例三 数字滤波器
本实施例提供了一种数字滤波器,参见图6,该数字滤波器400包括实施例一中所描述的乘加器100。
乘加器是数字滤波器的核心模块。在现有技术中,数字滤波器的滤波系数A与采样数据X的乘加运算都是精确计算的。但是在本申请中,申请人经过大量的探索和研究发现,滤波系数A的精确度对数字滤波器最后的滤波精度的影响并没有那么明显。因此,本申请探索并设计了一种基于模糊计算的数字滤波器,这种滤波器既可以获得很好的滤波精度,又可以大大减少计算量、提高计算速度并节约资源。
实施例四 乘加计算方法
本实施例提供了一种乘加计算方法,参见图7,该乘加计算方法包括以下步骤:
步骤S1,将乘数转换以获得转换后的乘数,转换后的乘数以二进制表示时,只有一个比特位上是1,其余比特位都是0;
进一步地,保留乘数的二进制最高位的1,其余位都置0,以实现上述乘数转换。
进一步地,还可通过如下步骤实现乘数转换:
步骤S11,根据乘数的值获得与乘数相邻的两个数2n与2n+1,其中所述乘数在2n~2n+1范围内,n为整数;以及
步骤S12,判断乘数更接近2n与2n+1中的哪一个,若更接近2n,则将所述乘数转换为2n,否则将所述乘数转换为2n+1。
通过本实施例制备的乘加计算方法,可快速地完成乘法计算,提升计算速度,而且降低了乘加运算的功耗。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种乘加器,其特征在于,包括:
乘数转换器,用于对乘数进行转换以获得转换后的乘数,所述转换后的乘数以二进制表示时,只有一个比特位上是1,其余比特位都是0;
乘法器,用于将所述转换后的乘数与被乘数相乘以获得乘积;
累加器,用于将所述乘积进行累加以输出所述乘积的累加结果。
2.根据权利要求1所述的乘加器,其特征在于,所述乘数转换器对所述乘数进行转换时,保留所述乘数的二进制最高位的1,其余位都置0。
3.根据权利要求1所述的乘加器,其特征在于,所述乘数转换器对所述乘数进行转换时,所述乘数转换器执行以下操作:
根据所述乘数的值获得与所述乘数相邻的两个数2n与2n+1,其中所述乘数在2n~2n+1范围内,n为整数;以及
判断所述乘数更接近所述2n与2n+1中的哪一个,若更接近2n,则将所述乘数转换为2n,否则将所述乘数转换为2n+1。
4.一种乘加器阵列,其特征在于,包括至少两个如权利要求1至3任意一项所述的乘加器。
5.根据权利要求4所述的乘加器阵列,其特征在于,所述乘加器串联。
6.根据权利要求4所述的乘加器阵列,其特征在于,所述乘加器并联。
7.一种数字滤波器,其特征在于,包括如权利要求1至3任意一项所述的乘加器。
8.一种乘加计算方法,其特征在于,包括以下步骤:
S1、将乘数转换以获得转换后的乘数,所述转换后的乘数以二进制表示时,只有一个比特位上是1,其余比特位都是0;
S2、将所述转换后的乘数与被乘数相乘以获得乘积;以及
S3、将所述乘积进行累加以输出所述乘积的累加结果。
9.根据权利要求8所述的乘加计算方法,其特征在于,所述将乘数转换以获得转换后的乘数包括:
保留所述乘数的二进制最高位的1,其余位都置0。
10.根据权利要求8所述的乘加计算方法,其特征在于,所述将乘数转换以获得转换后的乘数包括:
根据所述乘数的值获得与所述乘数相邻的两个数2n与2n+1,其中所述乘数在2n~2n+1范围内,n为整数;以及
判断所述乘数更接近所述2n与2n+1中的哪一个,若更接近2n,则将所述乘数转换为2n,否则将所述乘数转换为2n+1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610184422.8A CN105867876A (zh) | 2016-03-28 | 2016-03-28 | 一种乘加器、乘加器阵列、数字滤波器及乘加计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610184422.8A CN105867876A (zh) | 2016-03-28 | 2016-03-28 | 一种乘加器、乘加器阵列、数字滤波器及乘加计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105867876A true CN105867876A (zh) | 2016-08-17 |
Family
ID=56625189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610184422.8A Pending CN105867876A (zh) | 2016-03-28 | 2016-03-28 | 一种乘加器、乘加器阵列、数字滤波器及乘加计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105867876A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018196750A1 (zh) * | 2017-04-24 | 2018-11-01 | 华为技术有限公司 | 处理乘加运算的装置和处理乘加运算的方法 |
CN109194307A (zh) * | 2018-08-01 | 2019-01-11 | 南京中感微电子有限公司 | 数据处理方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1328663A (zh) * | 1998-11-30 | 2001-12-26 | 艾利森电话股份有限公司 | 数字值处理器 |
CN1337094A (zh) * | 1999-12-17 | 2002-02-20 | 酒井康江 | 数字-模拟变换器 |
CN1411628A (zh) * | 1999-12-17 | 2003-04-16 | 因芬尼昂技术股份公司 | 用于对信号进行偏差补偿的电路装置和方法 |
US20040181567A1 (en) * | 2002-12-13 | 2004-09-16 | Stmicroelectronics S.R.L. | Method and device for floating-point multiplication, and corresponding computer-program product |
CN1545652A (zh) * | 2001-08-17 | 2004-11-10 | ���ȿ���ͨ�Źɷ�����˾ | 乘法器电路 |
CN1593017A (zh) * | 2001-05-17 | 2005-03-09 | 高通股份有限公司 | 带时差补偿的cdma搜索器 |
CN101986260A (zh) * | 2010-11-25 | 2011-03-16 | 中国人民解放军国防科学技术大学 | 乘加方法及乘加器 |
CN103257845A (zh) * | 2012-02-21 | 2013-08-21 | 京微雅格(北京)科技有限公司 | 乘加器 |
CN204316468U (zh) * | 2014-12-25 | 2015-05-06 | 上海贝岭股份有限公司 | 一种多路数字滤波器 |
-
2016
- 2016-03-28 CN CN201610184422.8A patent/CN105867876A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1328663A (zh) * | 1998-11-30 | 2001-12-26 | 艾利森电话股份有限公司 | 数字值处理器 |
CN1337094A (zh) * | 1999-12-17 | 2002-02-20 | 酒井康江 | 数字-模拟变换器 |
CN1411628A (zh) * | 1999-12-17 | 2003-04-16 | 因芬尼昂技术股份公司 | 用于对信号进行偏差补偿的电路装置和方法 |
CN1593017A (zh) * | 2001-05-17 | 2005-03-09 | 高通股份有限公司 | 带时差补偿的cdma搜索器 |
CN1545652A (zh) * | 2001-08-17 | 2004-11-10 | ���ȿ���ͨ�Źɷ�����˾ | 乘法器电路 |
US20040181567A1 (en) * | 2002-12-13 | 2004-09-16 | Stmicroelectronics S.R.L. | Method and device for floating-point multiplication, and corresponding computer-program product |
CN101986260A (zh) * | 2010-11-25 | 2011-03-16 | 中国人民解放军国防科学技术大学 | 乘加方法及乘加器 |
CN103257845A (zh) * | 2012-02-21 | 2013-08-21 | 京微雅格(北京)科技有限公司 | 乘加器 |
CN204316468U (zh) * | 2014-12-25 | 2015-05-06 | 上海贝岭股份有限公司 | 一种多路数字滤波器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018196750A1 (zh) * | 2017-04-24 | 2018-11-01 | 华为技术有限公司 | 处理乘加运算的装置和处理乘加运算的方法 |
CN109194307A (zh) * | 2018-08-01 | 2019-01-11 | 南京中感微电子有限公司 | 数据处理方法及系统 |
CN109194307B (zh) * | 2018-08-01 | 2022-05-27 | 南京中感微电子有限公司 | 数据处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102882491B (zh) | 一种稀疏无频偏线性相位fir陷波滤波器的设计方法 | |
CN203966104U (zh) | 可配置可扩展的流水线乘累加器 | |
CN103984560A (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
JP2012514909A (ja) | 前置加算器段を備えたデジタル信号処理ブロック | |
CN105808206A (zh) | 基于ram实现乘法运算的方法及其系统 | |
CN106374879A (zh) | 一种基于cse有效的fir滤波器优化方法 | |
CN105867876A (zh) | 一种乘加器、乘加器阵列、数字滤波器及乘加计算方法 | |
Singh et al. | Implementation of high speed FIR filter using serial and parallel distributed arithmetic algorithm | |
CN101877577A (zh) | 有限冲激响应滤波器的实现方法和有限冲激响应滤波器 | |
CN104102470A (zh) | 可配置可扩展的流水线乘累加器 | |
CN204316468U (zh) | 一种多路数字滤波器 | |
CN106849904A (zh) | 数字滤波设备 | |
CN102891662B (zh) | 一种通用的速率下变换、上变换装置及方法 | |
CN102436365A (zh) | 一种高速线性频谱数据转换为对数数据的方法及装置 | |
CN204290909U (zh) | 一种带宽、中心频点可调的数字滤波器 | |
CN101840322B (zh) | 滤波器运算单元复用的方法和滤波器的运算系统 | |
CN106920573A (zh) | 基于低功耗数字电路的信号处理装置 | |
CN104348446A (zh) | 一种实现fir滤波的方法和滤波装置 | |
CN100502240C (zh) | 一种有限脉冲响应fir滤波器 | |
CN104731551B (zh) | 基于fpga进行除法操作的方法及装置 | |
CN107527057A (zh) | 一种风速功率异常数据剔除方法及装置 | |
CN103634027B (zh) | 超宽带信号的数字正交调制实时处理方法 | |
CN206461580U (zh) | 数字滤波设备 | |
CN103323063A (zh) | 超声波流量计及其时间差测量方法 | |
CN107707178A (zh) | 低通滤波器的滤波方法、低通滤波器及伺服驱动器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160817 |