全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

基于相位累加器的任意分频原理解析

时间:2020-11-29 10:19

人气:

作者:admin

标签: FPGA 

导读:在大部分的教科书中,都会提到如何分频,包括奇数分频,偶数分频,小数分频等。 1、DDS相位累加器 (1)DDS合成流程 首先讲述DSS(直接频率合成法)的原理。 DDS是重要的频率合成方...

在大部分的教科书中,都会提到如何分频,包括奇数分频,偶数分频,小数分频等。

1、DDS相位累加器

(1)DDS合成流程

首先讲述DSS(直接频率合成法)的原理。

DDS是重要的频率合成方法,在波形发生器中有极其重要的应用。DDS主要由以下几部分组成:
a) 相位累加器
b) RAM数据读取
c) D/A转换器
d) 低通滤波器

直接频率合成法的流程图,有固定模块,输入频率控制器,输出固定频率的波形。如下图:


此电路最主要模块是相位累加器,通过相位累加器循环计数,循环读取RAM的数据,从而得到固定频率的波形数据。

(2)相位累加器原理

相位累加原理流程如下:


输入频率控制字,根据算法,来实现相位的变化,分析如下所示:

假定FPGA基准频率为50MHz,即基准频率:


假定计数器为32位计数器,即:


K为频率控制字,则相位输出的频率为:


即:


根据相位累加原理,以及RAM缓存读取数据,每一次0~(N-1)的循环, RAM数据间隔K读取一次。当K=1的时候,公式能输出最小频率,即:


最小波形频率步进为0.011655Hz。当fo=1Hz的时候:


所以,频率每变化1Hz,K的步进为85.90。当K=N/2的时候,公式能输出最大频率(因为每个CLK跳变一次),此时:


因此,根据频率控制字K的变化,能输出及固定频率的波形。

2、任意频率分频原理

在FPGA中某些应用场合,对频率要求比较高的情况下,用相位累加器原理来生成固定频率的方法,未尝不可。


我们规定,对Cnt进行对半50%拆分,具体如下:当cnt < N/2时,f0 = 0,也就是低电平;而当cnt > N/2时,f0 = 2,也就是低电平。

同理:





在FPGA中应用,Verilog代码如下所示:

/***************************************************
* Module Name : clk_generator
* Engineer : Crazy Bingo
* Target Device : EP2C8Q208C8
* Tool versions : Quartus II 9.1SP1
* Create Date : 2011-6-25
* Revision : v1.0
* Description :  
**************************************************/
/*************************************************
fc = 50MHz 50*10^6
fo = fc*K/(2^32)
K = fo*(2^32)/fc
= fo*(2^32)/(50*10^6)
**************************************************/
module clk_generator
#
(
parameter FREQ_WORD = 32'd8590 //1KHz
)
(
input clk, //50MHz
input rst_n, //clock reset
output reg clk_out
);
//************************************************/
reg [31:0] max_value;
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
max_value <= 1'b0;
else
max_value <= max_value + FREQ_WORD;
end
//****************************************************/
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
clk_out <= 1'b0;
else
begin
if(max_value < 32'h7FFF_FFFF)
clk_out <= 1'b0;
else
clk_out <= 1'b1;
end
end
endmodule
/*******************************************************/

本模块可应用在多个对频率精准度要求比较高的工程中(如UART中,需要115200Hz的bps,用这种任意分频的原理来得到精准的方法,一定程度上能够提高数据传输的准确率)。

DDS中的相位累加器的任意分频原理,在一般工程中同样可以应用。在某些应用场合,还是值得考虑的。
编辑:hfy


温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信