CN102314215B - 集成电路系统中小数乘法器的低功耗优化方法 - Google Patents
集成电路系统中小数乘法器的低功耗优化方法 Download PDFInfo
- Publication number
- CN102314215B CN102314215B CN201110289984.6A CN201110289984A CN102314215B CN 102314215 B CN102314215 B CN 102314215B CN 201110289984 A CN201110289984 A CN 201110289984A CN 102314215 B CN102314215 B CN 102314215B
- Authority
- CN
- China
- Prior art keywords
- multiplication
- result
- multiplier
- module
- decimals
- 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
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种集成电路系统中小数乘法器的低功耗优化方法,主要解决目前低功耗设计中额外逻辑引入系统从而影响系统功耗的问题。其主要步骤包括:(1)构建乘法器模块;(2)系数整数化处理;(3)正则有符号数字量优化;(4)提取优化结果;(5)霍纳优化;(6)替换小数乘法器。本发明具有运行速度快,占用资源少,简单易行的优点,能够在不降低系统工作效率、不损失系统运算精度的条件下,大幅降低系统功耗和面积。适用于诸如数字信号处理、数字滤波器等含有大量小数乘法器的系统。
Description
技术领域
本发明属于电子技术领域,更进一步涉及集成电路技术领域中小数乘法器的低功耗优化方法。本发明基于正则有符号数字量算法(CSD)和霍纳算法(Horner Scheme),可用于集成电路中含有小数乘法器的系统的低功耗优化设计。
背景技术
在数字电路设计中,减少冗余信号翻转是一种降低系统功耗的常见方法,但该方法需要在系统中增加额外的控制电路,这会使得系统引入该控制电路所带来的额外功耗和面积。
浪潮电子信息产业股份有限公司拥有的专利技术“一种用于SOC的动态多时钟低功耗AHB总线的设计方法”(申请号:CN200910014266.0,公告号:CN101493717)中公开了一种门控时钟设计方法,用来降低系统功耗。该方法的实现步骤是:引入多个AHB总线,将对工作频率要求不同的外设连接到不同的AHB总线上,对时钟频率不同的各个AHB总线通过AHB-AHB桥相连,以降低某些低速外设的时钟频率,从而降低其动态功耗;通过APB总线动态对多时钟门控寄存器进行读写,控制相应的门控时钟信号,打开需要工作的模块的门控时钟,关闭不需要工作模块的门控时钟。该方法的不足之处是,需要在系统中引入额外的AHB总线及AHB-AHB桥等控制逻辑来减少或降低时钟在不工作时的动态翻转,在降低系统动态功耗的同时引入了额外控制逻辑所带来的功耗和面积。
华为技术有限公司拥有的专利技术“一种动态共享存储器存储空间的实现方法”(申请号:CN200510066582.4,公告号:CN1855881)中公开了一种存储器分块访问的实现方法。该方法的实现步骤是:第一,将存储器的存储空间分成若干个存储分块,并为每个存储分块分配对应的地址指针信息;第二,当发生数据存储需求时,动态为其分配一条由一个或多个存储分块基于所述地址指针信息组成的数据存储分块链,并利用所述数据存储分块链进行数据的存储;第三,当所述的数据存储分块链中的存储分块无需存储数据时,则将其释放为可以分配给其他数据存储需求的存储分块。该方法的不足之处是,需要额外为存储分块分配地址指针,从而动态分配各存储分块的存储需求,因此在降低系统功耗的同时引入了额外地址指针所带来的功耗和面积。
发明内容
本发明的目的在于针对上述已有技术的不足,提出一种小数乘法器的低功耗优化方法。该方法基于正则有符号数字量算法(CSD)和霍纳算法(Horner Scheme),两种算法相辅相承,同时作用于同一小数乘法器。对于含有小数乘法器的系统,本发明可以大幅降低其功耗和面积,同时不引入算法自身的逻辑单元。
为了实现上述目的,本发明的技术方案是将优化乘法器模块与系统分离,仅在系统中实例化,并替换系统中各小数乘法器。在乘法器模块内部,由类属参数传入的小数系数首先经过整数化处理;其次进行正则有符号数字量优化,将优化结果以常数序列表示,综合后,乘法器模块根据这些常数就可以转化为对应的加法器,而算法逻辑本身不会引入乘法器模块中,正则有符号数字量优化指标是综合后乘法器模块转化为加法器的数量;再次进行霍纳优化,针对各级加法器根据正则有符号数字量优化结果,缺省对下级加法运算无任何进位贡献的本级加法结果末位,从而降低各级加法结果位宽;最后将计算结果小数化处理并保持数据宽度后得到最终小数乘法结果。
本发明包括以下步骤:
(1)构建乘法器模块
用硬件描述语言构建乘法器模块实体,包括一个用于输入原小数乘法器系数的类属参数端口;两个用于输入被乘数与数据宽度的输入端口;一个用于输出最终乘法运算结果的输出端口。
(2)系数整数化处理
在乘法器模块内部,按照整数化处理公式X=B(2n-1),对由模块类属参数输入的小数乘法系数进行整数化处理,其中,X为二进制整数处理结果;B为小数乘法器系数;n为数据宽度。
(3)正则有符号数字量优化
对二进制整数处理结果由最低位向第n-1位搜索并做以下记录和处理:
3a)逢“1”则以两个变量分别记录其位置和符号;
3b)逢“0”则判断之前有没有连续的“1”存在:若有,取该连续“1”的补码,将位置变量中的最大连续值加1,与其对应的符号变量为正,位置变量中最小连续值保持不变,与其对应的符号变量为负,删除该两个位置变量之间的位置变量和所对应的符号变量,执行步骤3a);若无,直接执行步骤3a)。
3c)搜索至整数处理结果的第n-1位,将所有位置变量和符号变量分别组成位置序列和符号序列。
(4)提取优化结果
在乘法器模块内部定义两个常数序列,分别将位置序列和符号序列赋值于这两个常数序列。
(5)霍纳优化
将位置常数序列和符号常数序列相乘,结果与被乘数进行霍纳优化,霍纳优化结果进行右移n-nk位的小数化处理,保留高n位作为小数乘法运算的最终结果,由乘法器模块输出端口输出。
(6)替换小数乘法器
将乘法器模块替换被优化系统中各小数乘法器,乘法器模块的类属参数设置为小数乘法器系数;乘法器模块的被乘数输入端设置为小数乘法器输入;乘法器模块的位宽输入端设置为小数乘法器位宽;乘法器模块的输出端赋值于小数乘法器结果。
本发明与现有技术相比具有如下优点:
第1,本发明采用的小数乘法器系数由乘法器模块的类属参数传入的实现方法,克服了现有技术低功耗设计中额外逻辑引入系统的问题,使得本发明的乘法器模块内部只有优化结果参与生成加法器,而优化算法自身的逻辑单元不会引入到乘法器内部。对于含有大规模乘法运算的系统,避免其内部各乘法器所引入的算法逻辑的功耗和面积累加入系统;
第2,本发明基于正则有符号数字量算法和霍纳算法,前者的优化指标是乘法器转化为加法器的数量,后者的优化指标是乘法器内部寄存中间加法运算结果的寄存器位宽。两种算法同时作用于同一小数乘法器,提升了单一算法的优化效果;
第3,本发明采用先正则有符号数字量优化后霍纳优化的方法,前者计算结果可以为后者所利用,节省了后者计算工作量,提高了整个设计运算速度和运算效率;
第4,本发明在运算过程中只需搜索乘法器系数中“1”的排列和位置并加以记录和处理,具有运行速度快,占用资源少,简单易行的优点;
第5,本发明能够在不降低系统工作效率、不损失系统运算精度的条件下,大幅降低系统功耗和面积。
附图说明
图1为本发明的流程图;
图2为本发明中小数乘法整数化处理后的乘法竖式图;
图3为本发明中正则有符号数字量优化后的乘法竖式图;
图4为本发明中霍纳优化乘法竖式图。
具体实施方式
参照图1,本发明的具体实施步骤如下:
步骤1,构建乘法器模块
用硬件描述语言构建乘法器模块实体,包括一个用于输入原小数乘法器系数的类属参数端口;两个用于输入被乘数与数据宽度的输入端口;一个用于输出最终乘法运算结果的输出端口。
本发明实施例中,用VHDL语言构建乘法器模块实体,类属参数端口为g,被乘数输入端口为x_i,数据宽度输入端口为n,输出端口为z_o。
步骤2,系数整数化处理
在乘法器模块内部,按照整数化处理公式X=B(2n-1),对由模块类属参数输入的小数乘法系数进行整数化处理,其中X为二进制整数处理结果、B为小数乘法器系数、n为数据宽度。此时数据宽度n所能表达出的最大数被归一化为“1”,小数B则被表示为所占该“归一化1”的比例。
本发明实施例中,八位的小数119/255被整数化处理为119/255(28-1)=119(01110111b),这里255(11111111b)被归一化为“1”。八位小数乘法153×119/255进行整数化处理后的乘法竖式如图2所示。图中被乘数153以二进制表示为10011001b,乘数为01110111b,该乘法运算共转化为五个加法器,第一级加法结果为111001011b,位宽为9;第二级加法结果为10000101111b,位宽为11;第三级加法结果为110110111111b,位宽为12;第四级加法结果为10000011011111b,位宽为14;第五级加法结果为100011100011111b,位宽为15,小数化处理后的八位最终乘法结果为1000111.0b。
步骤3,正则有符号数字量优化
对二进制整数处理结果由最低位向第n-1位搜索并做以下记录和处理:逢“1”则以两个变量分别记录其位置和符号;逢“0”则判断之前有没有连续的“1”存在:若有,取该连续“1”的补码,将位置变量中的最大连续值加1,与其对应的符号变量为正;位置变量中最小连续值保持不变,与其对应的符号变量为负,删除该两个位置变量之间的位置变量和所对应的符号变量,然后继续向高位搜索;若无,直接向高位搜索;搜索至整数处理结果的第n-1位,将所有位置变量和符号变量分别组成位置序列和符号序列。
本发明实施例中,对步骤2中八位小数乘法153×119/255整数化处理结果进行正则有符号数字量优化后的乘法竖式如图3所示。图中被乘数153以二进制表示为10011001b,乘数为其中表示-1。优化后该乘法运算共转化为2个加法器,第一级加法结果为-10101100001b;第二级加法结果为100011100011111b,相比于优化前加法器数量减少3个。
步骤4,提取优化结果
在乘法器模块内部定义两个常数序列,分别将步骤3的位置序列和符号序列赋值于这两个常数序列。
步骤5,霍纳优化
将位置常数序列和符号常数序列相乘,结果记为(n1,n2,...,nk);第一个加法器是由被乘数左移nl位加被乘数左移n2位构成,并缺省加法结果的最末n2位作为第一个中间结果;第二个加法器是由被乘数左移n3位加第一个中间结果构成,并缺省加法结果的最末n3位作为第二个中间结果;第i个加法器是由被乘数左移ni+1位加第i-1个中间结果构成,并缺省加法结果的最末ni+1位作为第i个中间结果;直至构建出第k-1个加法器。
由于霍纳优化算法是缺省对下级加法无进位贡献的本级加法结果的末位,从而减少各级加法结果的位宽。因此在乘法器模块内部,除了缺省操作,没有引入任何额外的运算和逻辑单元。
由于步骤2中对n位小数系数B乘以(2n-1),相当于将B左移n位,因此最末级加法运算的结果需要右移n位进行小数化处理。然而在霍纳优化过程中最大缺省位为nk,即在优化过程中已经右移了nk位,所以最末级加法器的结果只需右移n-nk位,并保留高n位作为小数乘法运算的最终结果,由乘法器模块输出端口输出。
本发明实施例中,对步骤3中八位小数乘法153×119/255的正则有符号数字量优化结果,经霍纳优化后的乘法竖式如图4所示。图中被乘数153以二进制表示为10011001b,乘数为其中表示-1。优化后该乘法运算共转化为2个加法器,第一级加法结果为-10101100b,位宽为8;第二级加法结果为10001110b,位宽也为8,小数化处理后的八位最终乘法结果为1000111.0b,与优化之前完全一致,加法结果位宽总共节省(9+11+12+14+15)-(8+8)=45位。
步骤6,替换小数乘法器
将乘法器模块替换系统中各小数乘法器,乘法器模块的类属参数设置为小数乘法器系数;乘法器模块的被乘数输入端设置为小数乘法器输入;乘法器模块的位宽输入端设置为乘法器位宽;乘法器模块的输出端赋值于小数乘法器的结果。
对于含有乘法器的系统,系统的参数和特性一旦确定,其内部各乘法器系数也将确定。而乘法器系数由类属参数传入而不以常数参数传入的原因是,常数只能从设计实体的内部得到赋值且不能再改变,而类属的值可以由设计实体外部提供,因此设计者可以从外面通过类属参量的重新设定而容易地改变该模块的内部电路结构。
本发明实施例中,采用ATERA公司的Quartus II作为综合工具,首先创建项目向导,在QuartusII的工具栏中点击File->New Project Wizard并选中乘法器模块;其次在工具栏中点击Processing->Start Compilation,启动全程编译;最后在工具栏中点击Tools->Netlist Viewer->RTL Viewer,查看乘法器模块综合后生成的门级电路。在综合初期,小数乘法器的系数通过类属参数传入乘法器模块,得到以常数序列表示的正则有符号数字量优化结果,综合后根据这些常数,乘法器模块就可以转化为对应的加法器,霍纳优化算法同时针对各级加法器缺省对下级加法运算无任何进位贡献的本级加法结果末位,从而降低寄存器位宽。这时正则有符号数字量优化逻辑本身不会进入乘法器模块中,而模块内部的霍纳算法也只含有缺省操作,不会引入额外的逻辑单元和运算。
为了精确测试本发明的优化效果,以某含有大量数字滤波器和数字信号处理的射频模块作为被优化系统。测试工具为Sequence Design公司的Power Theater,作为标准功耗计算工具,它可以对系统的前端RTL代码计算出准确的功耗和面积。表1与表2为优化前射频模块功耗与面积;表3与表4为本发明方法优化后的射频模块的功耗与面积。优化前模块的功耗为10.7mW,逻辑单元数为95962,面积为1.479mm2。经过本发明方法优化后,以上参数分别为7.94mW、74915、1.412mm2,同比降低25.79%、21.93%、4.53%。优化效果十分明显。
表1优化前射频模块功耗
表2优化前射频模块逻辑单元数和面积
表3经本发明优化过的射频模块的功耗
表4经本发明优化过的射频模块的逻辑单元数和面积
为了进一步测试本发明的硬件优化效果,分别对优化前后的射频模块进行FPGA测试,测试采用StratixⅣ家族EP4SE820F43C3型号FPGA作为测试平台,采用Quartus II作为FPGA的编译、综合工具。射频模块优化前后经Quartus II全程编译后生成的资源报告准确记录了两次测试中测试对象对于该型号FPGA的资源占用情况。优化前射频模块对该FPGA的逻辑占用率为5.6%,生成寄存器总数为18175,存储单元占用率为6.5%;经本发明优化过的射频模块对该FPGA的逻辑占用率为3.8%,生成寄存器总数为12164,存储单元占用率为4.2%。通过FPGA测试结果对比,后者所占硬件资源比前者降低32.14%、33.07%、35.38%,优化效果显著。
Claims (2)
1.一种集成电路系统中小数乘法器的低功耗优化方法,包括以下步骤:
(1)构建乘法器模块
用硬件描述语言构建乘法器模块实体,包括一个用于输入原小数乘法器系数的类属参数端口;两个用于输入被乘数与数据宽度的输入端口;一个用于输出最终乘法运算结果的输出端口;
(2)系数整数化处理
在乘法器模块内部,按照整数化处理公式X=B(2n-1),对由模块类属参数输入的小数乘法系数进行整数化处理,其中,X为二进制整数处理结果;B为小数乘法器系数;n为数据宽度;
(3)正则有符号数字量优化
对二进制整数处理结果由最低位向第n-1位搜索并做以下记录和处理:
3a)逢“1”则以两个变量分别记录其位置和符号;
3b)逢“0”则判断之前有没有连续的“1”存在:若有,取该连续“1”的补码,将位置变量中的最大连续值加1,与其对应的符号变量为正,位置变量中最小连续值保持不变,与其对应的符号变量为负,删除该两个位置变量之间的位置变量和所对应的符号变量,执行步骤3a);若无,直接执行步骤3a);
3c)搜索至整数处理结果的第n-1位,将所有位置变量和符号变量分别组成位置序列和符号序列;
(4)提取优化结果
在乘法器模块内部定义两个常数序列,分别将位置序列和符号序列赋值于这两个常数序列;
(5)霍纳优化
将位置常数序列和符号常数序列相乘,结果与被乘数进行霍纳优化,霍纳优化结果进行右移n-nk位的小数化处理,保留高n位作为小数乘法运算的最终结果,由乘法器模块输出端口输出;所述霍纳优化方法的步骤是,将位置常数序列和符号常数序列相乘的结果记为(n1,n2,...,nk);第一个加法器由被乘数左移n1位加被乘数左移n2位构成,缺省加法结果的最末n2位后作为第一个中间结果;第二个加法器由被乘数左移n3位加第一个中间结果构成,缺省加法结果的最末n3位后作为第二个中间结果;第i个加法器是由被乘数左移ni+1位加第i-1个中间结果构成,缺省加法结果的最末ni+1位后作为第i个中间结果;直至构建出第k-1个加法器;
(6)替换小数乘法器
将乘法器模块替换被优化系统中各小数乘法器,乘法器模块的类属参数设置为小数乘法器系数;乘法器模块的被乘数输入端设置为小数乘法器输入;乘法器模块的位宽输入端设置为小数乘法器位宽;乘法器模块的输出端赋值于小数乘法器结果。
2.根据权利要求1所述的集成电路系统中小数乘法器的低功耗优化方法,其特征在于,步骤(1)中所述的硬件描述语言为VHDL语言。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110289984.6A CN102314215B (zh) | 2011-09-27 | 2011-09-27 | 集成电路系统中小数乘法器的低功耗优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110289984.6A CN102314215B (zh) | 2011-09-27 | 2011-09-27 | 集成电路系统中小数乘法器的低功耗优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102314215A CN102314215A (zh) | 2012-01-11 |
CN102314215B true CN102314215B (zh) | 2014-03-12 |
Family
ID=45427441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110289984.6A Active CN102314215B (zh) | 2011-09-27 | 2011-09-27 | 集成电路系统中小数乘法器的低功耗优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102314215B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908389A (zh) * | 2017-11-21 | 2018-04-13 | 天津大学 | 小点数fft旋转因子复数乘法加速器 |
CN110362293B (zh) * | 2019-08-30 | 2023-12-19 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110378478B (zh) * | 2019-08-30 | 2023-09-08 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110378477B (zh) * | 2019-08-30 | 2023-09-08 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN118837623B (zh) * | 2024-09-20 | 2024-11-29 | 青岛艾诺仪器有限公司 | 一种模拟量电信号的快速测量方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0292189A2 (en) * | 1987-05-18 | 1988-11-23 | Advanced Micro Devices, Inc. | Updating cannonic signed digit filter coefficients |
CN1454347A (zh) * | 2000-10-16 | 2003-11-05 | 诺基亚公司 | 使用带符号的数位表示的乘法器和移位器 |
CN101156130A (zh) * | 2005-03-31 | 2008-04-02 | Nxp股份有限公司 | 正则符号数字乘法器 |
CN101425794A (zh) * | 2008-11-27 | 2009-05-06 | 四川虹微技术有限公司 | 固定系数数字滤波器 |
-
2011
- 2011-09-27 CN CN201110289984.6A patent/CN102314215B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0292189A2 (en) * | 1987-05-18 | 1988-11-23 | Advanced Micro Devices, Inc. | Updating cannonic signed digit filter coefficients |
CN1454347A (zh) * | 2000-10-16 | 2003-11-05 | 诺基亚公司 | 使用带符号的数位表示的乘法器和移位器 |
CN101156130A (zh) * | 2005-03-31 | 2008-04-02 | Nxp股份有限公司 | 正则符号数字乘法器 |
CN101425794A (zh) * | 2008-11-27 | 2009-05-06 | 四川虹微技术有限公司 | 固定系数数字滤波器 |
Also Published As
Publication number | Publication date |
---|---|
CN102314215A (zh) | 2012-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635916B (zh) | 具有可变输出数据格式的深度神经网络的硬件实现 | |
CN108564168B (zh) | 一种对支持多精度卷积神经网络处理器的设计方法 | |
US20200401414A1 (en) | Multiplier-Accumulator Circuitry and Pipeline using Floating Point Data, and Methods of using Same | |
CN102314215B (zh) | 集成电路系统中小数乘法器的低功耗优化方法 | |
CN109146067B (zh) | 一种基于FPGA的Policy卷积神经网络加速器 | |
CN113705135B (zh) | 基于fpga进位链的电路结构优化方法及系统 | |
CN107862161A (zh) | 一种基于层次化处理与分簇约束的多阈值单元替换方法 | |
US10628543B1 (en) | Systems and methods for estimating a power consumption of a register-transfer level circuit design | |
CN111931441B (zh) | Fpga快速进位链时序模型的建立方法、装置以及介质 | |
JP2024530974A (ja) | 多入力の浮動小数点数の処理方法、装置、プロセッサ、コンピュータ機器及びコンピュータプログラム | |
CN112580279B (zh) | 逻辑电路的优化方法、优化装置以及存储介质 | |
Yang et al. | Approximate compressor-based multiplier design methodology for error-resilient digital signal processing | |
CN107506332A (zh) | Kalman滤波器快速实现方法 | |
CN1423189A (zh) | 一种除法器 | |
CN115146769A (zh) | 一种基于范围可寻址查找表计算tanh函数的数字电路模块 | |
CN102073473A (zh) | 基于fpga的十进制浮点乘法器设计 | |
Senthilpari et al. | Proposed low power, high speed adder-based 65-nm Square root circuit | |
US10534885B1 (en) | Modifying data flow graphs using range information | |
JP2023538200A (ja) | 双曲線関数を使用する指数関数の効率的なハードウェア実装形態 | |
Parhami | Modular reduction by multi-level table lookup | |
da Costa et al. | RCU--: A VLSI Radix--Cubic Unit | |
CN113408223B (zh) | 一种基于智能分析的芯片设计方法 | |
Yu et al. | Critical Path Optimization for Logic Netlists | |
WO2022068618A1 (zh) | 一种带精度的量子除法运算方法及装置 | |
Ge et al. | Automatic implementation of arithmetic functions in high-level synthesis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |