当前位置:   article > 正文

使用Verilog对FPGA系统时钟分频_verilog产生1mhz时钟

verilog产生1mhz时钟

        FPGA提供的是50M的系统时钟clk,在具体设计的时候需要对时钟分频以满足各个模块的要求,此处因为我要使用传感器,传感器的读写时序是以微秒计算的,于是需要对clk进行50分频产生1MHz的分频时钟。此处使用计数器的方法进行分频,这种方法是一种加法器的变形电路,实现较为简单。

        偶数分频的分频系数N,通过时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,以此循环下去,此处使用50分频,于是反转条件为50/2-1=24 

  1. always @ (posedge clk or negedge rst_n)
  2. begin
  3. if (!rst_n) begin
  4. cnt <= 5'b0;
  5. clk_1us <= 1'b0;
  6. end
  7. else if(cnt < 5'd24)
  8. begin
  9. cnt <= cnt + 1'b1;
  10. clk_1us <= clk_1us;
  11. end
  12. else begin
  13. cnt <= 5'b0;
  14. clk_1us <= ~clk_1us;
  15. end
  16. end

经过编写testbench程序在modelsim里进行仿真得到如下仿真图

如图在10ns之前由于复位信号未产生作用,信号处于不定态(红线),而1010ns时完成一个时钟周期,所以T=1000ns,即0.000001s,T=1s/1M,完成50分频得到1M信号的既定功能。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/411139
推荐阅读
相关标签
  

闽ICP备14008679号