微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > fpga分频(精准且不需要考虑奇偶分频)

fpga分频(精准且不需要考虑奇偶分频)

时间:10-02 整理:3721RD 点击:
/*2017.3.12 zc in xiandian
核心是有一个n位的寄存器
Fo=clk*K/2^N; k是步进值,Fo是想要的频率
作用:更加精准的分频程序 而且不需要考虑奇偶分频,只需要知道你要分的频率*/
module division(input clk_50M,
            input reset,
                                output up);
reg[31:0] cnt;
reg divid;
parameter span=13194139; //步长 fo=fc*k/2^N; k为步长
always@(posedge clk_50M)
begin
        if(!reset)
                cnt<=0;
        else
                if(cnt<=32'hffff_ffff)
                   cnt<=cnt+span; //9600*16
                else
                        cnt<=0;
end
always@(posedge clk_50M)
begin
        if(!reset)
                divid<=0;
        else
                if(cnt<=32'h7fff_ffff)
                        divid<=1;
                else
                        divid<=0;
end
reg temp;
always@(posedge clk_50M)
begin
        if(!reset)
                temp<=0;
        else
           temp<=divid;               
end
assign up=(~temp && divid)?1'b1:1'b0; //检测上升沿
endmodule

上一篇:FPGA程序
下一篇:fpga按键去抖

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top