运算电路制造技术

技术编号:25488506 阅读:67 留言:0更新日期:2020-09-01 23:07
运算电路设置有:LUT生成电路(1),当将系数c[n](n=1,···,N)划分为对时,输出针对每个对计算的值;以及分布式计算电路(2‑m),针对M组数据x[m,n]中的每一组,并行计算乘积和计算值y[m],该乘积和计算值y[m]通过将包括M组在内的数据集X[m](m=1,···,M)中的数据x[m,n]分别乘以系数c[n]且将相乘后的值求和而获得。分布计算电路(2‑m)由以下项形成:多个二项式分布计算电路,基于通过将与分布式运算电路对应的N个数据集x[m,n]划分为对所获得的值、通过将系数c[n]划分为对所获得的值和由LUT生成电路(1)计算的值针对每对并行计算二项式乘积和运算值;以及二项式分布计算结果求和电路,对由二项式分布计算电路计算的值求和,并将和作为y[m]输出。

【技术实现步骤摘要】
【国外来华专利技术】运算电路
本专利技术涉及一种用于数字信号处理的运算电路,更具体地,涉及一种用于执行乘积和运算的运算电路。
技术介绍
数字信号处理中的主要运算是乘积和运算,用于将数字信号数据乘以系数并将乘积加起来。已知分布式运算作为有效地执行该乘积和运算的方法(参见非专利文献1)。图10示出了使用分布式运算的乘积和运算电路的配置示例。图11示出了图10所示的乘积和运算电路的操作的时序图。图10所示的乘积和运算电路是在输入N(N为2或更大的整数)个数据x[n](n=1,...,N)时通过将每个数据x[n]乘以系数c[n]且将乘积加起来的乘积和运算的运算电路,即,计算∑n=1,...,N(c[n]×x[n])。从x[n](n=1,...,N)输入到乘积和运算电路的定时起,通过输入数量等于x[n]的位宽的时钟脉冲来输出乘积和运算的结果。在开始上述乘积和运算之前,通过假设系数c[n](n=1,...,N)是一常数,使用上述分布式运算的运算电路将基于系数c[n](n=1,...,N)计算的值和由诸如ROM(只读存储器)的存储电路所形成的查找表(以下称为LUT)1001的地址存储在每个地址的存储区域中。当输入数据x[n](n=1,...,N)时,通过基于数据x[n](n=1,...,N)搜索存储在LUT1001中的值并将来自LUT1001的读出值相加,运算电路可以获得与乘积和运算相同的结果。如上所述,使用分布式运算的乘积和运算电路不需要具有复杂电路配置的乘法电路。如图12所示,图10所示的LUT1001包括具有2N个地址的存储区域。基于系数c[n](n=1,...,N)计算的值被预存储在每个地址的存储区域中。更具体地,存储在地址a中的值LUT[a]是在通过用二进制表示法表示地址a所获得的每个位为a[n](n=1,...,N,a=∑n=1,...,N(2n-1×a[n]))时的值∑n=1,...,N(c[n]×a[n])。当输入数据x[n](n=1,...,N)的每个位x[n][l](l=1,...,L,L是x[n]的位宽,x[n]=∑l=1,...,L(x[n][l]×2l-1)并且数据有效性信号有效时,图10所示的移位寄存器1000-XR[n](n=1,...,N)加载数据x[n]的每个位x[n][l],并且每当此后输入时钟脉冲,则移位寄存器1000-XR[n]从MSB(最高有效位)到LSB(最低有效位)依次输出各个位。将参照图13说明移位寄存器1000-XR[n]的操作。首先,当输入数据x[n]时,选择器x[n,2]至s[n,L]根据表示“有效”的数据有效性信号来选择数据x[n]的位x[n][2]至x[n][L]的值。然后,通过使用紧接其后所输入的时钟脉冲(第一时钟脉冲)作为触发,触发器xr[n,1]加载位x[n][1]的值,并且触发器xr[n,2]至xr[n,L]分别加载从选择器s[n,2]至s[n,L]所输出的位x[n][2]至x[n][L]的值。因此,触发器xr[n,1]加载x[n][1]作为数据x[n]的LSB,并且触发器xr[n,L]加载x[n][L]作为数据x[n]的MSB。此后,当数据有效性信号取表示“无效”的值时,选择器s[n,2]至s[n,L]在输入阶段中分别选择从触发器xr[n,1]至xr[n,L-1]所输出的值。因此,每当输入时钟脉冲时,触发器xr[n,2]至xr[n,L]在输入阶段中分别加载保持在触发器xr[n,1]至xr[n,L-1]中的值。也就是说,每当输入时钟脉冲时,在移位寄存器1000-XR[n]的最终阶段中的触发器xr[n,L](n=1,...,N)的输出值改变。当输入第一时钟脉冲时,触发器xr[n,L]的输出值为x[n][L],而当输入下一时钟脉冲时,触发器xr[n,L]的输出值为x[n][L-1]。即,当输入从数据有效性信号变为有效的定时的第t个(t=1,...,L)时钟脉冲时,触发器xr[n,L]的输出值为x[n][L-t+1]。假设在图10所示的乘积和运算电路中,在从LUT1001读出值时,读出地址a的每个位为a[n](n=1,...,N),则a[n]的值为触发器xr[n,L]所保持的值。因此,a[n]的值为紧接在从数据有效性信号变为有效的定时的第t个(t=1,...,L)时钟脉冲输入之后的x[n][L-t+1]。当输入上述读出地址a时,LUT1001输出存储在读出地址a的存储区域中的值LUT[a]。图12所示,LUT[a]的值是∑n=1,...,N(c[n]×a[n]),并且从紧接在数据有效性信号变为有效的定时的第t个(t=1,...,L)时钟脉冲之后的a[n]的值与始输入的时钟脉冲与x[n][L-t+1]的值匹配。因此,从紧接在第t(t=1,...,L)时钟脉冲被输入之后的来自LUT1001的输出为∑n=1,...,N(c[n]×x[n][L-t+1])。在图10所示的乘积和运算电路中,上述LUT1001的输出值和用于将由累加值寄存器1002保持的累加值加倍的加倍电路1003的输出值被输入到加法电路1004。加法电路1004将LUT1001和加倍电路1003的输出值相加,并且将结果作为相加值y输出。每当时钟脉冲被输入时,累加值寄存器1002将相加值y保持为更新的累加值。注意,当数据有效性信号变为有效时,由累加值寄存器1002保持的值被重置为0,因此初始值(当第一时钟脉冲被输入时的值)为0。用于将由累加值寄存器1002保持的累加值加倍的加倍电路1003由将由二进制数表示的累加值向左移位1位的线来实现,因此对累加值加倍的处理不需要逻辑门。因此,在图10所示的乘积和运算电路中不使用乘法电路。将说明图10所示的乘积和运算电路输出乘积和运算结果的过程。首先,当第一时钟脉冲紧接在数据有效性信号变为有效之后输入时,由于累加值寄存器1002中保持的累加值为0,所以加法电路1004输出LUT1001的输出值作为加法值y。即,紧接在第一时钟脉冲输入之后的加法值y是∑n=1,...,N(c[n]×x[n][L])。然后,当输入从数据有效性信号变为有效的定时的第二时钟脉冲时,加法电路1004输出通过将LUT1001的输出值和加倍电路1003的输出值相加所获得的值作为相加值y。LUT1001的输出值为∑n=1,...,N(c[n]×x[n][L-1]),并且保持在累加值寄存器1002中的累加值为∑n=1,...,N(c[n]×x[n][L],因为它是紧接在第一时钟脉冲输入之后的相加值。因此,紧接在第二时钟脉冲被输入之后的相加值y是2×∑n=1,...,N(c[n]×x[n][L])+∑n=1,...,N(c[n]×x[n][L-1])。由于每当如上所述输入时钟脉冲时LUT1001的输出值就被相加,因此紧接在输入第L个时钟脉冲之后的相加值y由以下等式(1)表示:y=∑t=1,...,L(2L-t×∑n=1,...,N(c[n]×x[n][L-t+1]))...(1)当表示紧接在输入第L个时钟脉冲之后的相加值y的等式(1)通本文档来自技高网...

【技术保护点】
1.一种运算电路,接收数据集X[m]和N个系数c[n],计算并输出M个乘积和运算的值y[m],所述数据集X[m]包含M组的N个数据x[m,n],其中m=1,...,M,M为不小于2的整数,n=1,...,N,N为不小于2的整数,所述运算电路包括:/nLUT生成电路,被配置为当所述N个系数c[n]被两两配对时,输出针对每对计算的值;以及/nM个分布式运算电路,被配置为针对M组中的每组并行计算并输出所述乘积和运算的值y[m],所述乘积和运算的值y[m]是将所述数据集X[m]的N个数据x[m,n]乘以所述N个系数c[n]并对乘积求和的结果,/n其中,所述分布式运算电路中的每一个分布式运算电路包括:/n多个二项式分布运算电路,被配置为基于通过将与电路相对应的N个数据x[m,n]进行两两配对所获得的值、通过将所述N个系数c[n]进行两两配对所获得的值和通过所述LUT生成电路计算的值来针对所述对中的每对并行计算并输出二项式乘积和运算的值,所述二项式乘积和运算将两个数据x[m,n]乘以两个系数c[n]并对乘积求和;以及/n二项式分布运算结果求和电路,被配置为输出对由所述多个二项式分布运算电路计算的值求和的结果作为所述乘积和运算的值y[m]。/n...

【技术特征摘要】
【国外来华专利技术】20180105 JP 2018-0004511.一种运算电路,接收数据集X[m]和N个系数c[n],计算并输出M个乘积和运算的值y[m],所述数据集X[m]包含M组的N个数据x[m,n],其中m=1,...,M,M为不小于2的整数,n=1,...,N,N为不小于2的整数,所述运算电路包括:
LUT生成电路,被配置为当所述N个系数c[n]被两两配对时,输出针对每对计算的值;以及
M个分布式运算电路,被配置为针对M组中的每组并行计算并输出所述乘积和运算的值y[m],所述乘积和运算的值y[m]是将所述数据集X[m]的N个数据x[m,n]乘以所述N个系数c[n]并对乘积求和的结果,
其中,所述分布式运算电路中的每一个分布式运算电路包括:
多个二项式分布运算电路,被配置为基于通过将与电路相对应的N个数据x[m,n]进行两两配对所获得的值、通过将所述N个系数c[n]进行两两配对所获得的值和通过所述LUT生成电路计算的值来针对所述对中的每对并行计算并输出二项式乘积和运算的值,所述二项式乘积和运算将两个数据x[m,n]乘以两个系数c[n]并对乘积求和;以及
二项式分布运算结果求和电路,被配置为输出对由所述多个二项式分布运算电路计算的值求和的结果作为所述乘积和运算的值y[m]。


2.根据权利要求1所述的运算电路,还包括:LUT锁存电路,形成在所述LUT生成电路与所述M个分布式运算电路之间,并且被配置为将所述N个系数c[n]和由所述LUT生成电路计算的值保持为与时钟同步,并将所保持的值输出到所述M个分布式运算电路。


3.根据权利要求1或2所述的运算电路,其中,
所述LUT生成电路针对N’个对中的每对计算通过将所述N个系数c[n]两两配对所获得的值c[2×n'-1]和c[2×n']之和c[2×n'-1]+c[2×n']作为值d[n'],其中N’是不大于N/2的最大整数,n'=1,...,N',并且
所述分布式运算电路中的每一个分布式运算电路接收所述数据集X[m]、从所述LUT生成电路所输出的系数c[n]和由所述LUT生成电路计算的值d[n'],并输出所述乘积和运算的值y[m],所述乘积和运算的值y[m]是将所述数据集X[m]的与电路相对应的N个数据x[m,n]乘以所述N个系数c[n]并对乘积求和的结果。


4.根据权利要求1至3中任一项所述的运算电路,其中,
所述分布式运算电路中的每一个分布式运算电路还包括辅助乘法电路,所述辅助乘法电路被配置为当N为奇数时输出计算c[N]×x[m,N]的结果,并且
当N是奇数时,所述二项式分布运算结果求和电路输出将由所述多个二项式分布运算电路计算的值与由所述辅助乘法电路计算的值求和的结果,作为所述乘积和运算的值y[m]。


5.根据权利要求1至4中任一项所述的运算电路,其中,所述二项式分布运算电路包括:
多个标引电路,针对N个数据x[m,n]的相同对的两个值的每个位的位置而形成,并且被配置为针对每个位的位置从包括0、N个系数c[n]的相同对的两个值、以及由所述LUT生成电路根据所述系数c[n]的两个值计算的值在内的元素值中,获得与形成所述N个数据x[m,n]的相同对的两个值的相同位的位置中的两个值相对应的一个元素值;
多个倍数计算电路,被配置为针对每个位的位置,将由所述多个标引电路所获得的元素值乘以2(l-1),l...

【专利技术属性】
技术研发人员:川合健治粟田亮武井和人饭塚公昭
申请(专利权)人:NTT电子股份有限公司日本电信电话株式会社
类型:发明
国别省市:日本;JP

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1