全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

verilog实现简单分频器的方案

时间:2023-06-28 16:17

人气:

作者:admin

标签:   单分  频器  实现  Verilog 

导读:偶数分频最为简单,很容易用模为N的计数器实现50%占空比的时钟信号,即每次计数满N(计到N-1)时输出时钟信号翻转。...

偶数分频原理

偶数分频最为简单,很容易用模为N的计数器实现50%占空比的时钟信号,即每次计数满N(计到N-1)时输出时钟信号翻转。

以4分频为例,波形图如下:

图片

奇数分频原理

方法一

使用模为2N+1的计数器,让输出时钟在X-1(X在0到2N-1之间)和2N时各翻转一次,则可得到奇数分频器,但是占空比并不是50%(应为 X/(2N+1))。

得到占空比为50%的奇数分频器的基本思想是:将得到的上升沿触发计数的奇数分频输出信号CLK1,和得到的下降沿触发计数的相同(时钟翻转值相同)奇数分频输出信号CLK2,CLK1和CLK2占空比不是50%而是低电平2周期,高电平1周期。

最后将CLK1和CLK2相或之后输出,就可以得到占空比为50%的奇数分频器。时序图如下,红线就是我们要的50%占空比三分频结果:

图片

方法二

和方法一唯一的区别是,CLK1和CLK2相反,高电平变低电平,低电平变高电平,最终输出的分频时钟是CLK1&CLK2。所以注意区别。波形图如下:

图片

整数数分频原理

总结1和2,设整数位N,当N为偶数时,cnt>1)。这是一个编程的技巧。

代码的一些具体技巧我将它放在了代码注释里面,希望大家好好看看。

设计思路

很多人在问我,拿到一个设计的时候如何去找思路。相信这也是很初学者的疑惑。一般推荐按照以下步骤来设计,一步步解决。

1.分解功能模块——分解到每个模块你都是能够想得到办法解决的为止,前期不要练习复杂的模块,推荐练习的有今天的各种分频,以后还可以尝试分数分频,UART,localbus,SPI,IIC这些是我推荐给大家练习的,由易到难。

2.每个分解的最小功能模块画出时序图,就像今天文章里分频的时序图一样,主要是帮你了解到每个时钟周期是怎么工作的,原理上是怎么实现的,时序图一出来,整个思路都清晰了。

3.组合功能模块,保证模块之间的时序是满足要求的,自底向上往上堆,每堆一个模块仿真一下,堆到顶层通过顶层仿真就算初步完成了功能的要求

设计整数分频

上面说了方法这里我们来试验下

1.分解模块功能,也就是画出总体框图

图片

2.画时序图,每个分频模块的时序图前面已经画过了,奇偶选择没有时序图,就是一个选择开关,奇数分频系数选择奇数分频模块输出,偶数分频系数选择偶数分频输出。

3.拼凑——奇偶分频各写一个alwyas,最后加上奇偶选择,如果不熟悉可以分成两个单独的.v文件写,最后封装到顶层。

设计在以上步骤以及完成了,现在我们来看看仿真结果:

图片

7分频

图片

6分频

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信