APP下载

基于NCO IP core的Chirp函数实现设计

2010-05-13亮,汪敏,高亦菲,高冠男

现代电子技术 2009年20期

董 亮,汪 敏,高亦菲,高冠男

摘 要:首先分析Chirp函数在频域上的一般特性,并且分析Altrea 公司提供的数控振荡器知识产权核(NCO IP core)的输入/输出特性,通过MegaCore环境确定其输入控制字,通过外围逻辑电路实时向NCO IP core调入控制频率控制字以达到改变输出频率的目的,并通过在示波器上观测FPGA的运行情况,验证了该设计具有很好的输出效果。

关键词:NCO IP core;FPGA;Chirp函数;MegaCore

中图分类号:TP311文献标识码:A

文章编号:1004-373X(2009)20-020-03

Design and Implementation of Chirp Function Based on NCO IP core

DONG Liang1,2,WANG Min2,GAO Yifei2,GAO Guannan2

(1.Graduate School of Chinese Academy of Science,Beijing,100049,China;2.Yunnan Observatory,Chinese Academy of Science,Kunming,650011,China)

Abstract:This design analyses the character of Chirp function in the time and frequency domain zone.And after analyzing the input/output feature of the NCO IP core.The different output frequency by writing different controlling words which can be determined from the MegaCore environment.The FPGA′s running situation by oscillograph to inspect and verify feature of the design is detected.The conclusion that this design can get the Chirp′s function perfectly.

Keywords:NCO IP core;FPGA;Chirp function;MegaCore

0 引 言

IP就是知识产权核或者知识产权模块的意思。在EDA技术和开发领域具有十分重要的作用,在半导体产业中IP定义为用于ASIC或FPGA/CPLD中预先设计好的电路功能模块。IP可以分为软IP,固IP和硬IP三种。

随着电子系统的越来越复杂,PLD设计的越来越庞大,这就增加了市场对IP核的需求,各大FPGA/CPLD厂商陆续推出了许多IP核。例如:FIR(有限冲击响应)数字滤波器 core;FFT(快速傅里叶变换)core,NCO(数控振荡器)core等,在设计中如果使用了这些知识产权核可以大大简化FPGA/CPLD的设计,加速设计速度,缩短研发周期,并且较之于开发者自己的设计程序,这些IP有更好的运算精度、速度、SFDR参数、SNR参数等,达到良好的效果!

由于电磁波在传输过程中,经过色散介质,如不均匀的波导经过高空电离层时会发生色散现象。Chirp函数在射电天文信号的消色散处理中发挥着重要的作用,研究在FPGA中实现Chirp函数是基于FPGA的射电宇宙信号处理的重要组成部分。如图1所示。

图1 基于FPGA的射电宇宙信号处理框图

该设计就是通过实时的改变NCO IP core的输入频率控制字的办法,数控频率输出的办法实现Chirp函数。

1 系统总体设计

Chirp函数根据输出频率的递变规律一般分为两种[1,2]:线性Chirp函数和非线性Chirp函数,以下是两种Chirp函数在频域上的表现如图2,图3所示。

图2 线性Chirp函数

图3 非线性Chirp函数

从图2,图3可以看出Chirp函数的频率输出与时间的f-t关系可以总结为:

对于线性Chirp函数:

在连续域时间域内有关系式:

fout=kt+f0(1)

式中:k为常数;f0为初始输出频率;t为连续时间。

在离散时间域有关系式:

fout=kn+f0(2)

式中:k为常数;f0为初始输出频率;n为采样点。

对于非线性Chirp函数:在连续域时间域内有关系式:

fout=f(t)+f0(3)

式中:f(t)为非线性函数;f0为初始输出频率;t为连续时间。

在离散时间域有关系式:

fout=f(n)+f0(4)

式中:f(n)为非线性函数;f0为初始输出频率;n为采样点。

由上式可以看出Chirp函数在每一个时刻点具有不同的频率输出,而根据具体的频率变化的需要在每一个时刻点实时的改变其频率控制字是实现Chirp函数的关键。其算法框图如图4所示。

图4 总体设计框图

2 NCO IP Core

数字压控振荡器知识产权核[8](Numerically Controlled Oscillators Intellectual Property Core,NCO IP Core),通过多种算法(相位累加或者CORDIC算法,在此不一一赘述),实现了一个离散幅度和时间的正弦波信号输出。输入控制字和输出频率之间满足以下方程:

s(nT)=Asin[2π(f0+fFM)nT+φPM+φDITH)](5)

式中:T为该模块的工作时钟;f0是由输入频率控制字φINC决定的初始频率;fFM是由调制频率控制字φFM决定的调制频率;φPM为该输出正弦波的调制相位,φPM=P/2Pwidth,由输入控制字P的比特位数(Pwidth)决定了它的精度;φDITH为模块内部自身的不稳定而引起的相位杂散(噪声);幅值量A=2N-1,其中N为幅值精度取值在4~32之间。

