三分频电路
module half_clk(reset, clk_in, clk_out);
input reset, clk_in;
output clk_out;
reg clk_out;
reg[1:0] cnt;

always @(posedge clk_in or negedge clk_in)
    begin
        if(!reset) 
            begin
                cnt <= 2'b00;
                clk_out <= 0;   
            end
        else 
            if(cnt==2)
                begin
                    cnt<=2'b00;
                    clk_out <= ~clk_out;
                end
            else cnt <= cnt+1;          
    end

endmodule

如果想实现n分频,把cnt==2换成cnt==n-1即可,当然cnt的位数也要随之改变,至少能表示n-1吧。同时将clk_out延迟一个clk_in输出可有效减少毛刺现象的影响(倒数第二行加一句clk_out1 <= clk_out)。

六分频电路按照以上说法可以写为

module half_clk(reset, clk_in, clk_out);
input reset, clk_in;
output clk_out;
reg clk_out;
reg[2:0] cnt;

always @(posedge clk_in or negedge clk_in)
    begin
        if(!reset) 
            begin
                cnt <= 3'b000;
                clk_out <= 0;   
            end
        else 
            if(cnt==5)
                begin
                    cnt<=3'b000;
                    clk_out <= ~clk_out;
                end
            else cnt <= cnt+1;          
    end

endmodule

也有另一种写法:

module half_clk(reset, clk_in, clk_out);
input reset, clk_in;
output clk_out;
reg clk_out;
reg[1:0] cnt;

always @(posedge clk_in)        //没有下降沿触发
    begin
        if(!reset) 
            begin
                cnt <= 2'b00;
                clk_out <= 0;   
            end
        else 
            if(cnt==2)
                begin
                    cnt<=2'b00;
                    clk_out <= ~clk_out;
                end
            else cnt <= cnt+1;          
    end

endmodule

还有一些2的幂次方的分频器,有更简单的写法:

module half_clk(reset, clk_in, clk_out2, clk_out4, clk_out8, clk_out16);
input reset, clk_in;
output clk_out2,clk_out4,clk_out8,clk_out16;
wire clk_out2,clk_out4,clk_out8,clk_out16;
reg[3:0] cnt;

always @(posedge clk_in)
    begin
        if(!reset)      
            begin
                cnt <= 4'b0000;
            end
        else cnt <= cnt + 1;
    end
 assign {clk_out16, clk_out8, clk_out4, clk_out2}=cnt;

endmodule

在硬件设计时,还经常遇到要求占空比不是1:1的分频信号,如下面占空比1:7的分频电路:

module half_clk(reset, clk_in,clk_out);
input reset, clk_in;
output clk_out;
reg clk_out;
reg[2:0] cnt;

always @(posedge clk_in)
    if(!reset)              
        cnt <= 3'b000;
    else cnt <= cnt + 1;

