您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

基于FPGA和SRAM的数控振荡器的计划与实现

发布日期:2011-04-19

 
    择要:先容数控振荡器的事变原理,重点叙述用现场可编程门阵列(FPGA)和静态随机存储器(SRAM)实现数控振荡器的要领,同时给出采取此布局计划的数控振荡器的特点和性能。
    关键词:数控振荡器(NCO);查找表;XC2V1000;CY7C1021;计划中图分类号:TN914.3 文献标识码:A 文章编号:1006—6977(2006)01—0022一03


1 小序
  数控振荡器是数字通讯中调制解调单位必不可少的部分,同时也是种种数字频率合成器和数字信号产生器的内核。随着数字通讯技能的生长。对发送数据的精度和速率请求越来越高。怎样得到可数控的高精度的高频载波信号是实现高速数字通讯体系必须办理的题目。可编程逻辑器件和大容量存储器的生长为这一题目的办理带来了曙光。本文先容怎样用FPGA(现场可编程逻辑门阵列)和SRAM(静态随机存储器)实现高精度数控振荡器。


2 NCO概述
  
NCO(Numerical Controlled Oscillator)即数控振荡器用于孕育产生可控的正弦波或余弦波。着实现的要领如今重要有谋略法和查表法等。谋略法以软件编程的方法通过及时谋略孕育产生正弦波样本.该要领耗时多且只能孕育产生频率相对较低的正弦波.而必要孕育产生高速的正交信号时,用此要领无法实现。因此,在实际应用中一样平常采取最有效、最大略的查表法,即事先根据各个NCO正弦波相位谋略好相位的正弦值。并以相位角度作为地点把该相位的正弦值数据存储在表中,然后通过相位累加孕育产生地点信息读取当前时候的相位值在表中映射的正弦值,从而孕育产生所需频率的正弦波。

  用查表法实现NCO的性能指标取决于查表的深度和宽度,即取决于表现相位数据的位数(查表存储器地点线的位数)和表现正弦值数据的位数(查表存储器数据线的位数)。改进NCO性能最大略和最底子的要领是加大查找表的深度和宽度。如今,用查找表法实现NCO的广泛做法是用片内ROM作为查找表,由于片内资源的限定,查找表的深度和宽度一样平常不会很大(通常为256x8 bits),大大限定了NCO性能的进步。用独立的大容量SRAM作为查找表,把查找表从片内移到片外,可以较好办理这个题目。基于这种头脑,笔者告成地用FPGA(Xilinx公司的XC2V1000型门阵列)和SRAM(Cypress公司的CY7C1021型存储器)实现了NCO。

3 NCo的实现
3.1 布局计划

  用FPGA和SRAM实现的NCO的布局如图1所示。大框内部分是由FPGA完成.重要部件分为频率控制字寄存器、相位控制字寄存器、通道控制字寄存器、累加器、加法器、通道选择器和锁存器等。微处理惩罚器对NC()举行控制,可用单片机或DSt,(数字信号处理惩罚器)实现。

3.1.1 频率控制字寄存器、相位控制字寄存器、累加器和加法器
  频率控制字寄存器和相位控制字寄存器都是32位并行输入,并行输出寄存器,它们通过微处理惩罚器接口举行读写。频率控制字寄存器确定载波的频率.相位控制字寄存器确定载波的初始相位。32位累加器对代表频率的频率控制字举行累加运算,累加结果与代表初始相位的相位控制字通过32位加法器举行相加运算.相加结果的高16位数据读取查找表的地点信息。频率控制字寄存器、相位控制字寄存器、累加器和加法器可以用VHD[.语言形貌,集成在一个模块中,其VHDL源步伐如下:

  

3.1.2通道控制字寄存器和通道选择器
  通道控制字寄存器和频率控制字寄存器与相位控制字寄存器的布局完全一样.都是32位并行输入/并行输出寄存器,通过微处理惩罚器接口举行读写。通道控制字寄存器仅用末了一位对通道选择器举行控制。通道选择器是二选一复用器.当Sel控制端为O时选择通道l,当Sel控制端为1时选择通道2。通道选择器作为SRAM与FPGA的接口.每个通道不但包括16条地点线,并且另有3条控制线和32条数据线。在图l中,为了使NCO的布局越发清楚,通道选择器的控制线和数据线没有表现出来。

3.1.3 SRAM和锁存器
  SRAM是64Kx32的高性能静态RAM.由2个CY7C102l(64KXl6)并联构成,用作查找表。SRAM通过微处理惩罚器举行配置,直接存放2路、1个周期、65 536个16位载波样本(高16位存放正弦波,低16位存放余弦波)。固然SRAM是异步器件,但由于事变速率极高,在大略控制逻辑共同下完全可以事变在同步模式下。NCO事变时.控制逻辑(用VHDL语言形貌)通过通道l使SRAM的控制信号线处于读有效电平,用相位地点直接驱动SRAM.从SRAM读出的数据进入32位锁存器.分2路直接输出.不必要任意地点和数据转换逻辑。用于锁存器的时钟和用于累加器、加法器的时钟在相位上相差180°,这是由SRAM的开关特性决定的。

3.2 NCO的事变进程

  NCO事变前必须对SRAM举行初始化.图2示出NCO的事变流程。起首,微处理惩罚器向通道控制字寄存器写入1,使通道选择器选择微处理惩罚器接口。然后.微处理惩罚器对SRAM举行配置.向SRAM中写入载波样本.接着,微处理惩罚器向频率控制字寄存器和相位控制字寄存器写入频率控制字和相位控制字,确定载波的频率和初始相位.末了,向通道控制字寄存器写入0.通道选择器选择通道l,使NCO处于事景况态。此时微处理惩罚器可以对频率控制字寄存器和相位控制字寄存器举举措态读写,实现对NCO的动态及时控制.完成NCO频率与初始相位的调解。

 


3.3 NCO性能评估
  根据上述布局.笔者计划了一种NCO体系。该体系的事变时钟为80MHz.用DSP作为微处理惩罚器。通过体系测试.该NCO的性能指标到达了计划请求,频率辨别率△f=O.0186Hz,信噪比(SNR)在100dB以上.图3示出NCO的典范特性曲线。


4 布局特点
  用FPGA和SRAM实现数控振荡器有很多特点。

  起首,查找表的容量可以进一步加大。此计划的布局把相位累加部分和查找表退出单独实现.由于FPGA具有可重复编程性且有丰富的I/O资源,因此只要稍加窜改FPGA内的逻辑计划就可以外挂更大容量的SRAM。

  其次,载波样本的数据位数可以机动控制。在查找表容量肯定的环境下,可以根据详细应用调解载波样本的数据宽度。实现的本领有二:一是在对SRAM配置时通过微处理惩罚器以软件编程的方法直接调解SRAM的数据宽度:二是在FPGA内对SRAM输出数据的位数举行截位处理惩罚.可通过调解FPGA中锁存器的输出实现。

  第三,可以或许机动应用到其他范畴中。该NCO只斲丧FPGA中6%的Slices资源,大量资源包括片内RAM和硬件乘法器都没有效到,利用这些资源可以对NCO举行成果扩展,实现数字下变频器(Digital Down Converter-DDC)、数字频率合成器(Direct Digital Synthesizer-DDS)和调制解调器等。

5 结束语

  本文先容了一种新的NCO实现要领,用该要领计划的NCO可实现对载波的频率、相位和幅度的完全控制。由于用独立的大容量SRAM作为查找表,使得NCO有较高的精度。同时该NCO有很大的发挥空间,可以或许机动地运用到其他范畴。