一种基于随机计算的无误差加法器

文档序号:1544816 发布日期:2020-01-17 浏览:20次 >En<

阅读说明:本技术 一种基于随机计算的无误差加法器 (Error-free adder based on random calculation ) 是由 卢有亮 王浩 张恒源 赵成 卢鹏宇 陈瑜 滕云龙 元硕成 于 2019-09-25 设计创作,主要内容包括:本发明公开一种基于随机计算的无误差加法器,应用于数字电路优化设计领域,针对现有的随机加法器存在的误差问题,本发明的无误差加法器包括:输入转换器、随机加法器以及输出转换器;所述输入转换器用于将输入数据转换成随机序列,所述输入随机加法器的随机序列中“0”和“1”可以为任意位置,所述随机加法器用于完成随机序列的加法运算,随机加法器的输出包括:加法结果与误差;所述输出转换器用于将加法结果通过累加转换回传统二进制数值域,并对误差根据其级联级数进行移位运算和累加进行补偿得到无误差的最终结果,本发明的无误差加法器具有很好的普适性。(The invention discloses an error-free adder based on random calculation, which is applied to the field of digital circuit optimization design and aims at solving the error problem of the existing random adder, and the error-free adder comprises the following components: an input converter, a random adder, and an output converter; the input converter is used for converting input data into a random sequence, the random sequence of the input random adder can have any position of &#39;0&#39; and &#39;1&#39;, the random adder is used for completing addition operation of the random sequence, and the output of the random adder comprises: adding the result and the error; the output converter is used for converting the addition result to the traditional binary numerical value domain through accumulation, and carrying out shift operation and accumulation on the error according to the cascade stage number of the error to compensate and obtain the final error-free result.)

一种基于随机计算的无误差加法器

技术领域

本发明属于数字电路优化设计领域,涉及一种无误差的随机计算单元的实现方法。

背景技术

随着信息技术的发展,所需各种信号处理算法的复杂度也迅速增长,而传统半导体工艺已经接近物理极限,摩尔本人认为摩尔定律到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”的位置没有要求,为了方便说明输入转换器的工作原理,本发明这里将输入数据转换为集中分布的序列,根据

Figure BDA0002214497130000031

其中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),误差逻辑表达式为

Figure BDA0002214497130000042

在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为传统二进制加法器实现的计算结果,计算结果有一个计算周期的延迟,可以看到,计算结果完全一致,所设计加法器没有误差。相较与传统二进制加法器,本发明提出的基于随机计算的无误差加法器在大规模级联中可以共用输入输出转换器,资源和功耗能够大幅度降低。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种数字孪生系统复杂任务布局紧耦合运行方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类