fpga_feixiang 发表于 2017-5-18 11:38:10

verilog 语言实现任意分频

分频器是指使输出信号频率为输入信号频率整数分之一的电子电路。在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器。下面以Verilog HDL 语言为基础介绍占空比为50%的分频器。

1 偶分频

偶分频比较简单,假设为N分频,只需计数到N/2-1,然后时钟翻转、计数清零,如此循环就可以得到N(偶)分频。代码如下。

module fp_even(clk_out,clk_in,rst);

output clk_out;

input clk_in;

input rst;

reg cnt;

reg clk_out;

parameter N=6;



always @ (posedge clk_in or negedge rst)

begin

if(!rst)

       begin

            cnt <= 0;

            clk_out <= 0;

       end

else begin

      if(cnt==N/2-1)

            begin clk_out <= !clk_out; cnt<=0; end

      else

            cnt <= cnt + 1;

      end

end

endmodule

可以通过改变参量N的值和计数变量cnt的位宽实现任意偶分频。

fpga_wuhan 发表于 2017-5-26 10:39:14

必须满分,给力

fpga_feixiang 发表于 2017-6-4 10:18:19

大家学习学习

大鹏 发表于 2018-4-12 09:36:54

谢谢楼主分享!学习了
页: [1]
查看完整版本: verilog 语言实现任意分频