CN110705196B - 一种基于随机计算的无误差加法器 - Google Patents
一种基于随机计算的无误差加法器 Download PDFInfo
- Publication number
- CN110705196B CN110705196B CN201910910312.9A CN201910910312A CN110705196B CN 110705196 B CN110705196 B CN 110705196B CN 201910910312 A CN201910910312 A CN 201910910312A CN 110705196 B CN110705196 B CN 110705196B
- Authority
- CN
- China
- Prior art keywords
- random
- error
- adder
- output
- free
- 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
- Analogue/Digital Conversion (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开一种基于随机计算的无误差加法器,应用于数字电路优化设计领域,针对现有的随机加法器存在的误差问题,本发明的无误差加法器包括:输入转换器、随机加法器以及输出转换器;所述输入转换器用于将输入数据转换成随机序列,所述输入随机加法器的随机序列中“0”和“1”可以为任意位置,所述随机加法器用于完成随机序列的加法运算,随机加法器的输出包括:加法结果与误差;所述输出转换器用于将加法结果通过累加转换回传统二进制数值域,并对误差根据其级联级数进行移位运算和累加进行补偿得到无误差的最终结果,本发明的无误差加法器具有很好的普适性。
Description
技术领域
本发明属于数字电路优化设计领域,涉及一种无误差的随机计算单元的实现方法。
背景技术
随着信息技术的发展,所需各种信号处理算法的复杂度也迅速增长,而传统半导体工艺已经接近物理极限,摩尔本人认为摩尔定律到2020年的时候就会黯然失色。集成电路的优化主要来自其设计架构的创新,所以有必要研究新的算法来优化集成电路的设计。
有学者将随机计算应用于神经网络和数字信号处理过程中,主要思想是将传统二进制表示转换成一串随机序列,其中“1”占序列总长度的比值来表示概率值。计算则通过相应的随机计算单元来完成。这种方法的好处是能够大量减少基本逻辑门电路,使得关键路径更短,大大减少整体的功耗和资源占用。但是,这种方法所使用的传统随机加法器一般由或门或者多路选通器来完成,或门会在“0”和“1”相加时全部取为“1”;多路选通器要求参与计算的选择序列随机性足够高,否则就会产生不可控的计算误差,这实现起来很困难。这些计算单元精度较低,不能满足高精度场景。
发明内容
为解决上述技术问题,本发明提出一种基于随机计算的无误差加法器,输入随机序列中“0”和“1”的位置可以任意,能够在高精度条件下使用。
本发明采用的技术方案为:一种基于随机计算的无误差加法器,包括:输入转换器、随机加法器以及输出转换器;所述输入转换器用于将输入数据转换成随机序列,所述随机加法器用于完成随机序列的加法运算,所述输出转换器用于将经随机加法器后的随机序列转换为传统二进制数值;
所述输入随机加法器的随机序列中“0”和“1”可以为任意位置,随机加法器的输出包括:加法结果与误差。
所述输入转换器包括:归一化模块与生成随机序列模块,所述归一化模块用于将输入数据转化至概率域,生成随机序列模块对归一化模块输出的概率域输入数据转化为概率域随机序列。
当两输入随机加法器首次出现相加结果为1时,则输出加法结果为0,误差为1;当再次出现相加结果为1时,则输出加法结果为1,误差为0。
所述随机加法器为有缩放加法器。
所述输出转换器包括:累加器和补偿单元,所述累加器用于将加法结果转换回传统二进制数值,并送入补偿单元;所述补偿单元将随机加法器输出的误差,与累加器输出的有效值作加法操作,得到无误差结果。
所述随机加法器可级联。
当随机加法器级联时,根据级联随机加法器得到最终加法结果与误差所处级联的级数,进行移位相加得到无误差结果。
一种数字信号处理***,至少包括上述的无误差加法器。
一种通信***,至少包括上述的无误差加法器。
本发明的有益效果:本发明的无误差加法器适用于随机计算,其结构包括输入转换器、随机加法器和输出转换器,随机加法器为有缩放加法器,且可以级联;输入转换器,随机加法器和输出转换器依次电路相连,输入数据在输入转换器中转换为随机序列,此随机序列作为随机加法器输入,随机加法器输入序列中“0”和“1”的位置可以任意,随机加法器的输出送入输出转换器,完成随机序列到传统二进制数值域的转换并对结果进行误差补偿,使其无误差输出;本发明的无误差加法器包括以下优点:
1、相较传统加法器使用更少基本门电路,资源消耗降低,关键路径变短;
2与传统随机加法器比较,精度更高;
3、在FPGA中很容易实现;
4、与传统二进制加法器相比,在大规模的级联加法中,输入输出转换器可以共用,能够进一步节省资源和功耗;
5、本发明的无误差加法器也可应用于数字信号处理***和通信***,能够减少资源和功耗。
附图说明
图1为传统随机加法器结构图;
其中,图1(a)为由或门实现的传统随机加法器;图1(b)为由多路选通器实现的传统随机加法器;
图2为本发明中无误差加法器结构图;
图3为输入转换器结构图;
图4为无误差加法器级联结构图;
图5为输出转换器结构图;
图6为仿真结果图。
具体实施方式
本发明的核心在于,将基于随机计算方法设计的加法器实现无误差并可无限级联,输入序列中“0”和“1”的位置可以任意,并给出了加法器的FPGA实现方式。
以下结合附图,具体说明本发明:
两输入加法器的功能函数为z=x+y,其中,x和y表示输入数据,z为加法器输出。输入数据二进制位宽为k bit。传统随机加法器由如图1(a)所示的或门或者如图1(b) 所示的多路选通器实现,其中由或门实现的随机加法器要求两路输入随机序列一路为集中分布,另一路为均匀分布;而由多路选通器实现的随机加法器含有不确定性。两种传统随机加法器计算过程中均会产生误差。为解决传统加法器存在的误差问题,本发明提出如图 2所示的基于随机计算的无误差加法器。
图2为本方案中的随机加法器结构图。此结构包含实现将输入数据转换为概率域随机序列的输入转换器,输入转换器将产生的随机序列送入随机加法器,完成随机域的加法运算,随机加法器的输出送入输出转换器,完成随机序列到传统二进制数值的转换并对输出结果进行误差补偿,得到最终的无误差输出结果z。
以下分别对输入转换器、随机加法器以及输出转换器的实现方式进行详细阐述:
如图3所示,输入转换器的功能是将输入的数据转换到概率域,输入转换器包括:归一化模块与生成随机序列模块,归一化模块用于对输入波形数据x和y作统一标准归一化至[0,1]之间,实现从二进制数值域到概率域的转换。转换公式为px=(x+2k-1)/2k, py=(y+2k-1)/2k;生成随机序列模块对归一化模块输出的概率域输入数据转化为概率域随机序列。
本发明提出的随机加法器对于输入序列中“0”和“1”的位置没有要求,为了方便说明输入转换器的工作原理,本发明这里将输入数据转换为集中分布的序列,根据其中L=2k来实现,以一个位宽3bit的输入数据转换器为例,如无符号数x=4=3'b100,转换后的随机序列长度为L=23=8,相应的概率值为px=4/8,根据集中序列生成方式,可得XL=11110000。
随机加法器的功能是通过一系列逻辑运算实现随机序列的加法运算。假设传统二进制下带缩放两输入加法器方程表示为z=0.5(x+y),其基于随机序列的计算方程为那么任意一时刻的计算公式为 0.5(XL(t)+YL(t))=ZL(t),当XL(t)+YL(t)=0或者2时,此式计算均为精确的。但当 XL(t)+YL(t)=1时,ZL(t)=0.5,在传统随机加法器中,会被随机取为0或者1,就产生了计算误差。本发明采用的方式为,当首次出现XL(t)+YL(t)=1时,输出ZL(t)=0,将此时误差输出为E(t)=1,当再次出现XL(t)+YL(t)=1时,输出ZL(t)=1,此时误差为 E(t)=0。当XL(t)+YL(t)=0或等于2时,ZL(t)=0或ZL(t)=1,误差E(t)均为0。两随机序列所有位数全部计算完成后,输出ZL(t)序列的同时,输出计算后的最终误差E(L)。根据上述过程,可求得随机加法器任一时刻输出逻辑表达式为 ZL(t)=XL(t)&YL(t)|YL(t)&E(t)|XL(t)&E(t),误差逻辑表达式为在FPGA中使用硬件描述语言并注意时序问题即可实现。下面举例说明此计算过程,假设输入数据x=4,y=3,转换为输入序列 XL=11110000,YL=11100000,根据上述方式可知输出为ZL=1110000,E=1,将输出结果送入输出转换器。
本发明的随机加法器级联的实现方式如图4所示,当输入为多输入时,通过将参与运算的加数两两组合,层层级联来实现,输入输出转换器共用,计算输出根据所处级数,对最终结果和每层误差进行移位后相加,得到无误差的级联计算结果输出。
如图5所示,输出转换器其功能是将经过运算后的随机序列转换回传统二进制数值域并经行误差补偿输出;包括:累加器与补偿单元。累加器用于对随机加法器的输出ZL累加,因为采用有缩放加法器,因此补偿器对累加之后的值需进行左移操作,并加上输出误差值 E,得到无误差的输出。如前述输出ZL=1110000,E=1,经过累加器后的输出为传统二进制数值域的3'b011,在补偿器中,两输入有缩放加法器需左移一位得到3'b110,并加上输出误差值E=1,得到最终输出结果为3'b111=7,与原二进制数值域a+b=4+3=7相同,输出无误差。
图6所示为FPGA实现的基于随机计算的无误差加法器与传统二进制加法器仿真结果图,图中x、y是两个16位输入数据,每个计算周期改变一次,z为本发明随机加法器计算结果,E为计算过程中误差位的计算结果,z_true为传统二进制加法器实现的计算结果,计算结果有一个计算周期的延迟,可以看到,计算结果完全一致,所设计加法器没有误差。相较与传统二进制加法器,本发明提出的基于随机计算的无误差加法器在大规模级联中可以共用输入输出转换器,资源和功耗能够大幅度降低。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (7)
1.一种基于随机计算的无误差加法器,其特征在于,输入随机加法器的随机序列中“0”和“1”可以为任意位置,随机加法器的输出包括:加法结果与误差;还包括输出转换 器,所述输出转换器包括:累加器和补偿单元,所述累加器用于将加法结果转换回传统二进制数值,并送入补偿单元;所述补偿单元将随机加法器输出的误差,与累加器输出的有效值作加法操作,得到无误差结果;
当两输入随机加法器首次出现相加结果为1时,则输出加法结果为0,误差为1;当再次出现相加结果为1时,则输出加法结果为1,误差为0;
所述随机加法器为有缩放加法器。
2.根据权利要求1所述的一种基于随机计算的无误差加法器,其特征在于,所述随机加法器可级联。
3.根据权利要求2所述的一种基于随机计算的无误差加法器,其特征在于,当随机加法器级联时,根据级联随机加法器得到最终加法结果与误差所处级联的级数,进行移位相加得到无误差结果。
4.根据权利要求 3所述的一种基于随机计算的无误差加法器,其特征在于,还包括:输入转换器;所述输入转换器包括:归一化模块与生成随机序列模块,所述归一化模块用于将输入数据转化至概率域,生成随机序列模块对归一化模块输出的概率域输入数据转化为概率域随机序列。
5.根据权利要求3所述的一种基于随机计算的无误差加法器,其特征在于,当随机加法器级联时,输入转换器与输出转化器共用。
6.一种数字信号处理***,其特征在于,至少包括如权利要求1至5任一权利要求所述的无误差加法器。
7.一种通信***,其特征在于,至少包括如权利要求1至5任一权利要求所述的无误差加法器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910910312.9A CN110705196B (zh) | 2019-09-25 | 2019-09-25 | 一种基于随机计算的无误差加法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910910312.9A CN110705196B (zh) | 2019-09-25 | 2019-09-25 | 一种基于随机计算的无误差加法器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110705196A CN110705196A (zh) | 2020-01-17 |
CN110705196B true CN110705196B (zh) | 2021-09-28 |
Family
ID=69196357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910910312.9A Active CN110705196B (zh) | 2019-09-25 | 2019-09-25 | 一种基于随机计算的无误差加法器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110705196B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111428196A (zh) * | 2020-03-30 | 2020-07-17 | 南京大学 | 一种基于随机计算的非单调函数近似计算装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104038770A (zh) * | 2014-06-05 | 2014-09-10 | 中国科学技术大学 | 一种基于随机计算的离散余弦变换实现方法及*** |
CN106909970A (zh) * | 2017-01-12 | 2017-06-30 | 南京大学 | 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块 |
EP3333735A1 (en) * | 2016-12-12 | 2018-06-13 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method and computer program for determining a placement of at least one circuit for a reconfigurable logic device |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7365609B2 (en) * | 2006-07-26 | 2008-04-29 | Texas Instruments Incorporated | Hybrid stochastic gradient based digitally controlled oscillator gain KDCO estimation |
CN104796111B (zh) * | 2015-05-14 | 2017-07-28 | 北京航空航天大学 | 一种用于动态迟滞***建模与补偿的非线性自适应滤波器 |
CN105356971B (zh) * | 2015-10-27 | 2019-01-11 | 电子科技大学 | 一种基于概率计算的scma译码器 |
US11017125B2 (en) * | 2016-12-13 | 2021-05-25 | University Of Florida Research Foundation, Incorporated | Uniquified FPGA virtualization approach to hardware security |
CN106603099B (zh) * | 2016-12-19 | 2018-12-28 | 四川理工学院 | 一种基于概率计算的单比特接收机信号检测方法 |
US10902089B2 (en) * | 2017-05-22 | 2021-01-26 | United States Of America As Represented By The Secretary Of The Air Force | Method for predicting stochastic output performance or scaling stochastic inputs |
CN107967132B (zh) * | 2017-11-27 | 2020-07-31 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的加法器和乘法器 |
-
2019
- 2019-09-25 CN CN201910910312.9A patent/CN110705196B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104038770A (zh) * | 2014-06-05 | 2014-09-10 | 中国科学技术大学 | 一种基于随机计算的离散余弦变换实现方法及*** |
EP3333735A1 (en) * | 2016-12-12 | 2018-06-13 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method and computer program for determining a placement of at least one circuit for a reconfigurable logic device |
CN106909970A (zh) * | 2017-01-12 | 2017-06-30 | 南京大学 | 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块 |
Also Published As
Publication number | Publication date |
---|---|
CN110705196A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4290202B2 (ja) | ブース乗算の装置および方法 | |
CN112114776A (zh) | 一种量子乘法运算方法、装置、电子装置及存储介质 | |
JPH09510805A (ja) | 高速アダマール変換を行う方法およびその装置 | |
CN112698811A (zh) | 神经网络随机数发生器共享电路、共享方法、处理器芯片 | |
Gbolagade et al. | An improved RNS reverse converter for the {2 2n+ 1− 1, 2 n, 2 n− 1} moduli set | |
JP3716695B2 (ja) | 高速アダマール変換器 | |
CN110705196B (zh) | 一种基于随机计算的无误差加法器 | |
CN112862091B (zh) | 一种基于快速卷积的资源复用型神经网络硬件加速电路 | |
CN107092462B (zh) | 一种基于fpga的64位异步乘法器 | |
CN213934855U (zh) | 一种基于随机计算的神经网络随机数发生器共享电路 | |
CN110597483B (zh) | 一种用于fpga比较器的全二进制数据高速比较方法及*** | |
CN112214200A (zh) | 一种量子减法运算方法、装置、电子装置及存储介质 | |
CN113157247B (zh) | 一种可重构整型-浮点型乘法器 | |
CN110837624A (zh) | 一种针对sigmoid函数的近似计算装置 | |
Rafiq et al. | An efficient architecture of modified booth multiplier using hybrid adder | |
CN115526131A (zh) | 多级编码近似计算Tanh函数的方法及装置 | |
CN113128141A (zh) | 一种基于无误差随机计算的中值滤波*** | |
CN113988279A (zh) | 一种支持负值激励的存算阵列输出电流读出方法及*** | |
WO2020008643A1 (ja) | データ処理装置、データ処理回路およびデータ処理方法 | |
CN111897513A (zh) | 一种基于反向极性技术的乘法器及其代码生成方法 | |
Sadath | Design of a Novel Encoder for Flash Analog to Digital Converter | |
CN113592067B (zh) | 一种用于卷积神经网络的可配置型卷积计算电路 | |
CN116931873B (zh) | 两字节乘法电路及其任意位宽为2次幂的乘法电路与芯片 | |
CN112949830B (zh) | 智能推断网络***以及加法单元和池化单元电路*** | |
Ram et al. | Delay Enhancement of Wallace Tree Multiplier with Binary to Excess-1 Converter |
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 |