该设计中仅采用通过改变频率控制字φINC,以实现改变频率输出的目的,为此式(5)可以简化为:

s(nT)=Asin[2π(f0nT+φDITH)](6)

式中,f0由给定的频率控制字φINC决定,满足如下方程:

fo=φincfclk/2M(7)

式中:M为累加器精度;fclk为该模块的输入时钟频率,单位为Hz。例如:在fclk=100 MHz的情况下,如果需要f0=10 MHz的输出,φINC的计算如下:

φINC=10×106100×106×232=4 294 967 296(8)

通过Altera公司的FPGA编程软件Quartus Ⅱ提供的MegaWizard Plug-In Manager功能,在NCO IP Core 参数配置中自动对φINC的计算,很容易得出在输入频率的条件下所需输出频率的φINC(累加器精度为32 b的情况下)如图6所示。

图5 NCO IP内部算法框图

图6 利用MegaWizard Plug-In Manager计算φINC

值得注意的是:在MegaWizard Plug-In Manage中,φINC的精度只保留到了百位。

3 频率控制字寄存器及驱动单元的设计

频率控制字寄存器为一个保存有N个输出频率所需的相位累加控制字的片上ROM单元,其作用在驱动单元输入地址控制字的作用下实时向NCO IP Core调入所需要的φINC,在该设计中Chirp函数的频率变化规律是从1 MHz步进1 MHz输出到16 MHz。在该设计中选择的累加器精度为32 b,为此选择的逻辑单元的规律为如表1所示。

表1 选择的逻辑单元的规律

第N频点φINCf0/MHz第N频点φINCf0/MHz

142 949 67319386 547 0579

285 899 346210429 496 73010

3128 849 019311472 446 40311

4171 798 692412515 396 07612

5214 748 365513558 345 74813

6257 698 038614601 295 42114

7300 647 711715644 245 09415

8343 597 384816687 194 76716

为此,建立一个深度为16,每个存储单元字长32 b位的ROM,将表1内所有φINC数据保存至nco116.mif文件中,在ROM建立时调用该mif文件。如图7所示。

图7 建立的mif文件内部数据一览

两者连接关系如图8所示。

图8 频率控制字寄存器与NCO IP Core的连接图

在设计中,通过不同时间点向频率控制字寄存器写入不同的地址信号驱动,使存储器输出不同的频率控制字驱动NCO IP Core,产生不同的频率信号输出。

该设计中采用两个计数器级联作为驱动单元,首先第一级计数器将钟频率降至需要的Chirp函数输出某频点的稳定时间范围,将第一级计数器的进位端作为第二级计数器的时钟输入端;第二级计数器的作用是,产生地址信号以驱动频率控制字存储器输出相应的控制字,当前级进位信号有效时该计数器输出加“1”,以达到改变频率输出的目的,其连接电路图如图9所示。

图9 驱动逻辑电路的实现图

4 仿真与验证

将该设计通过将程序下载到Altera公司生产的DSP开发板[2,3](型号DK-DSP-2C70N)中进行仿真,其核心FPGA(型号为EP2C70F672C6)的资源使用情况如图10所示。

图10 该设计中核心FPGA的资源使用情况

并通过该开发板上D/A转换器输出模拟波形(只截取了4个时刻的图样)如图11所示。

图11 该设计在示波器(型号DSO3201A)上的显示波形

通过图11可以看出该设计能很好地完成扫频输出的功能,并且杂波分量很小,干扰很小。

5 结 语

该设计通过采用技术成熟的NCO IP Core完成,其优势在于:

(1) 利用了成熟的FPGA知识产权技术,使得设计更加简便并易于移植;

(2) 利用NCO IP Core的高稳定性,使得Chirp函数的各项噪声较之于其他设计更小,有利于对射电天文这样微弱信号的处理,减少了处理带来的各种噪声。

参考文献

[1]Altera Corporation.NCO MegaCore Function User Guide[Z].2006.

[2]Altera Corporation.Cyclone II DSP Development Board Re-ference Manual[Z].2006.

[3]Altera Corporation.DSP Development Kit,Cyclone II Edition Getting Started User Guide[Z].2006.

[4] 卞小林,胡生亮,赵佩丽,等.基于Nios Ⅱ软核处理器的波形发生器设计[J].电子测量技术,2008,31(5):181-183.

[5]罗苑棠.CPLD/FPGA常用模块与综合系统设计实例精讲[M].北京:电子工业出版社,2007.

[6]Lyne A G,Joshi B C,Ikin T,et al.Holloway CORBA-A Digital Receiver at Jodrell Bank.

[7]潘松,黄继业,曾毓.SoPC技术实用教程[M].北京:清华大学出版社,2005.

[8]Altera Corporation.Cyclone II Device Handbook(All sections)[Z].2005.

[9]孟宪元,钱伟康.FPGA嵌入式系统设计[M].北京:电子工业出版社,2007.