具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明各实施方式中所称的算术逻辑电路可以是一个ALU,也可以是ALU中的一个组成部分,还可以是一个专用或通用的大芯片上的一个组成部分。
本发明的第一实施方式涉及一种算术逻辑电路,其实质上是一种串行的CORDIC。下面先介绍这种串行的CORDIC原理。
串行CORDIC采用以下公式计算正弦和余弦值:
Xi+1=Xi-SiYi2-i
Yi+1=Yi+SiXi2-i (3)
Zi+1=Zi-Sitan-1(2-i)
其中Si是每次迭代运算前的符号控制量:
如果计算sinθ或cosθ,将其初始角度设置为Z-2=θ,并考虑总增益 的因素,将(X-2,Y-2)设置成(0,K)。
在并行CORDIC(即现有技术三)中如果要进行N次运算,则将式(3)中的描述做为每一级的运算电路,运算N次就需要N级运算电路,其结构如 图2所示。该电路是以流水线的方式工作,每一级都需要大量的寄存器保存上一级运算单元的计算结果,因此占用了很大的电路面积。而在音频解码过程中通常只需要正弦和余弦系数作为常系数,因此只需要在初始化的时候用到正弦/余弦运算,对CORDIC的运算速度没有太高要求。
本实施方式中提出了串行计算CORDIC的结构,让运算单元复用,其基本结构如图3所示。
该算术逻辑电路包括一个相位运算单元,用于计算相位累计值Zi+1=Zi-Sitan-1(2-i),并判别Zi+1的符号位Si+1,其中Zi和Si是该相位运算单元上一次迭代的结果。
该相位运算单元输出Zi+1的符号位Si+1时,优选地,可以通过以下公式确定Si+1
当Zi+1=0(等价于Si+1=0)时,该相位运算单元终止进一步的迭代运算。优选地,以定点数的方式保存Z,当理论上Zi+1的值应该是一个很小的数时,因为定点数精度的关系,Zi+1的实际值体现为0,此时就可以及时终止进一步的迭代运算了。
当然,该相位运算单元也可以按以下公式输出Zi+1的符号位Si+1
例如,
又如,
该算术逻辑电路还包括一个条件执行单元,用于根据相位运算单元上一 次迭代输出的符号位Si做条件加法运算 其中Xi和Yi是该条件执行单元上一次迭代的输出。
该条件执行单元执行条件加法运算时,优选地,如果Si=0,则该条件执行单元终止进一步的迭代运算。
该算术逻辑电路还包括控制单元,用于对相位运算单元和条件执行单元进行复位、设置初始值、并发出启动迭代运算和终止迭代运算的信号,其中i是迭代序号。
上述算术逻辑电路的工作流程如下:
(1)如果计算sinθ或cosθ,将其角度设置为Z-2=θ,并考虑总增益 的因素,将(X-2,Y-2)设置成(0,K)。
(2)每次迭代运算前首先判断符号控制量Si,判断依据为:
(3)每次按照如下公式迭代:
Xi+1=Xi-SiYi2-i
Yi+1=Yi+SiXi2-i
Zi+1=Zi-Sitan-1(2-i)
迭代从i=-2开始,一直迭代到i=N-3为止。一共迭代N次,N为预设的最大迭代次数,相位精度为2-N,Zi和Yi的最高精度为2-N。每次运算需要用到相位累加常数tan-1(2-i),一共有N个。
最终输出结果cosθ≈XN-2,sinθ≈YN-2。
可以看出串行的CORDIC结构,只需要一级运算单元,因此需要的寄存 器数量为并行方式的1/N(N为迭代的次数),因此很节省电路面积。
利用umc(半导体代工厂的名称)0.18um工艺slow模式下时钟10ns,并且设置input delay 40%,output delay 40%,综合结果如下:
实现方式 |
垂直精度 |
相位精度 |
面积μm2 |
并行CORDIC计算余弦数32bit精度 |
2-31 |
2-32 |
55254.831093 |
串行CORDIC计算余弦数32bit精度 |
2-31 |
2-32 |
33673.148438 |
查表法查792x32bit的ROM |
2-31 |
2-32 |
38692.219822 |
相对于解码MP3需要的查表法ROM(792个32位宽的ROM)而言,采用本发明的技术方案可以节省15%的面积。但是如果除MP3外还要支持wma和AAC的解码,则查表法需要保存更多的正弦值,需要面积会大得多,而本发明的技术方案因为其通用性并不需要增加面积,相对查表法而言可以节省更多的面积。
本发明的第二实施方式涉及一种算术逻辑电路,第二实施方式在第一实施方式的基础上对各主要单元采用了功能更为单一和具体的部件予以实现,其基本结构如图4所示。
控制单元用于对相位运算单元和条件执行单元进行复位、设置初始值、并发出启动迭代运算和终止迭代运算的信号,本实施方式中,控制单元的功能通过以下各个部件实现:
时钟、复位和状态控制器,用于提供初始化信号和输出控制信号,提供初始相位、初始正弦值或初始余弦值,向各个单元提供时钟信号。时钟、复位和状态控制器内部可以有一个计数器,根据时钟进行对i计数,在i达到指定数值,如N-2时,设置输出控制信号,使选择输出单元输出X和Y的值,此后提供初始化信号,使三个二选一开关单元将初始值传给相位运算单元和条件执行单元。
一个选择输出单元,用于根据时钟、复位和状态控制器的输出控制信号,禁止或使能条件执行单元向外部输出正弦值X和余弦值Y。
三个二选一开关单元,分别根据来自时钟、复位和状态控制器输出的初始化信号,选择以下两个信号之一传给指定的单元:
将初始相位或Zi传给相位运算单元;
将初始正弦值或Xi传给条件执行单元;
将初始余弦值或Yi传给条件执行单元。
控制单元也可以有其它的实现形式,如不使用三个二选一开关,而是用一个多选多的开关代替,又如,不设置选择独立的输出单元,而是将选择输出的功能与条件执行单元合并在一起,通过输出控制信号直接控制条件执行单元的输出,等等。
时钟、复位和状态控制器可以通过多种方式实现,一种优选的实现方式如图5所示,其中包括:
计数器,用于根据时钟对i的值计数,根据复位信号清零。
三个初始值寄存器,分别保存初始相位Z0=θ、初始正弦值X0和初始余弦值Y0。这里要说明一下,由于习惯的原因,在本发明的各实施方式的描述及相应的附图中,X0、Y0和Z0是指对应于X、Y和Z的初始值,并不是指迭代过程中i=0的中间结果。
第一判断子单元(501),判断计数器的值是否为零,如果是则设置三个初始值寄存器的值,并输出表示选择初始值的初始化信号,否则输出表示选择选择上一次迭代值的信号。
第二判断子单元(502),判断计数器的值是否为N,如果是则输出表示使能向外部输出正弦值X和余弦值Y的输出控制信号,否则输出表示禁止 向外部输出正弦值X和余弦值Y的输出控制信号,其中N为预定迭代次数。
时钟、复位和状态控制器也可以有其它的形式,例如,计数器在i=N-3后自动清零;三个初始值寄存器的值不是在第一判断子单元判断计数器为0时设置,而是在之前设置;也可以不以内部的寄存器存储初始值,而是以时钟、复位和状态控制器之外的存储器存储,等等。
相位运算单元用于计算相位累计值Zi+1=Zi-Sitan-1(2-i),并判定Zi+1的符号位Si+1。相位运算单元可以通过多种方式实现,一种优选的实现方式如图6所示,其中包括:
符号判别子单元,用于判断Zi的符号,输出表示Zi是否为零的信号,以及Zi的正负信号;
一个选择器,用于根据符号判别子单元输出的表示Zi是否为零的信号,选择不同的常数输出,其中,在Zi为零时输出常数0,在Zi不为零时输出第i+1次迭代相位常数;
一个加减子单元,用于根据符号判别子单元输出的正负信号,选择将Zi加上或减去选择器输出的常数,并输出运算结果。
作为一种变化形式,也可以在上述加减子单元后加一个寄存器,对输出的运算结果进行保存。
此外,相位运算单元的另一实现方法如图7所示,该图的主要特点在于,由累加器实现Zi+1=Zi-Sitan-1(2-i),也就是说Zi是累加器中原先保留的值,累加器的输入是增量部分-Sitan-1(2-i),加法或减法模块只是根据Si决定增量部分的符号,具体地说,如果Si为正则输出给累加器的增量部分为-tan-1(2-i),如果Si为负则输出给累加器的增量部分为tan-1(2-i)。
传统的CORDIC在迭代过程中即使累计相位差减少到0,也会进行下一次迭代。此时实际上已经计算出了所需要的值,没有必要迭代下去。并且这 样迭代反而会带来2-N的幅度误差(其中N为迭代次数),无法消除。
传统的CORDIC中,相位符号判断函数用公式表达式为 经本发明改进后的相位符号判断函数用公式表达式为 并且在相位累计量为0的时候终止迭代,这样加快了运算速度并且能够减小电路的功耗。
条件执行单元用于做条件加法运算 实现此功能可以有多种形式,其中的一种优选的实现形式如图8所示。
相对于传统的CORDIC,由于相位运算单元作了改进,条件执行单元也有相应的改进,运算过程中不再只判断是否相位为正还是为负,还要判断相位是否为0。
条件执行单元的功能用公式表达为:
其中
或者表达为
本发明第三实施方式涉及一种算术逻辑电路,与前两个实施方式相比,本实施方式将乘法和除法电路与CORDIC电路复用在一起。
先介绍一下乘法除法复用于CORDIC的原理。
串行乘法可以用移位相加表示,而串行除法可以用条件减+移位表示。因此它们也可以用CORDIC来表示。
其中初始值为(X0,Y0,Z0),通过设置m和σ来确定函数的功能。Si是符号判断函数,它的值只有(0,+1,-1)三种。当m=0,σ=1时可以计算乘法,当m=0,σ=0时可以计算除法,当m=1,σ=1时可以计算正弦和余弦函数。εi是每次相位的偏转常数。
(1)当作为乘法器的时候:
m=0,σ=1,εi=2-i,i≥0
运算开始时让X0等于乘数,让Z0等于被乘数。Y0等于0。
运算精度与迭代次数有关,当迭代次数N→+∞,YN→X0×Z0
(2)当作为除法器的时候:
m=0,σ=0,εi=2-i,i≥0
运算开始时让X0等于除数,让Z0等于被除数。Y0等于0。
运算精度与迭代次数有关,当迭代次数N→+∞,YN→Z0/X0。
(3)当作为正弦余弦运算单元的时候:
m=1,εi=arctg(2-i+2),i≥0,总增益矫正值
运算开始时让x0=K,y0=0,z0=θ。(θ为输入的角度值)
运算精度与迭代次数有关,当迭代次数N→+∞,
从以上的公式可以看出只需要很小的修改就能将基于CORDIC的正弦/余弦运算单元改造成乘法器和除法器。新结构的电路框图如图9所示。图9中clr_n用于复位CORDIC运算单元,clk是给CORDIC运算单元提供的工作时钟,mode[1:0]是运算器的工作模式设置位。
第三实施方式中算术逻辑电路的结构如图10所示,该算术逻辑电路包括:
控制单元,用于对相位运算单元和条件执行单元进行复位、设置初始值、设置工作模式、并发出启动迭代运算和终止迭代运算的信号,其中工作模式包括乘法模式,除法模式、和正弦余弦运算模式。
一个相位运算单元,用于根据不同的工作模式以不同的方式计算Zi+1,并判定Zi+1的符号位Si+1,其中,被设置为乘法模式时Zi+1=Zi-Si·ε=Zi-Si·2-i,被设置为除法模式时Zi+1=Zi-Si·Xi·2-i,被设置为正弦余弦运算模式时Zi+1=Zi-Sitan-1(2-i),Zi和Si是该相位运算单元上一次迭代的输出。
相位运算单元通过以下公式判定Si+1
当Zi+1=0(或Si+1=0)时,该相位运算单元终止进一步的迭代运算。
一个条件执行单元,用于根据相位运算单元上一次迭代输出的符号位Si做条件加法运算,其中,被设置为乘法模式时 被设置为除法模式时 被设置为正弦余弦运算模式时 Xi和Yi是该条件执行单元上一次迭代的输出,i是迭代序号。
当Si=0,则该条件执行单元终止进一步的迭代运算。
第三实施方式中算术逻辑电路的工作流程与第一、第二实施方式中提到的串行CORDIC是相同的,只是要设置mode(对应公式中的m)来控制工作模式:
(1)当mode[1:0]=00时,CORDIC运算器工作在正弦/余弦工作模式下。
phase_i是输入的相位角度,用幅度方式表示,范围是-π<phase_i≤π。phase_i用Q2.(N-2)的有符号数表示,正好可以表示-π到π的数。此时phase_i2没有使用,cos_o和sin_o分别是余弦和正弦值输出,输出格式为Q0.N的有符号数。得到运算结果所需要的迭代次数最多为N次。(注:QX.Y代表整数部分宽度为X位二进制数,小数部分宽度为Y位二进制数,X、Y均为大于等于0的数)
(2)当mode[1:0]=01时,CORDIC运算器工作在乘法工作模式下。
phase_i是输入的乘数,phase_i用有符号整数表示,范围-2N<phase_i≤2N-1。phase_i2是输入的被乘数,phase_i2也用有符号整数表示,范围-2N<phase_i≤2N-1,cos_o和sin_o分别是乘法结果的高N bit和低 N bit输出,乘法结果输为有符号数,范围-2N<product≤2N-1。得到运算结果所需要的迭代次数最多为N次。
(3)当mode[1:0]=10时,CORDIC运算器工作在除法工作模式下。
phase_i是输入的除数,phase_i用有符号整数表示,范围-2N<phase_i≤2N-1。phase_i2是输入的被除数,phase_i2也用有符号整数表示,范围-2N<phase_i≤2N-1,cos_o是除法结果输出,除法结果输为有符号数,范围-2N<product≤2N-1。得到运算结果所需要的迭代次数最多为N次。
利用umc的0.18um工艺,slow模式下时钟10ns,并且设置input delay40%,output delay 40%,综合结果如下表所示:
实现方式 |
垂直精度 |
相位精度 |
面积μm2 |
并行CORDIC计算余弦 数32bit精度 |
2-31 |
2-32 |
55254.831093 |
串行CORDIC计算余弦 数32bit精度 |
2-31 |
2-32 |
33673.148438 |
复用了乘、除法,正、余 弦计算功能的串行 CORDIC计算单元 |
2-31 |
2-32 |
36942.546721 |
查表法查792x32bit的 ROM |
2-31 |
2-32 |
38692.219822 |
可见,即使将乘法、除法、正弦、余弦运算功能集中在一起,新结构的电路面积也小于传统的查表电路和并行CORDIC结构的正弦/余弦计算电路。以解码MP3需要的ROM(792个32位宽的ROM)。复用了乘、除法,正、余弦计算功能的串行CORDIC计算单元依然可以节省5%的面积。但是如果除MP3外还要支持wma和AAC的解码,则相对于查表法还可以节省更多的面积。
本发明的第四实施方式涉及一种算术逻辑电路,第四实施方式在第三实施方式的基础上对各主要单元采用了功能更为单一和具体的部件予以实现,其基本结构如图11所示。
该算术逻辑电路包括控制单元、一个相位运算单元和一个条件执行单元。
控制单元用于对相位运算单元和条件执行单元进行复位、设置初始值、设置工作模式、并发出启动迭代运算和终止迭代运算的信号。本实施方式中,控制单元的功能通过以下各个部件实现:
时钟、复位和状态控制器,用于提供初始化信号和输出控制信号,提供X、Y和Z的初始值(即X0、Y0和Z0),向各个单元提供时钟信号。
一个选择输出单元,用于根据时钟、复位和状态控制器的输出控制信号,禁止或使能条件执行单元向外部输出X和Y。
一个寄存器,用于保存上一次迭代得到的Xi,并将Xi输出给相位运算单元,供该相位运算单元在除法模式下使用;
三个二选一开关单元,分别根据来自时钟、复位和状态控制器输出的初始化信号,选择以下两个信号之一传给指定的单元:
将Z0或Zi传给相位运算单元;
将X0或Xi传给条件执行单元;
将Y0的初始值或Yi传给条件执行单元。
在乘法模式下,X0为乘数,Z0为被乘数,Y0为0;
在除法模式下,X0为除数,Z0为被除数,Y0为0;
在正弦余弦运算模式下,X0为初始正弦值,Z0为初始相位,Y0为初始余弦值。
控制单元也可以有其它的实现形式,如不使用三个二选一开关,而是用一个多选多的开关代替,又如,不设置选择独立的输出单元,而是将选择输出的功能与条件执行单元合并在一起,通过输出控制信号直接控制条件执行 单元的输出。
时钟、复位和状态控制器工作的时候需要判断当前的工作模式,并根据当前模式初始化(X0,Y0,Z0)。并且还要判断迭代是否完成,判断依据是当前迭代次数是否达到最大值N,或者当前迭代过程中相位累加器的值是否为0。
时钟、复位和状态控制器可以通过多种方式实现,一种优选的实现方式如图12所示,其中包括:
计数器,用于根据时钟对i的值计数,根据复位信号清零;
三个初始值寄存器,分别保存X、Y和Z的初始值X0、Y0和Z0;
第三判断子单元(1201),判断计数器的值是否为零,如果是则根据不同的模式设置三个初始值寄存器的值X0、Y0和Z0,并输出表示选择初始值的初始化信号,否则输出表示选择选择上一次迭代值的信号;
第四判断子单元(1202),判断计数器的值是否为N(预定迭代次数),如果是则输出表示使能向外部输出X和Y的输出控制信号,否则输出表示禁止向外部输出X和Y的输出控制信号;
第五判断子单元(1203),判断Zi的值是否为0,如果是则输出表示使能向外部输出X和Y的输出控制信号,否则输出表示禁止向外部输出X和Y的输出控制信号。
相位运算单元用于根据不同的工作模式以不同的方式计算Zi+1,并判定Zi+1的符号位Si+1。相位运算单元的功能可以有多种实现方式,其中一种优选的实现方式如图13所示。该图中的相位运算单元包括:
累加器,用于将输入的值与当前的值Zi-1相加,得到计算结果Zi。
零判别子单元,用于判断Zi-1是否为零,如果为零则控制累加器保持当前的值不变.
符号判别子单元,用于判断Zi-1的正负。
一个选择器(1301),用于在零判别子单元判定Zi-1不为零时,根据不同的模式选择不同的增量值输出.选择器在乘法模式下,输出的增量值为εi=2-i;在除法模式下,输出的增量值为εi=2-i·Xi;在正弦余弦运算模式下,输出的增量值为εi=arctg(2-i+2)。
一个加减子单元,用于在符号判别子单元判定Zi-1为正时,对从选择器输入的值取反后输出给累加器。
每次迭代时都要检测当前相位累积量是否为0,如果累计量为0,则累加器不进行任何操作。
条件执行单元用于根据相位运算单元上一次迭代输出的符号位Si做条件加法运算。条件执行单元的功能可以有多种实现方式,其中一种优选的实现方式如图14所示。
在该条件执行单元中,根据当前的工作模式m,判断是否更新Xi,条件加法/减法器根据上次相位Zi是否为0,以及相位Zi的符号判断是否做加法/减法还是不做任何操作。见公式(8)(9)(10)的判断条件。
需要说明的是,本发明各电路实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合是才解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各电路实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述电路实施方式并不存在其它的单元。
本发明的第五实施方式涉及一种算术逻辑电路运行方法,其流程如图15所示。
在步骤101中,对相位运算单元和条件执行单元复位。
此后进入步骤102,为相位运算单元和条件执行单元设置初始值。其中相位运算单元的初始值为初始相位,条件执行单元的初始值为初始正弦值和初始余弦值。
此后进入步骤103,相位运算单元计算相位累计值Zi+1=Zi-Sitan-1(2-i),并判定Zi+1的符号位Si+1,其中,Zi和Si是该相位运算单元上一次迭代的结果,i是迭代序号。
可以采用以下方式之一判定Zi+1的符号位Si+1:
或者,
或者,
此后进入步骤104,条件执行单元做条件加法运算 其中,Xi和Yi是该条件执行单元上一次迭代的结果。
上述步骤103和104可以是并行的。
此后进入步骤105,判断是否达到预定迭代次数,如果是则进入步骤106,否则回到步骤103。
在步骤106中,终止迭代运算,条件执行单元输出作为运算结果的正弦值X和余弦值Y。
本实施方式是与第一实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明的第六实施方式涉及一种算术逻辑电路运行方法,其流程如图16所示。
第六实施方式在第五实施方式的基础上进行了改进,主要改进之处在于:在反复进行迭代运算的步骤中,当Zi+1=0时,提前终止迭代运算,输出运算结果。
在图16所示的流程中,步骤201-206分别与第五实施方式中的步骤101-106相同,此处不再赘述。
在步骤207中,判断相位累计值Zi+1是否为零,如果Zi+1为零则进入步骤206,提前终止迭代运算,输出运算结果,如果Zi+1不为零则进入步骤205。
在相位累计值为0时,及时地终止迭代过程,加快了运算速度,同时提高了计算的精度。
步骤207中也可以不对Zi+1进行判断,而是对Si+1是否为零进行判断,如果为零则进入步骤206,否则进入步骤205。此时,Si+1应当通过以下方式确定:
本实施方式是与第二实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
本发明的第七实施方式涉及一种算术逻辑电路运行方法,其流程如图17 所示。
在步骤301中,对相位运算单元和条件执行单元复位。
此后进入步骤302,为相位运算单元和条件执行单元设置初始值和工作模式。工作模式包括乘法模式,除法模式、和正弦余弦运算模式。
在乘法模式下,相位运算单元中Z的初始值为被乘数,条件执行单元中X的初始值为乘数,Y的初始值为0;
在除法模式下,相位运算单元中Z的初始值为被除数,条件执行单元中X的初始值为除数,Y的初始值为0;
在正弦余弦运算模式下,相位运算单元中Z的初始值为初始相位,条件执行单元中X的初始值为初始正弦值,Y的初始值为初始余弦值。
此后进入步骤303,相位运算单元根据不同的工作模式以不同的方式计算Zi+1,并判定Zi+1的符号位Si+1,其中,
被设置为乘法模式时Zi+1=Zi-Si·ε=Zi-Si·2-i,
被设置为除法模式时Zi+1=Zi-Si·Xi·2-i,
被设置为正弦余弦运算模式时Zi+1=Zi-Sitan-1(2-i);
其中,Zi和Si是该相位运算单元上一次迭代的结果,i是迭代序号。
此后进入步骤304,条件执行单元根据不同的工作模式以不同的方式做条件加法运算。其中,
被设置为乘法模式时
被设置为除法模式时
被设置为正弦余弦运算模式时
其中,Xi和Yi是该条件执行单元上一次迭代的结果。
上述步骤303和304可以是并行的。
此后进入步骤305,判断是否达到预定迭代次数,如果是则进入步骤306,否则回到步骤303。
在步骤306中,终止迭代运算,输出运算结果。
被设置为乘法模式时,条件执行单元输出的X是乘积的高N位,Y是乘低的低N位。
被设置为除法模式时,条件执行单元输出的X是N位的商。
被设置为正弦余弦运算模式时,条件执行单元输出的X是余弦运算结果,Y是正弦运算结果。
本实施方式是与第三实施方式相对应的方法实施方式,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第三实施方式中。
本发明的第八实施方式涉及一种算术逻辑电路运行方法,其流程如图18所示。
第八实施方式在第七实施方式的基础上进行了改进,主要改进之处在于:在反复进行迭代运算的步骤中,当Zi+1=0时,提前终止迭代运算,输出运算结果。
在图18所示的流程中,步骤401-406分别与第五实施方式中的步骤301-306相同,此处不再赘述。
在步骤407中,判断相位累计值Zi+1是否为零,如果Zi+1为零则进入步骤406,提前终止迭代运算,输出运算结果,如果Zi+1不为零则进入步骤405。
在相位累计值为0时,及时地终止迭代过程,加快了运算速度,同时提高了计算的精度。
步骤407中也可以不对Zi+1进行判断,而是对Si+1是否为零进行判断,如果为零则进入步骤406,否则进入步骤405。此时,Si+1应当通过以下方式确定:
本实施方式是与第四实施方式相对应的方法实施方式,本实施方式可与第四实施方式互相配合实施。第四实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第四实施方式中。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。