(通信与信息系统专业论文)cordic的ip核生成平台的设计与实现.pdf_第1页
(通信与信息系统专业论文)cordic的ip核生成平台的设计与实现.pdf_第2页
(通信与信息系统专业论文)cordic的ip核生成平台的设计与实现.pdf_第3页
(通信与信息系统专业论文)cordic的ip核生成平台的设计与实现.pdf_第4页
(通信与信息系统专业论文)cordic的ip核生成平台的设计与实现.pdf_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学硕士学位论文 摘要 坐标旋转算法( c o o r d i n a t er o t a t i o n a ld i g i t a lc o m p u t e r ,c o r d i c ) 是一种用迭 代方式完成矢量旋转的方法,可用于三角函数、双曲线函数、平方根、对数、 指数等一系列函数的运算。由于c o r d i c 算法中对数据的操作只有移位和加减, 易于硬件实现,能够极大地降低设计的复杂度,因而被广泛应用于各种系统级 芯片( s y s t e mo nc h i p ,s o c ) 中。而随着电路规模和复杂度的不断增加,以及越 来越紧迫的项目开发时间,基于口核重用的系统设计方法逐渐成为了s o c 设计 的主流。 本课题以三网合一项目n i n o c ( n i g hp e r f o r m a n c en e t w o r ko v e rc o a x ) 为依 托,首先完成了系统中数字下变频、频率偏移校正等应用场合下的c o r d i c 电 路的设计,使用仿真工具l d v ( l o g i cd e s i g na n dv e r i f i c a t i o n ) 对所设计的c o r d i c 电路进行了功能验证,并采用f p g a 芯片进行了实现和测试。然后通过比较不 同应用场合中的c o r d i c 电路的结构,针对不同迭代次数、不同运算精度和不 同实现架构等构造出了c o r d i c 的核生成平台。为了验证生成的c o r d i c 软 核的功能,设计出了一个可配置的一致性验证平台。 使用本文中设计的p 核生成平台,用户只需设置相关的参数然后运行该平 台,就能得到经过验证功能正确的c o r d i c 软核,既可以集成到s o c 中,也可 以用于f p g a 设计中。可配置的一致性验证平台可以根据用户设置完成对不同 c o r d i c 电路的功能验证,从而大大缩短电路的设计和验证时间,使设计人员 可以更多地关注于系统的整体设计。 本文所设计的c o r d i c 电路具有以下优点:( 1 ) 通过对输入的角度进行预处 理,将c o r d i c 的运算范围扩大到了整个坐标系;( 2 ) 简化了校正因子的运算, 进一步节省了资源。本文中所采用的思想对于类似的常用电路的设计具有可借 鉴性,可以根据实际的应用场合设计出相似的核生成平台,从而能够在较短 的时间内得到功能正确的口核用于系统集成,加快项目的开发进度。 关键词:c o r d i c ,旋转模式,相角模式,p 核,一致性验证 武汉理工大学硕士学位论文 a bs t r a c t c o r d i ci sa na l g o r i t h me m p l o y sm u l t i p l ei t e r a t i o n st oc o m p l e t ev e c t o rr o t a t i o n w h i c hc a l lb eu s e dt oc a l c u l a t em a n yf u n c t i o n ss u c ha st r i g o n o m e t r i cf u n c t i o n s , h y p e r b o l i cf u n c t i o n s ,t h es q u a r er o o t ,l o g a r i t h m i c ,e x p o n e n t i a la n ds oo n b e c a u s et h e d a t ao p e r a t i o n si nc o r d i ca l g o r i t h mj u s tc o n t a i na d d i t i o n ,s u b t r a c t i o na n ds h i f t w h i c ha l ee a s yt ob ei m p l e m e n t e db yh a r d w a r e ,a n dg r e a t l yr e d u c e st h ec o m p l e x i t yo f d e s i g n ,s oi ti sw i d e l yu s e di nav a r i e t yo fs o c ( s y s t e mo nc r a p ) a n dw i t ht h es c a l e a n dc o m p l e x i t yo ft h ec i r c u i t si n c r e a s i n g ,s y s t e md e s i g n e db a s e do nr e u s a b l ei pi s b e c o m i n gm o r ea n d m o r e p o p u l a r t h i sp a p e ri sb a s e do nt h ep r o j e c th i n o c ,t h ed e s i g no ft h ec o r d i cc i r c u i t s u s e di nd i g i t a ld o w nc o n v e r s i o na n df r e q u e n c yo f f s e tc o r r e c t i o na r ec o m p l e t e df i r s t , t h e nu s et h es i m u l a t i o nt o o ll d vv e r i f yt h ef u n c t i o n a l i t ya n di m p l e m e n t e dw i t h f p g a a n dt h e n , a f t e rd e e p l ys t u d yt h es t r u c t u r ea n dt e c h n i c a ld e t a i l so fc o r d i c c i r c u i td e s i g n ,c o n s t r u c ta l li pc o r eg e n e r a t o ro fc o 剐d i cf o rd i f f e r e n ti t e r a t i o n t i m e s ,d i f f e r e n tc o m p u t i n gp r e c i s i o n , a sw e l la st h er e a l i z a t i o ns t r u c t u r eo fd i f f e r e n t a p p l i c a t i o n s af l e x i b l eu s e r - c o n f i g u r a b l ec o n s i s t e n c yv e r i f i c a t i o np l a t f o r mi sa l s o d e s i g n e dt ov e r i f yt h ec o r d i c s o f ti p u s et h ep l a t f o r md e s i g n e di nt h i sp a p e r , a f t e rs i m p l ys e ts o m ep a r a m e t e r ss u c h a sw o r km o d e s ,i t e r a t i o nt i m e s ,p i p e l i n es t a g e s ,a n ds oo na n dr u nt h ep l a t f o r m ,n e t s c a l lg e tav e r i f i e dc o r d i cm o d u l ew h i c hc a nb eu s e db o mi ns o ca n df p g a d e s i g n t h eu s e r - c o n f i g u r a b l ec o n s i s t e n c yv e r i f i c a t i o np l a t f o r mm a k e sc o r d i c c i r c u i td e s i g na n dv e r i f i c a t i o nc a nb ec o m p l e t e da tt h es a m et i m e ,s i g n i f i c a n t l y r e d u c e st h ed e s i g nt i m e ,s ot h ee n g i r i c e r sc a l lf o c u sm o r eo nt h et o pd e s i g n 1 e v e l t h ec o r d i cc i r c u i td e s i g n e di nt h i sp a p e rh a st h ef o l l o w i n ga d v a n t a g e s :( 1 ) e x t e n d st h ei n p u ta n g l et oac o m p l e t ec y c l ev i ac o a r s er o t a t i o n ;( 2 ) s i m p l i f i e st h e c o m p u t i n go ft h e c o r r e c t i o nf a c t o ro fo v e r a l li t e r a t i o n sa n dg r e a t l ys a v et h e r e s o u r c e s t h ep l a t f o r md e s i g n e di nt h i sp a p e rh a sac e r t a i nn a t u r ew h i c hc a nu s e d b yo t h e r s ,f o raf u n c t i o n a lc i r c u i tb l o c kw h i c hc o m p l e t ec e r t a i nf u n c t i o ne s p e c i a l l y i i 武汉理工大学硕士学位论文 t h eo l l e sw h i c ha r eu s e dv e r yo f t e n ,e n g i n e e r sc a l ld e s i g nas i m i l a rc o m m o np l a t f o r m b a s e do nt h ea c t u a la p p l i c a t i o n s t h e nav e r i f i e da n df u n c t i o nc o r r e c ti pc o r ec a l lb e g e n e r a t e di nav e r ys h o r tp e r i o do ft i m ea n du s e df o rs y s t e mi n t e g r a t i o n ,g r e a t l y s p e e du pt h es c h e d u l eo f t h ep r o j e c t s k e y w o r d :c o r d i c ,r o t a t i o nm o d e ,v e c t o r i n gm o d e ,i pc o r e , c o h e r e n c ev e r i t i c a t i o n i h 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人 已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构的 学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示了谢意。 签名: 翁邀日期:垫:童:l 星 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权保 留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 日期:型! :童必 武汉理工大学硕士学位论文 1 1 课题研究背景 第1 章绪论 随着超大规模集成电路( w r yl a r g es c a l ei n t e g r a t e dc i r c u i t ,v l s i ) 的设计及工 艺技术的进步,经常需要使用硬件电路来实现三角函数、指数、对数、双曲线 函数和其它超越函数的运算。通常情况下,有如下几种可选的实现方法:( 1 ) r o m 查表法;( 2 ) 多项式近似法;( 3 ) c o r d i c 算法。 使用r o m 查表法的优点是简单、直接,能用于任何函数的计算,其缺点是 随着数据长度的变大,所需的存储空间将呈指数级增加,因而它只适用于数据 长度比较小的情况。多项式近似法由于需要乘法运算,在硬件上实现起来比较 复杂且消耗资源较多,因而很少被采用【1 1 。 与前两个方法相比,c o r d i c 具有突出的优势:( 1 ) 不需要硬件乘法器,所 有运算只有移位和加减,消耗资源少且易于实现;( 2 ) 可使用流水线实现方法, 提高工作频率;( 3 ) 可使用循环迭代方法,节约硬件资源。 c o r d i c 已被广泛应用于诸多领域,例如8 0 8 7 数学协处理器、h p 一3 5 计算 器、雷达信号处理、3 d 图像处理等。利用c o r d i c 算法可以方便地实现数字通 信中的调制与解调【2 】。c o r d i c 算法也被运用到了移动通信设备中,下图1 1 中 所示的是一个抽象的w c d m a 极化发射机的结构图,其中就包括了一个 c o r d i c 处理模块。 i i n i 删卜一 l r c ( 粕l c m o d f l g l o t q a 。- _ _ _ _ 。_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - l m c 删i o ab r 图1 1w c d m a 极化发射机结构图 可以预见的是,随着通信技术的发展,c o r d i c 电路将会得到更加广泛的 应用,其特点将是高精度、高数据吞吐量【3 1 。 武汉理工大学硕士学位论文 12 课题研究目的 随着硅片工艺技术的不断发展,系统芯片集成的功能日益复杂,电路的规 模也日益庞大,因而基于口核重用的方法成为了系统设计的主流【4 】。 本课题的研究目的是设计并实现一个c o r d i c 的伊核生成平台。该平台能 够根据用户的参数设置,快速生成针对不同应用场合的c o r d i c 软核。生成的 c o r d i c 软核可直接用于系统设计,从而大大缩短丌发时间。 两太主流f p g a 厂商x i l i n x 和a l t 廿- a 都免费提供了c o r d i c 软核供用户使 用。下图l - 2 中所示的是使用x i l i n x 公司韵母核生成工具c o r e g 渊a t o r 来生成 c o r d i c 电路的图形化操作界面。 图1 - 2x i l i n x 公司的口核生成工具c o r e g e n e r a t o r 上图中所示的工具相当于一个软p 核生成器,用户配置相关的参数后运行 该工具,生成的结果就是c o r d i c 电路的r t l 代码,可直接用于f p g a 设计中。 需要注意的是,采用上图中所示的工具生成的c o r d i c 模块是一种结构级的描 述,其结构只有f p g a 芯片中的基本逻辑单元如查找表( l o o k u p t a b l e , l u t ) 、多 路选择器r m u l f i p l e x e r ) 等【”,因此只能使用f p g a 厂商提供的工具来进行综合和 实现,而不能用于s o c 系统集成。 本文中设计的c o r d i c 的d 核生成平台与上图中所示的工具相比,生成的 c o r d i c 电路既可以用于f p g a 设计,也可以集成到s o c 中,因而更具有通用 性。 武汉理工大学硕士学位论文 1 3 课题所做工作及本文结构 本文依托于三网合一项目h i n o c ,首先完成了数字下变频、频率偏移校正 等应用场合中的c o r d i c 电路的设计与验证,然后分析比较了不同应用场合下 c o r d i c 电路的功能结构的异同,对电路中的相同部分以库文件的方式提供, 对不同部分则根据用户控制参数来生成,由此构造出了c o r d i c 的i p 核生成平 台。该平台包括了一个r t l 代码生成器以及一个可配置的一致性验证平台,用 户通过运行r t l 代码生成器可以快速得到c o r d i c 的r t l 代码,运行一致性验 证平台可以完成对c o r d i c 电路的验证。因而可以保证生成的c o r d i c 软核的 功能的正确性,可以直接用于系统集成。该平台所采用的思想对类似的常用电 路也具有一定的可借鉴性。 本论文的内容安排如下: 第2 章首先描述了c o r d i c 算法的基本原理及其两种工作模式,然后进行 了c o r d i c 算法的定点化设计,详细分析了定点c o r d i c 运算产生的误差,并 提出了减小误差的方法。 第3 章首先设计出了用于数字下变频中的c o r d i c 电路,包括旋转模式和 相角模式的电路。然后详细描述了c o r d i c 电路所能采用的实现架构,并分别 给出了不同实现架构电路的仿真结果,最终选择串并结合的方式来实现所需的 c o r d i c 电路。在c o r d i c 电路设计中作了两点改进:一是采用输入预处理的 方法扩大了c o r d i c 运算的范围;二是简化了系统增益的处理。 第4 章首先阐述了一致性验证的原理,然后采用c a d e n c e 公司的验证工具 l d v 5 1 完成了对c o r d i c 电路的功能仿真,使用n o v a s 公司的d e b u s s y 查看生 成的波形,最后将c o r d i c 电路在f p g a 芯片上实现并在开发板上进行了测试, 验证所设计的电路的功能正确性。 第5 章首先按功能对c o r d i c 电路的结构进行了划分,对不同应用场合下 的c o r d i c 电路的结构进行了比较,分析确定d 核生成平台的控制参数后,采 用c 语言构造出了c o i i c 的r t l 代码生成平台,然后设计出了与r t l 代码 生成平台相对应的可配置一致性验证平台用于验证生成的c o r d i c 软核的功 能。 第6 章总结了全文所做的工作,并对下一步的研究工作做了一定的展望。 3 武汉理工大学硕士学位论文 第2 章c o r d i c 算法及其定点化 本章首先描述了c o r d i c 算法的基本原理及其两种工作模式旋转模式 ( r o t a t i o nm o d e ) 和相角模式( v e c t o r i n gm o d e ) 。由于定点实现方式比浮点实现消耗 的硬件资源更少而且性能更优,因此对c o r d i c 算法进行了定点化设计,分析 了定点运算产生的误差并提出了减小误差的方法。 2 1c o r d i c 算法 2 1 1c o r d i c 基本原理 假设在直角坐标系下有向量( x ,y ) ,按图2 - 1 所示的方向旋转角度得到向量 ( ,朋) ,则二者的关系可以表示为: y x , 。= :x y c c o 。s s ( ( j 痧) ) - + y x s s i i l l n ( ( j ) ) ( 2 - 1 ) 上式可以进一步写为: 髓黝害:嬲 y 图2 1 直角坐标系下的向量旋转 如果对式( 2 2 ) 中描述的旋转角度矽进行限制,使其满足t a n ( 0 ) = 2 ,则乘 4 武汉理工大学硕士学位论文 积项就可以简化为移位操作。如果想要旋转任意的角度日,则可以通过1 1 次连续 旋转一系列指定的角度毋来完成,即将护分解成为1 1 个依次递减的小旋转角度 幺= a r c t a n ( 2 一) 之和,亦即 p = d ,幺 ( 2 3 ) 其中d , _ 1 ,1 ,当顺时针旋转时d ,= - 1 ,当逆时针旋转时吐= 1 。 由于每次旋转的角度为预定义的值,即c o s ( e ;) 是常数,因此旋转任意角度9 的迭代处理可以写成如下的公式: 一“f i x , 咄d i211(2-4) 【y f + 1 = k f y i + x f d i 2 叫】 其中: 墨= 兀c o s ( a r c t a n ( 2 叫) ) = n ( 1 1 + 2 2 ) k ;可以在系统的其它部分处理( a p 不一定在c o r d i c 中处理) ,或者可以直 接作为系统的增益来处理。事实上,当i 趋近于无限的时候,k ,取得极限值 0 6 0 7 3 ,因此k ;可以看作是一个常量【6 1 。 如果对k i 另作处理,则式( 2 4 ) 中仅有移位和加减运算,特别适合硬件直接 实现,为硬件快速计算三角函数提供了一种新的方法,这也是提出c o r d i c 算 法的初衷。在迭代过程中,为了跟踪已经旋转的角度,还需引入一个新的变量, 将其定义为: z “l = z f d f a r c t a n ( 2 1 )( 2 5 ) 表示第i 次旋转后剩下的未旋转的角度。其中d ;与前面一样,表示旋转方向。而 a r c t a n ( 2 q ) 的值可以预先求出保存在存储器中。式( 2 4 ) 和( 2 5 ) 构成了c o r d i c 算 法的基本迭代关系。 根据d ,取值的判定方式的不同,c o r d i c 算法可以分为旋转模式( r o t a t i o n m o d e ) 和相角模式( v e c t o r i n gm o d e ) 两种。 2 1 2 旋转模式 设跟踪旋转过的角度的变量的初始值z o = 秒,进过1 1 次旋转迭代后,使得 z 。= 0 ,此时有: s 武汉理工大学硕士学位论文 这样的模式称为旋转模式 弘铲孑:。 ( 2 - 6 ) ( 2 7 ) 可以看出,旋转模式用于实现将一个矢量旋转预定角度的操作,即已知初 始矢量以及需要旋转的角度,求旋转完成后得到的新的矢量。 如果令x o = 1 p ,y o = 0 ,= p 则有 j j 一= p x o c o s ( z o ) 一y 。s m ( z 。) 】= c o s ( 口)( 2 8 ) 【y 。= p 【y o c o s ( z o ) - i - x o - s i n ( z o ) 】- s i n ( 0 ) 、7 由此可见,c o r d i c 算法的旋转模式可以用来计算一个指定输入角的正弦和余 弦值【7 1 。 2 1 3 相角模式 设跟踪旋转过的角度的变量的初始值z 。= 秒,进过n 次旋转迭代后,使得 y 。= 0 ,此时有: 咖p 嚣 , 这样的模式称为旋转模式。由式( 2 4 ) 及( 2 5 ) 可得: x n = p 而2 + y 0 2 y 一- 0( 2 1 0 ) iz 。= 口+ a r c t a n ( y o x o ) ip 16 4 7 可以看出,相角模式用于计算一个矢量的相位角以及模,即给定一个向量, 通过将其旋转到直角坐标系的x 轴上得到它的相位角以及模。 如果令口= 0 ,则有 6 麓 以k 帆 耵 鬈一 武汉理工大学硕士学位论文 臣二蠕 - , 由此可见,c o m i c 算法的相角模式可以用来计算向量( 而,y 。) 的模和相位。 显然它也可以用于将直角坐标转换为极坐标,还能进行开方运算8 1 。 2 2c o r d i c 的定点化设计 数字信号运算的定点( f i x e d p o i n t ) 硬件实现比相应的浮点( f l o w i n g p o i n t ) 实现 需要的运算更少,因而消耗的硬件资源更少,系统的成本以及功耗也就更低。 实验研究表明,数字信号处理的定点实现可以工作在更高的时钟频率下,但所 需的硬件资源只相当于相应浮点实现的二分之一甚至三分之一【9 】。定点运算的这 些优点使得它在现代集成电路设计中被广泛采用。 本文中设计的c o m i c 电路采用的是定点实现方式,具体而言就是要将每 次迭代的角度值只= a r c t a l l ( 2 一) 进行定点量化,根据运算要求选择合适的整数位 及小数位的位宽。 2 2 1c o r d i c 的定点量化 对于一个定点数而言,它能表示的数值的范围与精度是一对矛盾:数值范 围越小,精度就越高;而数值范围越大,精度就越低。开发者要想表示比较大 的数值范围,则必须以牺牲精度为代价【1 0 】。在实际的定点算法中,为了能达到 最佳性能,必须充分考虑到这一点。 将浮点数瞑= a r c t 锄( 2 一) 进行定点量化的关系式为: 矽( 后) = f l o o r ( 2 川幸a r c t a n ( 2 一) + o 5 ) ( 2 - l2 ) 其中k 代表的是迭代的次数,n 代表的是所取的精度,即表示小数部分的位宽。 n 值越大,数的精度就越高。但是定点数的字长是有限的,因而如果n 值过大, 则表示整数部分的位就变少了,能表示的数的范围就变小了。上式中的f l o o r 是 向下取整操作,加上o 5 是为了减小在取整过程中产生的截断( t r u n e a t e ) 误差。 因此对于字长确定的定点数,合理确定其中分别表示整数位及小数位的位 数是非常重要的,也就是要对式( 2 1 2 ) 中的n 选择合适的值。 7 武汉理工大学硕士学位论文 2 2 2 定点c o r d i c 的误差分析 对于浮点的c o r d i c 运算,其误差主要是由迭代次数带来的。由于浮点数 可以表示的数的范围以及精度都比较大,不会带来误差。但是c o r d i c 本身是 一种逼近型的算法,因而不论进行多少次迭代都不会消除误差,得到的只是一 个近似的结果。只能采取措施使误差尽可能地小,使之达到系统的要求【l 。 对于定点的c o r d i c 运算的误差,则包括三个方面:( 1 ) 谚= a r e t a n ( 2 。) 的 量化误差;( 2 ) 算法本身的误差;( 3 ) 迭代过程中的r o u n d ( 截尾) 误差。 由式( 2 1 2 ) 可得出每次迭代的角度值的定点值,如下面表2 1 中所示。 表2 1 不同n 值情况下矽( 七) 的值 n 矽( o ) 矽( 1 )矽( 2 )矽( 3 )矽( 4 )矽( 5 ) 1 65 1 4 7 13 0 3 8 51 6 0 5 58 1 5 04 0 9 12 0 4 7 1 5 2 5 7 3 51 5 1 9 28 0 2 74 0 7 5 2 0 4 51 0 2 4 1 41 2 8 6 77 5 9 64 0 1 32 0 3 71 0 2 35 1 2 1 3 6 4 3 33 7 9 7 2 0 0 61 0 1 85 1 l2 5 6 1 23 2 1 61 8 9 91 0 0 35 0 92 5 61 2 8 1 l 1 6 0 86 9 5 5 0 22 5 51 2 8 6 4 1 08 0 34 7 42 5 01 2 76 43 2 94 0 12 3 71 2 56 43 21 6 82 0 01 1 86 23 21 68 71 0 05 83 11 684 64 92 91 58 4 2 52 41 48421 从上表可以看出,在n 值一定的情况下,随着k 值越来越大,矽( 七) 的值越 来越小,最后可能会等于0 。这样就会造成后面的迭代没有意义了,因此标的精 度即n 的值要取得恰当。实际操作时可以直接取一个较大的精度如n = 2 0 ,需要 不同的精度就通过移位来得到,例如需要1 9 位精度就右移1 位。 在每次的迭代中,乘以2 。是由诸如y 【k 】 l 【的右移操作来实现的,这会带 来r o u n d 误差。当r o u n d 误差过大的时候,迭代就没有意义了。r o u n d 误差可以 通过扩展输入位宽来补偿,也就是把输入精度提高。但扩展位宽会带来硬件面 8 武汉理工大学硕士学位论文 积的增大,因此要选合适的补偿位宽,一般经验值为三= l o g :k ( k 是迭代次 数) 【12 1 。l 的值取4 时,就迭代1 6 次,对应的精度就是1 6 位。 综上所述,提高定点精度的办法有两种:一是增加迭代次数k ,二是当迭代 没有效果时就说明输入精度不够,那就需要扩展位宽。最理想的情况是能达成 二者的统一。 2 3 本章小结 本章首先描述了c o r d i c 算法的基本原理及其两种工作模式,然后进行了 c o r d i c 算法的定点化设计,详细分析了定点c o r d i c 运算产生的误差,并提 出了减小误差的方法。 9 武汉理工大学硕士学位论文 第3 章c o r d i c 电路的设计 从所完成的功能上来看,c o r d i c 算法有两种工作模式:旋转模式和相角 模式。旋转模式用于实现将一个矢量旋转预定角度的操作,而相角模式用于计 算一个矢量的相位角以及模。本章首先完成了用于数字下变频的旋转模式和相 角模式c o r d i c 电路的设计,然后详细描述了c o r d i c 电路所能采用的实现架 构,分别给出了采用不同实现架构的电路的仿真结果,为所需的c o r d i c 电路 选择了合适的架构。 3 1 数字下变频 本文中设计的c o r d i c 电路主要用于系统的数字下变频、频率偏移校正等 场合。下图3 - 1 中所示的是数字下变频的结构框图。 图3 1数字下变频结构框图 其中数字混频器将数字中频信号和正交本振信号相乘,生成i q 两路混频信 号,将所需的信号下变频至零中频;抽取滤波器组用于低通滤波,滤除带外信 号,提取有用信号;重采样滤波器组以低速率采样,生成低速的基带信掣1 3 】。 幅角变换模块用于计算v q 两路信号的幅度和相位,自动增益控制( a g c ) 模块根据幅角变换模块提供的信号幅值对低通滤波后的小信号提供足够的增 益,从而优化不同输入信号电平时后级模块的位分辨率。 武汉理工大学硕士学位论文, 这里的数字混频器和幅角变换模块都是用c o r d i c 算法来完成的。由于数 字混频器要完成正余弦信号的产生以及i q 两路信号的混频功能,因而采用旋转 模式的c o r d i c 来实现;幅角变换模块要完成信号的幅值和相位的计算,因而 采用相角模式的c o r d i c 来实现。 3 2 旋转模式c o r d i c 电路的设计 如前所述,这里用旋转模式c o i m i c 电路完成对数字下变频的输入中频信 号进行混频。旋转模式c o r d i c 电路接收输入的向量以及需要旋转的角度,对 输入向量进行有限次数的迭代后,生成旋转以后的向量,这一过程完成的就是 中频信号与正交本振信号的相剩1 4 】。由于c o r d i c 算法本身的特性,这里同时 完成了正交本振信号的生成与相乘操作,而且过程中只有移位和加减操作,大 大降低了设计的复杂度以及资源消耗。 旋转模式c o r d i c 电路的工作流程图如下图3 2 中所示。 输入数据! 细角度位 1 路数据 q 路数据 数 教 图3 2 旋转模式c o r d i c 电路的工作流程图 1 1 武汉理工大学硕士学位论文 可以看出,c o r d i c 算法的迭代形式,使得在实现时可以采用流水的结构, 整个c o r d i c 混频模块是对c o r d i c 迭代单元的多次级联例化。 输入的角度值的作用只是控制向量的迭代过程,理论上迭代完成以后它的 值应该变为0 ,因此输出中没有与角度相关的值。由于可能采用不同的架构来实 现,因而完成一次完整的运算所需的时间也就是时钟周期数是不同的,这里需 要使用输入有效信号来指示何时输入了新的向量,以及输出有效信号来表明何 时迭代完成。 上图所示的旋转模式的c o i i c 电路的信号流向以及功能描述如下表3 1 中所示。 表3 - 1 旋转模式c o r d i c 的输入输出端口 端口名称数据位宽信号流向功能描述 c l k1 l n p u t 系统时钟 r s tn1 l n p u t异步复位 r 髓o o t 1 i n p u t同步复位 d 玳v1 i n p u t输入有效 i 玳 可变 i n p u t输入矢量1 分量 q _ i n 可变 i n p u t输入矢量q 分量 z 玳可变 i n p u t 需要旋转的角度 io u t 可变 o u t p u t输出矢量1 分量 q - o u t可变 o u t p u t输出矢量q 分量 d o u tv1 o u t p u t 输出有效 对于输入的向量、要旋转的角度以及输出的向量,因为在不同的应用场合 下所需的数的精度是不同的,因而它们的数据位宽都是可变的,它们的实际位 宽要根据应用场合的运算精度来决定。 3 3 相角模式c o r d i c 电路的设计 这里使用相角模式c o r d i c 电路来计算数字下变频的基带输出信号的模值 反馈给自动增益控制模块,对小信号提供足够的增益,从而优化不同输入信号 电平时后级模块的位分辨率【1 5 】。相角模式接收输入的向量,通过将其旋转到直 角坐标系的x 轴上并记录旋转过的角度,最后可以得到它的相位角以及模。其 武汉理工大学硕士学位论文 工作流程图如下图3 - 3 中所示。 叠帅 数 教 图3 3 相角模式c o r d i c 电路的工作流程图 上图所示的相角模式的c o r d i c 电路中各个信号的流向以及功能描述如下 表3 - 2 所示。 表3 - 2 相角模式c o r d i c 的输入输出端口 端口名称数据位宽信号流向功能描述 c l k1 i n p u t系统时钟 r s tn1 i n p u t 异步复位 r e b o o tl i n p u t 同步复位 d nvl i n p u t 输入有效 i 可变 i n p u t输入向量1 分量 qi n可变i n p u t输入向量q 分量 m o do u t可变 o u t p u t向量的模 p ho u t可变 o u t p u t向量的相位 d o u l v 1 o u t p u t 输出有效 与旋转模式c o r d i c 电路类似,相角模式c o r d i c 电路也需要输入有效信 武汉理工大学硕士学位论文 号d i nv 和输出有效信号d o u tv ,并且向量及角度的数据位宽也是可变的。 不同的是在旋转模式中需要输入角度值来指定要旋转的角度,而在相角模式中 是输出旋转完成以后累计转过的角度值。 3 4c o r d i c 电路的实现架构 从可以采用的实现架构上来看,c o r d i c 电路有三种实现方式:( 1 ) 全串行 方式;( 2 ) 全并行方式;( 3 ) 串并结合方式【1 6 1 。全串行方式是指只用一个迭代单元 进行反复迭代,全并行方式是指用1 1 个迭代单元并行操作,在每一级加入流水 寄存器,串并结合方式是指用m ( 1 m n ,m 是1 1 的约数) 个迭代单元并行操作【1 7 】。 3 4 1 全串行方式 采用全串行的实现方式是指不论一次向量旋转要进行多少次迭代,都只使 用一个迭代单元来完成,将迭代单元的输出反馈到输入端以供下一次迭代时使 用。因此对于需要n 次迭代的向量旋转,每n 个时钟周期才能产生一个输出结 果。以旋转模式为例,下图3 - 4 中所示为其全串行实现方式。相角模式的模型与 之类似,只是输入输出信号有些不同,结构基本上是相似的。 迭代t 1 次 图3 4 全串行实现方式模型 为了简洁,上图中没有画出所有的输入输出信号,只给出了与迭代运算相 关的信号。下图3 5 中所示的是总迭代次数为1 6 次的旋转模式c o r d i c 电路的 全串行实现方式的仿真结果。 武汉理工大学硕士学位论文 酊一 3 4 2 全并行方式 采用全并行方式是指使用与向量旋转所需的总共迭代次数相同个数的迭代 单元来并行处理,将前一级迭代单元的输出作为后一级迭代单元的输入。因此 当所有迭代单元满负荷工作时,经过周有的初始等待时间后,每个时钟周期都 能产生一个输出结果。以旋转模式为例,下图3 - 6 中所示为其全并行实现方式的 模型图。相角模式与之类似,只是输入输出信号有些不同,电路结构基本上是 相似的。 i - - 1 一一 l 一一 一一- 1xo l i t - 二叫h卜一叫h 卜一 ! 。u 。l ! i l ! 4 i 21 一。u 。l 二三 一! i :14i 二k 一”1 “ : 一j l - - j o 一一j j 一n 十r 4 i 图3 - 6 全并行实现方式模型 武汉理工大学硕士学位论文 为了简洁,上图中没有画出所有的输入输出信号,只给出了与迭代运算相 关的信号。下图3 7 中所示的是总选代次数为1 6 次的旋转模式c o r d i c 电路的 全并行实现方式的仿真结果。 n hg 叫_ 胁m 1 a m t m h i o ; 一mo,” 日pb r 丁= 1 n ; 图3 7 旋转模式全并行c o r d i c 电路的仿真结果 这里用于迭代的基本单元1 6 个即采用1 6 级流水线操作。其中c l k2 0 m 为时钟信号,x1 n 和y 分别为输入向量的x和y分量,z为要旋转的_in 角度,d 斟一v 为输入有效信号。xo u t 和y o u t 分别为输出向量的x 和y 分量,d o u t 为输出有效信号。从上陶中可以看出,由于采用了流水线操作,_v 经过初始的1 6 个周期的等待时间之后,每个时钟周期都可以产生一个向量旋转 完成后的结果,因而这里每个时钟周期都可以送入一个新的输入数据。 3 43 串并结合方式 采用串并结合方式是指使用m 个迭代单元( 1 m o ,则将它输入向量预先顺时针旋转9 0 。; 如果z 。 o , 则将初始向量预先顺时针旋转9 0 ;如果只c o ,则将初始向量预先逆时针旋转 9 0 。旋转模式的预处理结果如袁5 - 2 所示。 表3 - 4 旋转模式中输入预处理的结果 输入角度z 旋转预处理变换后角度z变换后膏变换后y 一1 8 0 。z 一9 0 。逆时针9 0 0一9 0 。z o 。 一矗x o 一9 0 。s z 。s o o逆时针9 0 0 0 0 z s 9 0 0 一矗五 o 。z os 9 0 。 顺时针9 0 0 一9 0 0 z o 。 匕一以 9 0 。z 。18 0 。 顺时针9 0 0 0 0 ! z s9 0 。 丘一鼠 35 2 系统增益处理 在前面描述c o r d i c 算法基本原理的时候已经指出,多次c 0 1 l d i c 选代会 产生系统增益,这个增益具有极限值06 0 7 3 。也就是说对于多次选代后产生的 武汉理工大学硕士学位论文 结果向量,必须再乘以这个系数后才是最终的结果【2 1 1 。 但是用硬件直接实现乘法运算是非常消耗资源的,而且这里要实现的是乘 以一个小数,硬件电路势必更加复杂,这与使用c o r d i c 算法的初衷是相违背 的。 可以考虑将乘以小数的操作分解为多次运算来降低硬件实现的难度。对于 0 6 0 7 3 有: 0 6 0 7 3 6 2 2 1 0 2 4 ( 3 - 2 ) 这里除以1 0 2 4 可以通过右移l o 位( 2 1 0 = 1 0 2 4 ) 来实现,而右移操作适合于 硬件直接实现。因而这里仅需要考虑如何用一种简单的方法来实现乘以6 2 2 的 定系数乘法操作。 为了便于硬件实现,对于定系数的乘法,可以考虑采用分解为移位加减的 方式来实现。例如对于将一个数a 乘以1 5 的操作,可以由下式来实现: 彳幸1 5 = 彳木( 1 1 1 1 ) 2 ( 3 - 3 ) = ( 彳 3 ) + ( 彳 2 ) + ( 彳“1 ) + a a 乘以1 5 的操作还可以由下式( 5 - 4 ) 来实现: 4 宰1 5 = a 宰( 1 1 1 1 ) 2 = a 宰( 1 0 0 0 0 ) 2 一a 宰( 0 0 0 0 1 ) 2 ( 3 4 ) = ( 么 0 时,说明旋转量还不够, 需要继续逆时针旋转;当z 0 时,需要顺时针旋转;当y 0 时,需要逆时针旋转;当y = 0 时旋转完成。 在各种应用场合中系统对数据吞吐量的要求是不同的,即对于迭代结果的 武汉理工大学硕士学位论文 产生速度的要求有快有慢。对于数据吞吐量要求较高的场合,可以使用多个迭 代单元并行运算,从而可以快速产生迭代结剽4 1 1 。而对于数据吞吐量要求不高 的场合,则可以使用单个迭代单元来串行运算或数目较少的迭代单元以串并结 合的方式运算,达到节省资源的目的。 因此,在构造c o r d i c 的口核生成平台时,对c o r d i c 电路的迭代单元需 要两个参数来控制其生成:一是工作模式参数用于决定选用哪种迭代控制方式; 二是实现架构即流水线级数来决定使用多少个基本迭代单元。这里的基本迭代 单元可以以库文件的方式提供,需要多少个基本单元就对其进行多少次的实例 化。 5 1 3 控制逻辑的比较 控制逻辑用于产生c o r d i c 电路的其它各个部分所需的控制信号,主要包 括对迭代单元的运算过程的控制,输出增益处理单元的控制以及指示向量旋转 完成的输出有效信号。 为了得到正确的运算结果,必须借助控制信号来使电路有序完成各个动作。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论