欢迎光临
我们一直在努力

[mcj]使用FPGA实现任意分频、二分频

华为学生服务器每月仅需9元!
文章目录
[隐藏]

二分频

二分频应该是最简单的,就是每当检测到输入时钟的高电平时就将输出翻转一下就行了。

实例如下:

激励文件如下:

!!!在这里出现了一个问题,always @ (posedge clk or negedge reset) 如果这样写的话,就会报错Assignment under multiple single edges is not supported for synthesis 只有把negedge换成posege才行,目前还不知道为什么会这样。

三分频

三分频的思想就是通过一个计数器,当累积到一定的数量的时候,就让输出信号进行翻转。这里的3分频占空比不是50%,而是75%。

实例如下

下面这个是我自己写的三分频:

激励文件如下:

任意分频

偶分频N

仿照之前3分频,当计数器记到2的时候,进行翻转。为什么这样呢?因为0代表第一个上升沿,1代表第二个上升沿,2代表第三个上升沿,所以我们想3分频,就需要在第三个上升沿的时候进行翻转,即N分频,就需要在第N个上升沿的时候进行翻转。

实例如下:

激励文件如下:

奇分频N

下面是实例程序,还没有看

关于奇分频的原理,讲解上是这么说的:

实现奇数(N)分频,分别用上升沿计数到(N-1)/2,再计数到N-1;用下降沿计数到(N-1)/2,再计数到N-1,得到两个波形,然后把它们相或即可得到N分频。

任意的

最后一个是非常经典的,可以任意分频,只需要更改K的值即可。

下面是激励文件(只需要更改k的值即可,不过要注意寄存器的大小,不要超了):

本文最后更新于2017年5月21日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

如果你对这篇文章有什么疑问或建议,欢迎下面留言提出,我看到会立刻回复!

打赏
未经允许不得转载:马春杰杰 » [mcj]使用FPGA实现任意分频、二分频
华为学生服务器每月仅需9元!

留个评论吧~ 抢沙发 评论前登陆可免验证码!

私密评论

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址(选填,便于回访^_^)
切换注册

登录

忘记密码 ?

切换登录

注册