时钟分频及切换(FPGA)

本文介绍了FPGA中的时钟分频技术,包括偶数分频、奇数分频和小数分频的实现原理。对于偶数分频,通过计数器即可实现;奇数分频则需要通过两个偶数倍频的时钟信号进行或操作;小数分频通过切换不同倍频的时钟信号达到目标。此外,文章还讨论了时钟切换的逻辑设计,以避免毛刺现象并确保时钟稳定。
摘要由CSDN通过智能技术生成

时钟分频及切换(FPGA)

最近做fpga的东西,需要做小数分频。把那个小东西完成了之后就来写一下时钟分频和切换的一些比较基础的东西。

偶数分频

偶数分频是很简单的东西。直接定义一个寄存器来记数然后根据寄存器记数来翻转就可以得到目标的偶数分频时钟信号了。

`timescale 1ns/1ns

module even_div
    (
    input     wire rst ,
    input     wire clk_in,
    output    reg clk_out2,
    output    reg clk_out4,
    output    reg clk_out8
    );
//*************code***********//
    reg [3:0] clk_cnt;
    always@(posedge clk_in or negedge rst)
        begin
            if(!rst)
                clk_cnt<=4'd0;
            else
                clk_cnt<=(clk_cnt==4'd7)?4'd0:(clk_cnt+1'b1);
        end

    always@(posedge clk_in or negedge rst)
        begin
            if(!rst)
                begin
                    clk_out2<=1'b0;
                    clk_out4<=1'b0;
                    clk_out8<=1'b0;
                end
            else
                begin
                        clk_out2<= ~clk_out2;
                    if(clk_cnt==4'd0||clk_cnt==4'd2||clk_cnt==4'd4||clk_cnt==4'd6)
                        clk_out4<= ~clk_out4;
                    if(clk_cnt==4'd0 || clk_cnt==4'd4)
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值