这里对之前写的时钟分频模块做了整合,整合为完整的时钟分频模块,可以进行偶分频、奇分频和半分频。

接口如下:
clk:输入时钟
rst:复位信号
adv_select:分频类型选择,0->偶分频,1->奇分频,2->半分频
M:分频系数,在半分频情况下为向下取整(4.5分频->M=4)
clk_out:输出时钟

通过testbench进行了仿真,分别仿了4分频、9分频和5.5分频
	initial begin  
		adv_select = 2'b00;
		M = 4;
		#1086 adv_select = 2'b01;
		M = 9;
		#1086 adv_select = 2'b10;
		M = 5;
	end

结果如图所示:


代码如下: