verilog时钟分频设计
参考:
https://blog.csdn.net/moon9999/article/details/75020355
1.偶分频模块设计
偶分频意思是时钟模块设计最为简单。首先得到分频系数M和计数器值N。
M = 时钟输入频率 / 时钟输出频率
N = M / 2
如输入时钟为50M,输出时钟为25M,则M=2,N=1。偶分频则意味着M为偶数。
因此只需要将counter以clk_in为时钟驱动计数,当counter = (N-1)时,clk_out翻转即可
2.奇分频模块设计
奇分频需要通过两个时钟共同得到。首先得到分频系数M和计数器值N。
M = 时钟输入频率 / 时钟输出频率
N = (M-1) / 2
如输入时钟为50M,输出时钟为10M,则M=5,N=2。奇分频则意味着M为奇数。
clk_out为最终输出时钟,clk_out1和clk_out2为辅助时钟生成。
计数器counter由0技术至(M-1)。
clk_out1在在clk_in的上升延跳变,条件是counter==(N-1)或(M-1)。
clk_out2在在clk_in的下降延跳变,条件是counter==(N-1)或(M-1)。
之后clk_out = clk_out1 & clk_out2即可得到M分频的时钟。