3263|6

1891

帖子

2

TA的资源

纯净的硅(中级)

楼主
 

【FPGA代码学习】实践一下FPGA时钟分频 [复制链接]

以前小伙伴一起讨论过关于  关于  FPGA 时钟分频?  这些奇葩的分频,可能也只在IC内部用的到吧,由于好奇,我也来尝试一下。
一、 具有50% 占空比的奇数的整数分频
对时钟进行N分频,创建由时钟沿触发的计数器,计数到N-1
对于3分频,从0计数到2   即是 N=3
对于3分频,从0计数到3   即是 N=4
……


图:3分频




代码如下:

  1. module half_clk_dai(
  2.                      clk_in,
  3.                      rst,
  4.                      clk_out,
  5.                      cnt
  6.                      );
  7. input clk_in;
  8. input rst;
  9. output clk_out;
  10. output [0:1] cnt;
  11. reg clk_out;
  12. reg [0:1] count= 2'b00;
  13. assign cnt = count;
  14. always@(posedge clk_in or negedge rst or negedge clk_in)
  15. begin
  16.    if(!rst)
  17.      clk_out<=0;
  18.    else
  19.      begin           
  20.        if(count==2)
  21.          begin
  22.            count=0;
  23.            clk_out<=~clk_out;
  24.          end
  25.       else
  26.          count=count+1;
  27.      
  28.      end
  29.      
  30. end

  31. endmodule  
复制代码



二、非50%占空比的非整数分频

实现一个 4.5 倍分频,占空比为40%,不含毛刺。

图:4.5倍分频 40% 占空比


代码如下:
  1. module half_clk_dai(
  2.                     clk_in,
  3.                     rst,
  4.                     clk_out,
  5.                     cnt
  6.                     );
  7. input clk_in;
  8. input rst;
  9. output clk_out;
  10. output [0:1] cnt;
  11. reg clk_out;
  12. reg [0:2] count= 3'b00;
  13. reg  [0:1] flag=2'b00;
  14. reg [0:3]temp =4'b0011;
  15. assign cnt = count;
  16. always@(posedge clk_in or negedge rst or negedge clk_in)
  17.   begin
  18.     if(!rst)
  19.       clk_out<=0;
  20.     else
  21.       begin
  22.         if(count == temp )
  23.             begin
  24.               count=0;
  25.               clk_out<=~clk_out;
  26.               if(flag==2)
  27.                 begin
  28.                   if(temp==3)temp=4;
  29.                   else temp=3;
  30.                   flag = 0;
  31.                 end
  32.               flag=flag+1;
  33.             end
  34.         else
  35.             count=count+1;

  36.       end

  37.     end

  38. endmodule
复制代码


三、小结


分频主要是对时钟的操作,以及计数器的实现。

参考:   群聊天
   网络
《硬件架构的艺术》

此帖出自FPGA/CPLD论坛

最新回复

已阅!  详情 回复 发表于 2015-10-8 16:16
点赞 关注
个人签名
分享铸就美好未来。。。




 

回复
举报

6423

帖子

17

TA的资源

版主

沙发
 
赞一个
此帖出自FPGA/CPLD论坛
个人签名training
 
 

回复

975

帖子

2

TA的资源

纯净的硅(初级)

板凳
 
此帖出自FPGA/CPLD论坛
 
 
 

回复

2700

帖子

0

TA的资源

五彩晶圆(初级)

4
 
作业已收!
此帖出自FPGA/CPLD论坛

点评

小玉老师,快写评语。。。  详情 回复 发表于 2015-10-8 16:14
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 
 

回复

1891

帖子

2

TA的资源

纯净的硅(中级)

5
 

   
小玉老师,快写评语。。。
此帖出自FPGA/CPLD论坛

点评

已阅!  详情 回复 发表于 2015-10-8 16:16
个人签名
分享铸就美好未来。。。




 
 
 

回复

2700

帖子

0

TA的资源

五彩晶圆(初级)

6
 
574433742 发表于 2015-10-8 16:14
小玉老师,快写评语。。。

已阅!
此帖出自FPGA/CPLD论坛

点评

果然是小玉老师  详情 回复 发表于 2015-10-8 16:23
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 
 

回复

1891

帖子

2

TA的资源

纯净的硅(中级)

7
 

  果然是小玉老师
此帖出自FPGA/CPLD论坛
个人签名
分享铸就美好未来。。。




 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表