always @(posedge clk_in)
    begin
        if(!reset) clk_out <= 0;
        else 
            if(cnt==3'b111)
                clk_out <= 1;
            else
                clk_out <= 0;
    end

endmodule

分频器 | 二分频,三分频,n分频相关推荐

  1. java双音频文件分频_分频电路作用,怎么来理解二分频电路?

    音箱的高中低频主要靠分频器来区分.分频器按分频频段可分二分频.三分频和四分频.二分频是将音频信号的整个频带划分为高频和低频两个频段:三分频是将整个频带划分成高频.中频和低频三个频段:四分频将三分频多划 ...

  2. 16 分频 32 分频是啥意思_Verilog 数字分频器的设计及验证

    1.分频器的概念及应用 分频器是指使输出信号频率为输入信号频率整数分之一的电子电路.在许多电子设备中如电子钟.频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源, ...

  3. 分频器设计(三)小数分频

    前面分频器设计(一)和分频器设计(二)分别介绍了偶数和奇数分频(即整数分频),接下来本文介绍小数分频. 对于要求相位以及占空比严格的小数分频,建议采用模拟电路实现.而使用数字电路实现只能保证尽量均匀, ...

  4. vivado和modelsim联合仿真实现分频器——2的n次方分频

    首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行 创建design文件,代码来源于以下视频 FPGA分频器的设计 module fenpin_2_pow_n(input clk,inpu ...

  5. FPGA三分频,五分频,奇数分频

    我们在做FPGA设计时,有时会用到时钟频率奇数分频的频率,例如笔者FPGA的晶振为50M,当我们需要10M的时钟时,一种方式可以使用DCM或PLL获取,系统会内部分频到10M,但其实VERILOG内部 ...

  6. 分频器 偶分频 奇分频 任意分频

    今天学习了一下分频器及其Verilog实现 1.偶分频 实现一个NUM_DIV分频的分频器,下面代码中 NUM_DIV= 6,占空比50% 设计代码 module divider_even(clk,r ...

  7. 小数分频器实现--以8.7分频为例

    目录 1.如何进行小数分频 2.Verilog实现 3.testbench及仿真结果 1.如何进行小数分频 一般情况下我们会用到三种分频:偶数分频.奇数分频和小数分频.偶数分频最容易实现,且肯定能保证 ...

  8. 16 分频 32 分频是啥意思_CD4017是什么?十进制计数器分频器CD4017的逻辑功能呢?...

    一.CD4017功能概述 CD4017是5位Johnson十进制计数器分频器,时钟输入端的斯密特触发器具有脉冲整形功能,对输入时钟脉冲上升和下降时间无限制,CD4017 提供了16 引线多层陶瓷双列直 ...

  9. 浅谈晶振作用功能、晶体和晶振、外部时钟和内部时钟、分频倍频预分频后分频、定时器和计数器

    Fosc=frequence oscillate 晶振频率 晶振是用来起振的,只是振荡电路的一种,还有自激振荡器.电容三点式振荡器.LC振荡器.RC振荡器......其作用是通电才产生原始时钟频率,这 ...

最新文章

  1. 问题解决笔记,Restarting network (via systemctl):: Job for network.service failed. ...
  2. 复利计算1.0,2.0,3.0
  3. php字符串处理函数大全
  4. linux添加永久变量,linux中永久性变量和临时变量的设置
  5. 删除IBASE component时遇到data_not_consistent的exception
  6. bash shell sed 获取第一行_老司机给出的关于 shell 脚本的8个建议,必收!
  7. 字节跳动AI Lab招聘算法工程师,含全职和实习
  8. 数据埋点与设备指纹/设备反欺诈的区别与联系是什么?
  9. 微软开放技术发布开源 Jenkins 插件以将 Windows Azure Blob 服务用的开作存储库
  10. vscode调试typescript
  11. Java核心技术卷1—— 目录
  12. 转载:机器人工程师学习计划(YY硕)
  13. linux串口编程(termios结构体说明)
  14. steam移动所有文件至新库文件夹失败_VBA进阶 | 文件操作17:File对象与Files集合详解...
  15. 【增强版】快速判断工作簿中是否存在指定工作表
  16. WPF 实现无边框窗口两种方法
  17. AppleScript 小试牛刀
  18. 张家港python培训_张的英文_张翻译_张英语怎么说_海词词典
  19. taskkill /im test.exe /f
  20. 疫情好转,宅在家几个月,历经几个月的投简历、视频面试,突然收到(余额宝)视频面试,四面成功拿下offer

热门文章

  1. python鼠标监听_用Python监听鼠标和键盘事件
  2. 如何在 Linux 中查找一个文件
  3. Ardupilot多旋翼自动规划路径实现绕开障碍物避障
  4. C语言电信优惠套餐推荐系统
  5. AP: Oracle EBS AP INVOICE TAX 税码计算规则(ZT)
  6. draggable 总结
  7. 用网络求t图的几篇论文框架图
  8. 腾讯云乐固客户端加固打包上线流程
  9. android vrs技术,步步高 vivo V1/Y1 智能手机音质测评报告 VRS[vivo signal
  10. 如何格式化日期和时间