如何得到低频时钟信号

[复制链接]
1641|5
 楼主| hank2014 发表于 2016-4-18 16:49 | 显示全部楼层 |阅读模式
使用的是spartan6,晶振是50MHz,需要得到1MHz的信号,如何才能得到呢?
xmar 发表于 2016-4-18 17:15 | 显示全部楼层
module 50mto1m(clk, fout);
  input clk;
   
  output fout;
  reg fout;
  reg [6:0] count=0;
  
  always @(posedge clk)
    begin
      count <= count + 1;
      if(count == 1)
        fout <= 0;
      else if(count == 25)
        fout <= 1;
      else if(count == 50)
        count <= 0;
    end
  
endmodule
玄德 发表于 2016-4-18 21:15 | 显示全部楼层
xmar 发表于 2016-4-18 17:15
module 50mto1m(clk, fout);
  input clk;
   


这鱼基本被送完了。


提醒LZ,再加上复位就全了。


 楼主| hank2014 发表于 2016-4-19 08:27 | 显示全部楼层
xmar 发表于 2016-4-18 17:15
module 50mto1m(clk, fout);
  input clk;
   

非常感谢xmar的回复,很详细。这种分频计数的方式很普遍。我的应用是:通过50MHz的时钟信号,得到1MHz的低频时钟信号,这个1MHz的时钟信号在程序中要用作时钟,我的疑惑就是:用这种分频计数得到的低频时钟可以用作时间基准吗?
xmar 发表于 2016-4-19 08:31 | 显示全部楼层
时间基准最好用FPGA内部锁相环更好。时钟抖动更小。
 楼主| hank2014 发表于 2016-4-19 08:45 | 显示全部楼层
xmar 发表于 2016-4-19 08:31
时间基准最好用FPGA内部锁相环更好。时钟抖动更小。

说得太对了,用这种分频计数的方式,最担心的就是时钟的抖动和延迟,所以,很担心这种效果。问题是:赛灵思spartan6如何用PLL得到低频1MHz的时钟信号呢? 谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

29

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部