一,内容介绍
分频器是数字电路的常见IP,将高频时钟分为低频时钟信号以供外设使用。
下面我们用verilog实现一个偶数分频器
进一步结合奇数分频器组合为整数分频器
再一步升级为小数分频器
二,数字分频器原理
我们都知道,在芯片中有这么一类IP,他们可以根据配置输出不同频率的时钟信号。这类IP包括模拟和数字两大类,这两大类IP的工作原理并不相同。
模拟PLL可以输出高于输入频率的时钟信号,数字分频器则只能够输出低于输入时钟频率的信号。
数字分频器主要是用于将外部晶振或内部PLL输入的时钟进行分频以供不同时钟域的IP使用,在数字电路中,理论上这种由一个模块分频而出的时钟信号可以算作同步时钟信号,但是因为不同时钟的路径不同,抵达端口的延时也不同,因此在实际使用中,我们还是按照不同步的时钟信号进行处理。
偶数数字时钟分频器主要使用计数器对输入时钟进行计数,特别是上升降沿计数,继而进行偶数分频。
三,Verilog实现偶数数字分频器
module INT_DIV (
input clk_i,
input rst_i,
input initial_i,
input [7:0] div_num_i,
output wire clk_out_o
);
reg [7