基于FPGA的正交数字混频器中数控振荡器的设计与实

时间:2009-08-31来源:网络

z表示第次旋转时与目标角度之差,n次旋转后,式经次迭代可以得到以下结果z输入,通过、两式的迭代运算,迭代结果输出的n和n就是所需要的三角函数值。

FPGA实现

1是数控振荡器的顶层电路结构。可以看到,频率控制字寄存器将接收到的的频率控制字送入相位累加器,相位累加器对系统时钟进行计数,每到达输入频率控制字的值即对相位进行累加,随后将累加值送入相位相加器,与相位控制字寄存器接收到的初始相位相加,得到当前的相位值。其中,相位累加器是决定性能的一个关键模块,可以利用器件的进位链实现快速、高效的电路结构。然而由于进位链必须位于临近的逻辑阵列块和逻辑单元内,所以长的进位链会减少其它逻辑使用的布线资源;同时,过长的进位链也会制约整个系统速度的提高。因此,设计中采用进位链和流水线技术相结合的办法。采用以上做法实现的相位累加器既能保证具有较高的资源利用率又能大幅提高系统的性能和速度。

/余弦相位序列,将此序列送入基于算法的波形发生器,最终获得两路正交的正余弦输出序列。

CORDIC运算迭代单元,然后在系统时钟的驱动下,将本级的输出作为本级的输入,通过同一级迭代完成运算。这种方法虽然很直观但是为了将计算结果提供给下一级运算,会占用大量的寄存器资源,带来许多额外的资源消耗。而且其最大的缺点是运算速度较慢需要个时钟周期才能输出一个数据,不利于数据的高速实时处理。

2所示的由级运算单元组成的流水线结构,正常工作时只需一个时钟周期就能输出一个数据,为数据实现高速实时处理提供了保障。每一级实现的功能是根据式进行一次迭代,移位的位数等于当前的迭代级数,加减法选择由该级中的最高位符号位决定,得到下一级的、和的值。经过级流水线运算后,的值变为,和的值则为初始值0的余弦和正弦值。每一级电路结构主要包括两个移位器和三个加减法器,arctan(2),可将该小数转换为二进制数后,保存于存储单元中,为每一级流水线提供查找表。

n级迭代序列:,则迭代所能覆盖的角度范围仅有的迭代,将迭代序列扩展从而使角度覆盖范围也扩大。

Altera公司的软件,采用对上述数控振荡器结构进行描述,在上通过功能仿真,结果正确后综合出电路网表,最后将程序下载至器件780C6中实现。

Stratix器件,该器件的位加减器工作频率可以达到以上,从而为产生高速的正交信号提供高速可靠的工作时钟。考虑到的工作时钟瓶颈是在相位累加器,因此可以根据具体需要缩减相位累加器的位数来提高的工作时钟频率。本文设计的工作时钟为,相位累加器的位数为位,输入的频率控制字为,根据公式: ,,其中为输入的频率控制字,clk为工作时钟,为相位累加器位数,可算出输出的正余弦信号的频率out=30MHz,频率分辨率。频率分辨率说明:通过输入频率控制字来改变输出正余弦信号的频率时,可以达到的最小步进。另外,也可以根据实际需要的频率改变输入频率控制字值。当然,输出频率的上限要受到定律的限制,即out的最大值为clk/2,实际设计一般不大于clk。

3为数控振荡器的部分仿真时序图。

FPGA器件中利用迭代算法产生正余弦信号。可以看到,该数控振荡器不但省去了传统庞大的存储器资源,仅用移位寄存器和加法器就可产生正余弦信号,结构简单,非常适用于在正交数字混频器中进行高速高精度的数字调制解调。

1 2

关键词: FPGA 正交数字 混频器 数控振荡器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版