当前位置: 首页 > article >正文

分频器的设计

分频器是用的最广的一种FPGA电路了,我最初使用的是crazybingo的一个任意分频器,可以实现高精度任意分频的一个通用模块,他的思想在于首先指定计数器的位宽比如32位,那么这个计数器的最大值就是2^32=4294967296,

假设系统时钟为50MHz,那么假如要想实现输出频率为fout,那么可以使用的频率控制字为:

K满足关系:

,那么设计计数器在每个时钟上升沿累加的值为K,当计数值为2^31时,clkout=1;否则clkout=0.最终即可以实现任意频率的输出,精度的计算方法为当K=1时,可以得到clkout=0.0116415321826934814453125Hz,也即是说可以输出的最小频率为0.011Hz

此外我们最为常见的分频器分为以下4种分析:

1.偶数分频

最简单,要想得到分频系数为N的频率输出,设定一个计数器,这个计数器从零开始加1,当加到N/2-1时计数器清零,或者clkout翻转,以此循环,即可实现偶数倍分频。

2.奇数分频(分占空比不确定以及占空比50%)

方法一:分频系数为N,占总比不确定:以三(N)分频为例,上升沿触发计数,计数器计数到1(N-1)/2时输出时钟翻转,计数到2(N-1)时再次翻转.代码为产生1/11占空比为十一分频时钟:在计数值为9和10时均反转时钟,是产生抽样脉冲的有效方法:

always @(posedge clk or posedge rst) beginif(rst)begin   //复位cnt<=0;clk_div11<=0;endelseif(cnt==9) beginclk_div11<=~clk_div11;   //时钟翻转cnt<=cnt+1;    //继续计数endelseif(cnt==10) beginclk_div11<=~clk_div11;   //时钟翻转cnt<=0;    //计数清零endelsecnt<=cnt+1;end

占空比50% ,则可以在上面的基础上,加上一个下降沿触发计数,然后将上升沿和下降沿产生的时钟进行相或运算,即可得到奇数分频输出。

reg clk1;reg[1:0]cnt1;always@(posedge clk or posedge rst) beginif(rst)begin   //复位cnt1<=0;clk1&l
http://www.lryc.cn/news/2413488.html

相关文章:

  • 华硕固件默认ip_斐讯K2/K3路由器掉线严重 刷华硕固件手把手教程
  • 不下载英语包 Vista照样可以玩梦幻桌面
  • 【2024最新高清版】408计算机组成原理考试大纲
  • Career Path(职业前景人生规划)的几点见解
  • 考研阅读唐迟视频总结
  • 微软数据库之微软自带数据库分析
  • 关于如何下载E都市三维地图的教程
  • 树莓派上FFMPEG/VLC播放海康网络摄像仪视频
  • 【正点原子FPGA连载】 第二十六章 高速AD/DA实验-摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
  • 解决 Linux 下mplayer不能显示中文字幕的 问题 !
  • MyEclipse6.0注册码生成类(Java)
  • 微软官方720P、1080P高清测试视频短片下载
  • 函数使得索引列失效
  • 数据链路层:广域网的数据链路层协议
  • 信号正常吗?
  • route print命令详解
  • Kindeditor使用方法
  • 优化算法改进的三个定性分析实验:收敛行为分析,种群多样性分析和探索开发分析
  • 自制 QQ游戏 连连看 外挂 ~~
  • VMware虚拟机win7安装教程
  • 编码器的使用教程与测速原理
  • 捷克论坛新ip_网络文学,文化出海的新路径
  • 找不到msvcr100.dll如何解决,总结5种有效的方法
  • 六个免费的虚拟主机管理系统
  • 向日葵深度linux,完美使用向日葵远程软件
  • 介绍一个不错的免费国外php空间
  • 表白墙网站手把手搭建(网站搭建的详细教程+保姆级解答)
  • python lable文本换行_Python3 Tkinter基础 Label 显示的文字换行
  • oj大大大大维1000: A+B Problem
  • 2005年中国BBS社区100强