基于FPGA和SRAM的数控振荡器的设计与实现
发布时间:2008/5/26 0:00:00 访问次数:510
    
    
    作者:国防科技大学atr实验室 佟力永,肖山竹
    
    摘要:介绍数控振荡器的工作原理,重点阐述用现场可编程门阵列(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的结构更加清晰,通道选择器的控制线和数据线没有表示出来。
&n
    
    
    作者:国防科技大学atr实验室 佟力永,肖山竹
    
    摘要:介绍数控振荡器的工作原理,重点阐述用现场可编程门阵列(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的结构更加清晰,通道选择器的控制线和数据线没有表示出来。
&n
热门点击
- OrCAD/PSpice9偏压点和直流扫描分
- 有限带宽信号的采样和混叠分析
- LTC6910系列数字控制可编程增益放大器原
- 四通道四象限模拟乘法器MLT04
- 可编程多路A/D转换芯片THS1206的原理
- 使用Verilog实现基于FPGA的SDRA
- 基于FCHIP2指纹芯片的应用方案
- PCB线路板抄板方法及步骤
- 基于Nios的掌纹鉴别系统设计与实现
- 模拟/数模混合电路加速仿真技术
推荐技术资料
- 泰克新发布的DSA830
- 泰克新发布的DSA8300在一台仪器中同时实现时域和频域分析,DS... [详细]