zoukankan      html  css  js  c++  java
  • [转载] 任意频率分频原理

    http://blog.chinaaet.com/detail/21535.html

     任意频率分频原理
    任意频率分频原理

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

    wps_clip_image-29426

    我们规定,对Cnt进行对半50%拆分,具体如下:

    (1)当wps_clip_image-28816的时候,wps_clip_image-18980,即低电平;

    (2)当wps_clip_image-19540的时候,fo=1,即高电平。

    同上:

    wps_clip_image-18030

    wps_clip_image-3536

    wps_clip_image-12165

    wps_clip_image-22532

    image

    在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

    本代码由Bingo从DDS相位累加器中,相应移植总结出来的任意频率分频原理,本模块应用在多个对频率精准度要求比较高的工程中(如UART中,要得到115200Hz的bps,用这种任意分频的原理来得到精准的方法,一定程度上能够提高数据传输的准确率)。

    在DDS中的相位累加器的任意分频原理,在一般工程中同样可以应用。在某些应用场合,还是值得考虑的。本应用纯属Bingo个人主观应用,如有异议,请联系本人。

  • 相关阅读:
    向MyEclipse添加Oracle数据库
    如何让搜索引擎抓取AJAX内容?
    XCode常用快捷键
    VMware Workstation 9上安装Mac OS X 10.8
    IOS学习第一篇——利用Xcode中的Interface Builder创建Hello World示例
    FM 101.7
    SqlServer游标操作
    添加COOKIE
    c#活动目录操作
    WCF服务调用方式
  • 原文地址:https://www.cnblogs.com/winkle/p/3440539.html
Copyright © 2011-2022 走看看