9.EP4CE10F17的NCO使用

前记:师夷长技以自强


1.基本概念

NCO: numerically controlled oscillators 数控振荡器,可以合成一个时间和只域上离散的正弦波,常作为通信系统的正弦载波发生器。

在Quartus II中,nco是以ip核的形式提供的,只需要简单配置几个参数即可。

2.使用简介

对于Quartus II 13.0版本,打开ip核的向导的方式是Tools->MegaWizard Plug-In Manager,然后搜索nco即可在DSP目录下找到,弹出的界面如下

其中只需三步即可完成nco的配置和生成,其中Step3只是一个生成命令,Step2是选择是否生成仿真模型和网标文件,Step1是配置参数的,下面主要说明Step1中的一些参数。

在产生波形的方案中有四种选择,Small ROM是只存储部分的正弦波形到rom中,Large Rom是存储完整的正弦表到rom中,CORDIC是一种直角坐标系下旋转的方法,Multiplier-Based是基于乘法器的方法。前面两个都是基于查找表的,后面两个都涉及数学运算。不同的波形产生方案所产生的波形的质量是不同的,它们的谐波分量可以在频率响应图谱中找到。

相位累加器精度和角度精度可以类比于DDS的框图,但是nco的框图毕竟不同,欲深究可以查看手册。还有nco默认采用100MHz的输入时钟,而系统的clk为50MHz,这里是采用片上PLL解决的,具体使用细节在下一篇文章中会介绍。

这个界面基本上是一些输入输出的控制,为了使频率和相位是可控的,需要勾选图中的两个复选框,并设置频率控制字和相位控制字的宽度。nco是可以多通道输出的,一般情况下使用单通道的正弦和余弦同时输出即可。

这个界面是fpga片上资源的使用情况,与第一个界面中选择的波形产生方案有关。

注:笔者在点击Step3时,在“Generating Megacore function top-level”这里卡了很久,经上网查询后得知需要在进程管理中杀掉quartus_map.exe进程,然后生成才能继续,也算是一个小插曲吧。

3.仿真

需要注意的是nco生成的目录应该工程文件所在的目录,否则仿真的时候会报找不到某些模块的错误。仿真的操作也很简单,只需添加nco_tb.v仿真文件即可。

在DDS中有一条公式

F_{out}=B\times \frac{F_{clk}}{2^{N}}

然而在nco中确是

F_{out}=B\times \frac{F_{clk}+\varphi }{2^{N}}

这里,已经把nco_tb.b中的phi 修改为 32'b0。

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值