CN101997533B - 算术逻辑电路及其运行方法 - Google Patents

算术逻辑电路及其运行方法 Download PDF

Info

Publication number
CN101997533B
CN101997533B CN200910163473.2A CN200910163473A CN101997533B CN 101997533 B CN101997533 B CN 101997533B CN 200910163473 A CN200910163473 A CN 200910163473A CN 101997533 B CN101997533 B CN 101997533B
Authority
CN
China
Prior art keywords
value
output
phase place
phase
arithmetic element
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
Application number
CN200910163473.2A
Other languages
English (en)
Other versions
CN101997533A (zh
Inventor
彭洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Actions Technology Co Ltd
Original Assignee
Actions Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Actions Semiconductor Co Ltd filed Critical Actions Semiconductor Co Ltd
Priority to CN200910163473.2A priority Critical patent/CN101997533B/zh
Publication of CN101997533A publication Critical patent/CN101997533A/zh
Application granted granted Critical
Publication of CN101997533B publication Critical patent/CN101997533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及集成电路芯片领域,公开了一种算术逻辑电路及其运行方法。本发明中,通过对相位运算单元和条件执行单元的串行化设计,减少了计算正弦和余弦值的CORDIC结构的集成电路面积。通过将串行乘法和除法电路与CORDIC电路复用在一起,进一步减少了集成电路面积。此外还改进了电路中迭代终止的条件,加快了运算速度。

Description

算术逻辑电路及其运行方法
技术领域
本发明涉及集成电路芯片领域,特别涉及算术逻辑电路的设计。 
背景技术
随时随地能够听到喜爱的音乐是人们长久以来的愿望,现在这个愿望由以IPOD为代表的个人音乐播放器所实现。这种个人音乐播放器中需要有对各种音频的编码和解码功能,这个功能通常由包括算术逻辑单元(Arithmeticand Logical Unit,简称“ALU”)的集成电路芯片完成。 
在ALU对各种音频的编码和解码运算中,例如改进型离散余弦变换(Modified Discrete Cosine Transform,简称“MDCT”)、改进型离散余弦反变换(Inverse Modified Discrete Cosine Transform,简称“IMDCT”)、子带合成(subband synthsis)等,需要用到大量的正弦(sine)和余弦(cosine)运算,同时需要用到大量的乘法和少量的除法运算,这些运算的精度要求较高,但是对运算速度的要求却不高。ALU在音频解码器中的位置如图1所示。在不同音频标准中,如MP3(MPEG Audio Layer 3)、AAC(AdvancedAudio Coding)等,正弦和余弦系数的数量和精度都不相同。为了计算这些系数,目前有以下几种技术方案。 
现有技术一:查表 
如果运算需要的精度为32位,以MP3解码为例,IMDCT就需要准备144个sine/cosine的数据,子带合成运算还需要另外准备36*18=648个sine/cosine的数据,一共需要准备792个32位宽的只读存储器(Read-OnlyMemory,简称“ROM”)。这种方式实现比较简单,消耗的资源也不算太 多,因此被广泛采用。但是每增加一种音频的解码就可能需要新的sine/cosine值。因此在需要支持多种音频格式时,消耗的资源还是可观的。 
现有技术二:级数展开 
正弦和余弦运算用泰勒(taylor)级数展开: 
cos ( x ) = 1 - x 2 2 ! + x 4 4 ! - x 6 6 ! + . . . = Σ i = 0 ∞ ( - 1 ) i x 2 i ( 2 i ) !
(1) 
sin ( x ) = x - x 3 3 ! + x 5 5 ! - x 7 7 ! + . . . = Σ i = 0 ∞ ( - 1 ) i x 2 i + 1 ( 2 i + 1 ) !
当精度达到32位时候,泰勒级数需要展开到10次,这样需要10次加法运算和90次乘法运算,运算量太大,因此实际应用中很少有人使用。 
现有技术三:传统的坐标旋转数字计算机(Coordinate Rotation DIgitalComputer,简称“CORDIC”) 
通过移位和加减运算,能递归计算常用函数值,由J.Volder于1959年提出。通过以下的公式计算正弦和余弦值: 
Xi+1=Xi-SiYi2-i
Yi+1=Yi+SiXi2-i               (2) 
Zi+1=Zi-Sitan-1(2-i
例如要计算出精度为小数点后N位的正弦或余弦值(sinθ或cosθ),令迭代从i=-2开始,并且令Z-2=θ。一直迭代到i=N-3为止。一共迭代N次,相位精度为2-N,Xi和Yi的最高精度为2-N。每次运算需要用到相位累加常数tan-1(2-i),一共有N个。迭代运算完成时ZN-3≈0,XN-3≈cosθ,YN-3≈sinθ以上运算的精度由迭代次数决定,迭代次数越高精度越高。 
当需要32位的分辨率时,则需要迭代32次。该电路通常做成流水线形式,如图2所示。优势在于计算速度快,缺点在于消耗的电路面积较大,甚至比ROM表的面积还大,因此限制了该技术方案的应用。 
发明内容
本发明的目的在于提供一种算术逻辑电路及其运行方法,使计算正弦和余弦值的CORDIC结构的电路面积得以减少。 
为解决上述技术问题,本发明的实施方式提供了一种算术逻辑电路,包括: 
一个相位运算单元,用于将该相位运算单元上一次迭代所得的相位累计值Zi加上本次迭代的相位增量-Sitan-1(2-i),得到本次迭代的相位累计值Zi+1,并进行相位符号判断得到Zi+1的符号位Si+1,其中Si是该相位运算单元上一次迭代所得的符号位,i是迭代序号; 
一个条件执行单元,用于根据相位运算单元上一次迭代输出的符号位Si,对该条件执行单元上一次迭代所得的坐标值Xi和Yi进行坐标旋转以获得本次迭代的坐标值Xi+1和Yi+1,其中将Yi右移i次后与-Si相乘,再与Xi相加得到Xi+1,将Xi右移i次后与Si相乘,再与Yi相加得到Yi+1; 
控制单元,用于对相位运算单元和条件执行单元进行复位、设置初始值、并发出启动迭代运算和终止迭代运算的信号。 
本发明的实施方式还提供了一种算术逻辑电路,包括: 
控制单元,用于对相位运算单元和条件执行单元进行复位、设置初始值、设置工作模式、并发出启动迭代运算和终止迭代运算的信号,其中工作模式包括乘法模式,除法模式、和正弦余弦运算模式; 
一个相位运算单元,用于根据不同的工作模式以不同的方式进行相位累加以获得当前的相位累加值Zi+1,并进行相位判断以判定Zi+1的符号位Si+1,其中,被设置为乘法模式时Zi+1=Zi-Si·2-i,被设置为除法模式时Zi+1=Zi-Si·Xi·2-i,被设置为正弦余弦运算模式时Zi+1=Zi-Sitan-1(2-i),Zi和Si是 该相位运算单元上一次迭代的输出; 
一个条件执行单元,用于根据相位运算单元上一次迭代输出的符号位Si做条件加法运算,其中,被设置为乘法模式时 X i + 1 = X i Y i + 1 = Y i + S i · X i · 2 - i , 被设置为除法模式时 X i + 1 = X i Y i + 1 = Y i + S i · 2 - i , 被设置为正弦余弦运算模式时 X i + 1 = X i - S i Y i 2 - i Y i + 1 = Y i + S i X i 2 - i , Xi和Yi是该条件执行单元上一次迭代的输出,i是迭代序号。 
本发明的实施方式还提出了一种算术逻辑电路运行方法,包括以下步骤: 
对相位运算单元和条件执行单元复位,并设置初始值; 
利用同一个相位运算单元和条件执行单元反复进行迭代运算,在每次迭代中: 
该相位运算单元将上一次迭代所得的相位累计值Zi加上本次迭代的相位增量-Sitan-1(2-i),得到本次迭代的相位累计值Zi+1,并进行相位符号判断得到Zi+1的符号位Si+1; 
根据该相位运算单元上一次迭代输出的符号位Si,该条件执行单元对上一次迭代所得的坐标值Xi和Yi进行坐标旋转以获得本次迭代的坐标值Xi+1和Yi+1,其中将Yi右移i次后与-Si相乘,再与Xi相加得到Xi+1,将Xi右移i次后与Si相乘,再与Yi相加得到Yi+1,i是迭代序号; 
当达到预定迭代次数时,终止迭代运算,条件执行单元输出作为运算结果的正弦值X和余弦值Y。 
本发明的实施方式还提出了另一种算术逻辑电路运行方法,包括以下步骤: 
对相位运算单元和条件执行单元进行复位、设置初始值和工作模式; 
利用同一个相位运算单元和条件执行单元反复进行迭代运算;在每次迭代中,该相位运算单元根据不同的工作模式以不同的方式进行相位累加以获得当前的相位累加值Zi+1,并进行相位判断以判定Zi+1的符号位Si+1,其中,被设置为乘法模式时Zi+1=Zi-Si·2-i,被设置为除法模式时Zi+1=Zi-Si·Xi·2-i,被设置为正弦余弦运算模式时Zi+1=Zi-Sitan-1(2-i);在每次迭代中,该条件执行单元根据不同的工作模式以不同的方式做条件加法运算,其中,被设置为乘法模式时 X i + 1 = X i Y i + 1 = Y i + S i · X i · 2 - i , 被设置为除法模式时 X i + 1 = X i Y i + 1 = Y i + S i · 2 - i , 被设置为正弦余弦运算模式时 X i + 1 = X i - S i Y i 2 - i Y i + 1 = Y i + S i X i 2 - i ; Zi和Si是该相位运算单元上一次迭代的结果,Xi和Yi是该条件执行单元上一次迭代的结果,i是迭代序号; 
当达到预定迭代次数时,终止迭代运算,输出运算结果。 
本发明实施方式与现有技术相比,主要区别及其效果在于: 
通过对相位运算单元和条件执行单元的串行化设计,反复使用同一个相位运算单元和条件执行单元进行迭代式的运算,减少了计算正弦和余弦值的CORDIC结构的集成电路面积。 
通过将串行乘法和除法电路与计算正弦和余弦值的CORDIC电路复用在一起,进一步减少了集成电路面积。 
改进了电路中迭代终止的条件,在相位累计值为0时,及时地终止迭代过程,加快了运算速度,同时提高了计算的精度。 
附图说明
图1是现有技术中算术逻辑单元在音频解码器的位置示意图; 
图2是传统CORDIC的电路结构示意图; 
图3是本发明第一实施方式中算术逻辑电路结构示意图; 
图4是本发明第二实施方式中算术逻辑电路结构示意图; 
图5是本发明第二实施方式中时钟、复位和状态控制器的一种结构示意图; 
图6是本发明第二实施方式中相位运算单元的一种结构示意图; 
图7是本发明第二实施方式中相位运算单元的另一种结构示意图; 
图8是本发明第二实施方式中条件执行单元的一种结构示意图; 
图9是本发明第三实施方式中具有乘法、除法、正弦/余弦运算功能的CORDIC运算器电路框图; 
图10是本发明第三实施方式中算术逻辑电路结构示意图; 
图11是本发明第四实施方式中算术逻辑电路结构示意图; 
图12是本发明第四实施方式中时钟、复位和状态控制器的一种结构示意图; 
图13是本发明第四实施方式中相位运算单元的一种结构示意图; 
图14是本发明第四实施方式中条件执行单元的一种结构示意图; 
图15是本发明第五实施方式中算术逻辑电路运行方法流程示意图; 
图16是本发明第六实施方式中算术逻辑电路运行方法流程示意图; 
图17是本发明第七实施方式中算术逻辑电路运行方法流程示意图; 
图18是本发明第八实施方式中算术逻辑电路运行方法流程示意图。 
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。 
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。 
本发明各实施方式中所称的算术逻辑电路可以是一个ALU,也可以是ALU中的一个组成部分,还可以是一个专用或通用的大芯片上的一个组成部分。 
本发明的第一实施方式涉及一种算术逻辑电路,其实质上是一种串行的CORDIC。下面先介绍这种串行的CORDIC原理。 
串行CORDIC采用以下公式计算正弦和余弦值: 
Xi+1=Xi-SiYi2-i
Yi+1=Yi+SiXi2-i        (3) 
Zi+1=Zi-Sitan-1(2-i
其中Si是每次迭代运算前的符号控制量: 
S i = - 1 if Z i < 0 + 1 if Z i > 0 0 if Z i = 0
如果计算sinθ或cosθ,将其初始角度设置为Z-2=θ,并考虑总增益  K = &Pi; i = - 2 N - 2 cos ( tan ( 2 - i ) ) 的因素,将(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做条件加法运算 X i + 1 = X i - S i Y i 2 - i Y i + 1 = Y i + S i X i 2 - i , 其中Xi和Yi是该条件执行单元上一次迭代的输出。 
该条件执行单元执行条件加法运算时,优选地,如果Si=0,则该条件执行单元终止进一步的迭代运算。 
该算术逻辑电路还包括控制单元,用于对相位运算单元和条件执行单元进行复位、设置初始值、并发出启动迭代运算和终止迭代运算的信号,其中i是迭代序号。 
上述算术逻辑电路的工作流程如下: 
(1)如果计算sinθ或cosθ,将其角度设置为Z-2=θ,并考虑总增益  K = &Pi; i = - 2 N - 2 cos ( tan ( 2 - i ) ) 的因素,将(X-2,Y-2)设置成(0,K)。 
(2)每次迭代运算前首先判断符号控制量Si,判断依据为: 
S i = - 1 if Z i < 0 + 1 if Z i > 0 0 if Z i = 0
(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中,相位符号判断函数用公式表达式为 S i = - 1 if Z i < 0 + 1 if Z i &GreaterEqual; 0 经本发明改进后的相位符号判断函数用公式表达式为  S i = - 1 if Z i < 0 + 1 if Z i > 0 0 if Z i = 0 , 并且在相位累计量为0的时候终止迭代,这样加快了运算速度并且能够减小电路的功耗。 
条件执行单元用于做条件加法运算 X i + 1 = X i - S i Y i 2 - i Y i + 1 = Y i + S i X i 2 - i , 实现此功能可以有多种形式,其中的一种优选的实现形式如图8所示。 
相对于传统的CORDIC,由于相位运算单元作了改进,条件执行单元也有相应的改进,运算过程中不再只判断是否相位为正还是为负,还要判断相位是否为0。 
条件执行单元的功能用公式表达为: 
X i + 1 = X i - S i Y i 2 - i Y i + 1 = Y i + S i X i 2 - i 其中 S i = - 1 if Z i < 0 + 1 if Z i > 0 0 if Z i = 0 - - - ( 4 )
或者表达为 
X i + 1 = X i - Y i 2 - i if Z i > 0 X i if Z i = 0 X i + Y i 2 - i if Z i < 0 - - - ( 5 )
Y i + 1 = Y i - X i 2 - i if Z i > 0 Y i if Z i = 0 Y i + X i 2 - i if Z i < 0 - - - ( 6 )
本发明第三实施方式涉及一种算术逻辑电路,与前两个实施方式相比,本实施方式将乘法和除法电路与CORDIC电路复用在一起。 
先介绍一下乘法除法复用于CORDIC的原理。 
串行乘法可以用移位相加表示,而串行除法可以用条件减+移位表示。因此它们也可以用CORDIC来表示。 
X i + 1 = X i - m &CenterDot; S i &CenterDot; Y i 2 - i Y i + 1 = Y i + &sigma; &CenterDot; S i &CenterDot; X i &CenterDot; 2 - i + ( 1 - &sigma; ) &CenterDot; S i &CenterDot; &epsiv; i Z i + 1 = Z i - &sigma; &CenterDot; S i &CenterDot; &epsiv; i - ( 1 - &sigma; ) &CenterDot; S i &CenterDot; X i &CenterDot; 2 - i - - - ( 7 )
其中初始值为(X0,Y0,Z0),通过设置m和σ来确定函数的功能。Si是符号判断函数,它的值只有(0,+1,-1)三种。当m=0,σ=1时可以计算乘法,当m=0,σ=0时可以计算除法,当m=1,σ=1时可以计算正弦和余弦函数。εi是每次相位的偏转常数。 
(1)当作为乘法器的时候: 
S i = 1 if Z i > 0 0 if Z i = 0 - 1 if Z i < 0 - - - ( 8 )
m=0,σ=1,εi=2-i,i≥0 
运算开始时让X0等于乘数,让Z0等于被乘数。Y0等于0。 
运算精度与迭代次数有关,当迭代次数N→+∞,YN→X0×Z0
(2)当作为除法器的时候: 
S i = 1 if Z i > 0 0 if Z i = 0 - 1 if Z i < 0 - - - ( 9 )
m=0,σ=0,εi=2-i,i≥0 
运算开始时让X0等于除数,让Z0等于被除数。Y0等于0。 
运算精度与迭代次数有关,当迭代次数N→+∞,YN→Z0/X0。 
(3)当作为正弦余弦运算单元的时候: 
S i = 1 if Z i > 0 0 if Z i = 0 - 1 if Z i < 0 - - - ( 10 )
m=1,εi=arctg(2-i+2),i≥0,总增益矫正值 K = &Pi; i = 0 N cos &epsiv; i
运算开始时让x0=K,y0=0,z0=θ。(θ为输入的角度值) 
运算精度与迭代次数有关,当迭代次数N→+∞, X N &RightArrow; cos &theta; Y N &RightArrow; sin &theta;
从以上的公式可以看出只需要很小的修改就能将基于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做条件加法运算,其中,被设置为乘法模式时 X i + 1 = X i Y i + 1 = Y i + S i &CenterDot; X i &CenterDot; 2 - i , 被设置为除法模式时 X i + 1 = X i Y i + 1 = Y i + S i &CenterDot; 2 - i , 被设置为正弦余弦运算模式时 X i + 1 = X i - S i Y i 2 - i Y i + 1 = Y i + S i X i 2 - i , 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,条件执行单元做条件加法运算 X i + 1 = X i - S i Y i 2 - i Y i + 1 = Y i + S i X i 2 - i , 其中,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,条件执行单元根据不同的工作模式以不同的方式做条件加法运算。其中, 
被设置为乘法模式时 X i + 1 = X i Y i + 1 = Y i + S i &CenterDot; X i &CenterDot; 2 - i
被设置为除法模式时 X i + 1 = X i Y i + 1 = Y i + S i &CenterDot; 2 - i
被设置为正弦余弦运算模式时 X i + 1 = X i - S i Y i 2 - i Y i + 1 = Y i + S i X i 2 - i
其中,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应当通过以下方式确定: 
本实施方式是与第四实施方式相对应的方法实施方式,本实施方式可与第四实施方式互相配合实施。第四实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第四实施方式中。 
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。 

Claims (12)

1.一种算术逻辑电路,其特征在于,包括:
一个相位运算单元,用于将该相位运算单元上一次迭代所得的相位累计值Zi加上本次迭代的相位增量-Sitan-1(2-i),得到本次迭代的相位累计值Zi+1,并进行相位符号判断得到Zi+1的符号位Si+1,其中Si是该相位运算单元上一次迭代所得的符号位,i是迭代序号;
一个条件执行单元,用于根据所述相位运算单元上一次迭代输出的符号位Si,对该条件执行单元上一次迭代所得的坐标值Xi和Yi进行坐标旋转以获得本次迭代的坐标值Xi+1和Yi+1,其中将Yi右移i次后与-Si相乘,再与Xi相加得到Xi+1,将Xi右移i次后与Si相乘,再与Yi相加得到Yi+1
控制单元,用于对所述相位运算单元和条件执行单元进行复位、设置初始值、并发出启动迭代运算和终止迭代运算的信号;
所述相位运算单元判定Zi+1的符号位Si+1时,
如果Zi+1是负数,则该相位运算单元判定Si+1为-1,
如果Zi+1是正数,则该相位运算单元判定Si+1为1,
如果Zi+1是零,则该相位运算单元判定Si+1为0,并且该相位运算单元终止进一步的迭代运算;
所述条件执行单元执行所述坐标旋转运算时,如果Si=0,则该条件执行单元终止进一步的迭代运算。
2.根据权利要求1所述的算术逻辑电路,其特征在于,所述控制单元包括:
时钟、复位和状态控制器,用于提供初始化信号和输出控制信号,提供初始相位、初始正弦值或初始余弦值,向各个单元提供时钟信号;
一个选择输出单元,用于根据所述时钟、复位和状态控制器的输出控制信号,禁止或使能所述条件执行单元向外部输出作为正弦值和余弦值的运算结果;
三个二选一开关单元,分别根据来自所述时钟、复位和状态控制器输出的初始化信号,选择以下两个信号之一传给指定的单元,其中每个开关分别对应三组信号中的一组,在每组中两个信号中选择一个:
将初始相位或上一次迭代所得的相位Zi传给所述相位运算单元;
将初始正弦值或上一次迭代所得的坐标值Xi传给所述条件执行单元;
将初始余弦值或上一次迭代所得的坐标值Yi传给所述条件执行单元。
3.根据权利要求2所述的算术逻辑电路,其特征在于,所述时钟、复位和状态控制器进一步包括:
计数器,用于根据时钟对所述i的值计数,根据复位信号清零;
三个初始值寄存器,分别保存初始相位、初始正弦值和初始余弦值;
第一判断子单元,判断所述计数器的值是否为零,如果是则设置所述三个初始值寄存器的值,并输出表示选择初始值的初始化信号,否则输出表示选择上一次迭代值的信号;
第二判断子单元,判断所述计数器的值是否为预设的最大迭代次数,如果是则输出表示使能向外部输出正弦值和余弦值的输出控制信号,否则输出表示禁止向外部输出正弦值和余弦值的输出控制信号。
4.根据权利要求3所述的算术逻辑电路,其特征在于,所述相位运算单元进一步包括:
符号判别子单元,用于判断Zi的符号,输出表示Zi是否为零的信号,以及Zi的正负信号;
一个选择器,用于根据所述符号判别子单元输出的表示Zi是否为零的信号,选择不同的常数输出,其中,在Zi为零时输出常数0,在Zi不为零时输出第i+1次迭代相位常数;
一个加减子单元,用于根据所述符号判别子单元输出的正负信号,选择将Zi加上或减去所述选择器输出的常数,并输出运算结果。
5.一种算术逻辑电路,其特征在于,包括控制单元、一个相位运算单元和一个条件执行单元:
所述控制单元用于对所述相位运算单元和条件执行单元进行复位、设置初始值、设置工作模式、并发出启动迭代运算和终止迭代运算的信号,其中工作模式包括乘法模式,除法模式、和正弦余弦运算模式;
所述相位运算单元用于根据不同的工作模式以不同的方式进行相位累加以获得当前的相位累加值Zi+1,并进行相位判断以判定Zi+1的符号位Si+1,其中,被设置为乘法模式时Zi+1=Zi-Si·2-i,被设置为除法模式时Zi+1=Zi-Si·Xi·2-i,被设置为正弦余弦运算模式时Zi+1=Zi-Sitan-1(2-i),Zi和Si是该相位运算单元上一次迭代的输出;
所述条件执行单元用于根据所述相位运算单元上一次迭代输出的符号位Si做条件加法运算,其中,被设置为乘法模式时 X i + 1 = X i Y i + 1 = Y i + S i &CenterDot; X i &CenterDot; 2 - i , 被设置为除法模式时 X i + 1 = X i Y i + 1 = Y i + S i &CenterDot; 2 - i , 被设置为正弦余弦运算模式时 X i + 1 = X i - S i Y i 2 - i Y i + 1 = Y i + S i X i 2 - i ; 和Yi是该条件执行单元上一次迭代的输出,i是迭代序号;
所述相位运算单元判定Zi+1的符号位Si+1时,如果Zi+1是负数,则该相位运算单元判定Si+1为-1,
如果Zi+1是正数,则该相位运算单元判定Si+1为1,
如果Zi+1是零,则该相位运算单元判定Si+1为0,并且该相位运算单元终止进一步的迭代运算;
所述条件执行单元执行所述条件加法运算时,如果Si=0,则该条件执行单元终止进一步的迭代运算。
6.根据权利要求5所述的算术逻辑电路,其特征在于,所述控制单元进一步包括:
时钟、复位和状态控制器,用于提供初始化信号和输出控制信号,提供首次迭代的各初始值X0、Y0和Z0,向各个单元提供时钟信号;
一个选择输出单元,用于根据所述时钟、复位和状态控制器的输出控制信号,禁止或使能所述条件执行单元向外部输出最终运算结果;
一个寄存器,用于保存上一次迭代得到的Xi,并将Xi输出给所述相位运算单元,供该相位运算单元在除法模式下使用;
三个二选一开关单元,分别根据来自所述时钟、复位和状态控制器输出的初始化信号,选择以下两个信号之一传给指定的单元,其中每个开关分别对应三组信号中的一组,在每组中两个信号中选择一个:
将初始值Z0或上一次迭代所得的Zi传给所述相位运算单元;
将初始值X0或上一次迭代所得的Xi传给所述条件执行单元;
将初始值Y0或上一次迭代所得的Yi传给所述条件执行单元。
7.根据权利要求6所述的算术逻辑电路,其特征在于,
在乘法模式下,初始值X0为乘数,初始值Z0为被乘数,初始值Y0为0;
在除法模式下,初始值X0为除数,初始值Z0为被除数,初始值Y0为0;
在正弦余弦运算模式下,初始值X0为初始正弦值,初始值Z0为初始相位,初始值Y0为初始余弦值。
8.根据权利要求7所述的算术逻辑电路,其特征在于,所述时钟、复位和状态控制器进一步包括:
计数器,用于根据时钟对所述i的值计数,根据复位信号清零;
三个初始值寄存器,分别保存初始值X0、Y0和Z0
第三判断子单元,判断所述计数器的值是否为零,如果是则根据不同的模式设置所述三个初始值寄存器的值,并输出表示选择初始值的初始化信号,否则输出表示选择上一次迭代值的信号;
第四判断子单元,判断所述计数器的值是否为预设的最大迭代次数,如果是则输出表示使能向外部输出当前运算结果的输出控制信号,否则输出表示禁止向外部输出当前运算结果的输出控制信号;
第五判断子单元,判断Zi的值是否为0,如果是则输出表示使能向外部输出当前运算结果的输出控制信号,否则输出表示禁止向外部输出当前运算结果的输出控制信号。
9.根据权利要求8所述的算术逻辑电路,其特征在于,所述相位运算单元进一步包括:
累加器,用于将输入的值与当前的值Zi相加,得到计算结果Zi+1
零判别子单元,用于判断Zi是否为零,如果为零则控制所述累加器保持当前的值不变;
符号判别子单元,用于判断Zi的正负;
一个选择器,用于在所述零判别子单元判定Zi不为零时,根据不同的模式选择不同的增量值输出;
一个加减子单元,用于在所述符号判别子单元判定Zi为负时,对从所述选择器输入的值取反后输出给所述累加器。
10.根据权利要求9所述的算术逻辑电路,其特征在于,所述选择器在乘法模式下,输出的增量值为εi=2-i;在除法模式下,输出的增量值为εi=2-i·Xi;在正弦余弦运算模式下,输出的增量值为εi=arctg(2-i+2)。
11.一种算术逻辑电路运行方法,其特征在于,包括以下步骤:
对相位运算单元和条件执行单元复位,并设置初始值;
利用同一个相位运算单元和条件执行单元反复进行迭代运算,在每次迭代中:
该相位运算单元将上一次迭代所得的相位累计值Zi加上本次迭代的相位增量-Sitan-1(2-i),得到本次迭代的相位累计值Zi+1,并进行相位符号判断得到Zi+1的符号位Si+1
根据该相位运算单元上一次迭代输出的符号位Si,该条件执行单元对上一次迭代所得的坐标值Xi和Yi进行坐标旋转以获得本次迭代的坐标值Xi+1和Yi+1,其中将Yi右移i次后与-Si相乘,再与Xi相加得到Xi+1,将Xi右移i次后与Si相乘,再与Yi相加得到Yi+1,i是迭代序号;
当达到预定迭代次数时,终止所述迭代运算,所述条件执行单元输出作为运算结果的正弦值X和余弦值Y;
在所述反复进行迭代运算的步骤中,当Zi+1=0时,提前终止所述迭代运算,输出运算结果。
12.一种算术逻辑电路运行方法,其特征在于,包括以下步骤:
对相位运算单元和条件执行单元进行复位、设置初始值和工作模式;
利用同一个相位运算单元和条件执行单元反复进行迭代运算;在每次迭代中,该相位运算单元根据不同的工作模式以不同的方式进行相位累加以获得当前的相位累加值Zi+1,并进行相位判断以判定Zi+1的符号位Si+1,其中,被设置为乘法模式时Zi+1=Zi-Si·2-i,被设置为除法模式时Zi+1=Zi-Si·Xi·2-i,被设置为正弦余弦运算模式时Zi+1=Zi-Sitan-1(2-i);在每次迭代中,该条件执行单元根据不同的工作模式以不同的方式做条件加法运算,其中,被设置为乘法模式时 X i + 1 = X i Y i + 1 = Y i + S i &CenterDot; X i &CenterDot; 2 - i , 被设置为除法模式时 X i + 1 = X i Y i + 1 = Y i + S i &CenterDot; 2 - i , 被设置为正弦余弦运算模式时 X i + 1 = X i - S i Y i 2 - i Y i + 1 = Y i + S i X i 2 - i ; Zi和Si是该相位运算单元上一次迭代的结果,Xi和Yi是该条件执行单元上一次迭代的结果,i是迭代序号;
当达到预定迭代次数时,终止所述迭代运算,输出运算结果;
在所述反复进行迭代运算的步骤中,当Zi+1=0时,提前终止所述迭代运算,输出运算结果。
CN200910163473.2A 2009-08-17 2009-08-17 算术逻辑电路及其运行方法 Active CN101997533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910163473.2A CN101997533B (zh) 2009-08-17 2009-08-17 算术逻辑电路及其运行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910163473.2A CN101997533B (zh) 2009-08-17 2009-08-17 算术逻辑电路及其运行方法

Publications (2)

Publication Number Publication Date
CN101997533A CN101997533A (zh) 2011-03-30
CN101997533B true CN101997533B (zh) 2014-07-16

Family

ID=43787240

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910163473.2A Active CN101997533B (zh) 2009-08-17 2009-08-17 算术逻辑电路及其运行方法

Country Status (1)

Country Link
CN (1) CN101997533B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636632B (zh) * 2015-03-10 2017-12-15 中国人民解放军国防科学技术大学 高精度相位小存储量查表计算方法
CN108733349B (zh) * 2018-07-27 2023-05-05 珠海一微半导体股份有限公司 一种基于定点数的三角函数运算电路
CN111752532B (zh) * 2020-06-24 2021-03-26 上海擎昆信息科技有限公司 一种高精度实现32位整数除法的方法、系统及装置
CN111813372B (zh) * 2020-07-10 2021-05-18 上海擎昆信息科技有限公司 一种高精度低时延实现32位整数除法的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0741478A2 (en) * 1995-05-04 1996-11-06 Motorola, Inc. Circuit for performing arithmetic operations in a demodulator
CN101082858A (zh) * 2007-07-12 2007-12-05 北京航空航天大学 一种cordic算法的实现装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0741478A2 (en) * 1995-05-04 1996-11-06 Motorola, Inc. Circuit for performing arithmetic operations in a demodulator
CN101082858A (zh) * 2007-07-12 2007-12-05 北京航空航天大学 一种cordic算法的实现装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于改进混合式CORDIC算法的直接数字频率合成器设计;张晓彤等;《电子学报》;20080615;第36卷(第06期);第114页第1-2段,图1 *
张晓彤等.基于改进混合式CORDIC算法的直接数字频率合成器设计.《电子学报》.2008,第36卷(第06期),

Also Published As

Publication number Publication date
CN101997533A (zh) 2011-03-30

Similar Documents

Publication Publication Date Title
US20230214186A1 (en) Small multiplier after initial approximation for operations with increasing precision
CN101997533B (zh) 算术逻辑电路及其运行方法
CN106557299B (zh) 浮点操作数计算方法以及使用此方法的装置
CN103677738A (zh) 基于混合模式cordic算法的低延时基本超越函数实现方法及装置
CN101685383A (zh) 计算器、基于直接对阶的自由精度浮点数的运算电路
CN103176767A (zh) 一种低功耗高吞吐的浮点数乘累加单元的实现方法
Pasca Correctly rounded floating-point division for DSP-enabled FPGAs
Wang et al. Decimal floating-point square root using Newton-Raphson iteration
CN109388373B (zh) 用于低功耗内核的乘除法器
Park et al. A multi-granularity power modeling methodology for embedded processors
Chugh et al. Logarithmic arithmetic as an alternative to floating-point: A review
CN102253822B (zh) 一种模(2^n-3)乘法器
Wang et al. Area-efficient and ultra-low-power architecture of RSA processor for RFID
Merchant et al. Efficient realization of table look-up based double precision floating point arithmetic
Han et al. Data wordlength reduction for low-power signal processing software
Sutter et al. Comparative study of SRT-dividers in FPGA
Edman et al. Fixed-point implementation of a robust complex valued divider architecture
Jalaja et al. High speed VLSI architecture for squaring algorithm using retiming approach
CN204143432U (zh) 一种乘除法器
CN102073471B (zh) 一种处理器Cordic迭代运算电路
Reymond et al. A hardware pipelined architecture of a scalable Montgomery modular multiplier over GF (2 m)
Dieter et al. Low-cost microarchitectural support for improved floating-point accuracy
Didier et al. RISC-V word-size modular instructions for Residue Number Systems
Rust et al. Implementation of a low power low complexity ASIP for various sphere decoding algorithms
Pasuluri et al. Reducing Computational Complexity in Digital Circuit Designing using Ancient Mathematics: A Review

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: JUXIN(ZHUHAI) TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: JULI INTEGRATED CIRCUIT DESIGN CO., LTD.

Effective date: 20150604

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 519085 ZHUHAI, GUANGDONG PROVINCE TO: 519000 ZHUHAI, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20150604

Address after: 519000, C, No. 1, No. four, 1 hi tech Zone, Tang Wan Town, Guangdong, Zhuhai

Patentee after: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.

Address before: 15 -A101, 1, ha Da Gong Road, Tang Town, Guangdong, Zhuhai, 519085

Patentee before: Juli Integrated Circuit Design Co., Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee after: ACTIONS TECHNOLOGY Co.,Ltd.

Address before: Zone C, floor 1, factory building, No.1, Keji 4th Road, high tech Zone, Tangjiawan Town, Zhuhai City

Patentee before: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.