奇分频

编程入门 行业动态 更新时间:2024-10-24 12:26:26

奇<a href=https://www.elefans.com/category/jswz/34/1767735.html style=分频"/>

奇分频

奇分频

分频法

奇分频采用分频法要比偶分频复杂一些,首先采用上升沿采样得到中间变量clk_1,采用下降沿采样得到中间变量clk_2,然后二者进行或运算得到分频时钟clk_out,这里选择组合逻辑(assign语句),输出信号不会延迟一个周期,这样就得到下图所示的clk_out信号。

分频法代码如下:

module	divider_5
(input		sys_clk		,input		rst_n		,output		clk_out		
);reg		[2:0]	cnt;
reg				clk_1;
reg				clk_2;parameter	N = 5;always@(posedge sys_clk or negedge rst_n)beginif(rst_n == 1'b0)cnt <= 3'd0;else if(cnt == 3'd4)cnt <= 3'd0;elsecnt <= cnt + 3'd1;
endalways@(posedge sys_clk or negedge rst_n)beginif(rst_n == 1'b0)clk_1 <=1'b0;else if(cnt == N/2)clk_1 <= ~clk_1;else if(cnt == N-1)clk_1 <= ~clk_1;elseclk_1 <= clk_1;
endalways@(negedge sys_clk or negedge rst_n)beginif(rst_n == 1'b0)clk_2 <=1'b0;else if(cnt == N/2)clk_2 <= ~clk_2;else if(cnt == N-1)clk_2 <= ~clk_2;elseclk_2 <= clk_2;
endassign	clk_out = (clk_1 | clk_2);endmodule

仿真文件和偶分频一致,这里不再赘述,可参考笔者以前写的偶分频部分。
仿真结果如下:

###降频法
奇分频采用降频的原理和偶分频是一致的,皆是计数值达到N-2(这里N为5)时生成一个脉冲标志信号cnt_flag,然后持续一个周期。如图所示。

代码如下:

module	divider_5
(input		sys_clk		,input		rst_n		,//	output		clk_out	output	reg	cnt_flag
);reg		[2:0]	cnt;
/* reg				clk_1;
reg				clk_2; */parameter	N = 3'd5;always@(posedge sys_clk or negedge rst_n)beginif(rst_n == 1'b0)cnt <= 3'd0;else if(cnt == N-3'd1)cnt <= 3'd0;elsecnt <= cnt + 3'd1;
endalways@(posedge sys_clk or negedge rst_n)beginif(rst_n == 1'b0)cnt_flag <=1'b0;else if(cnt == N-3'd2)cnt_flag <= 1'b1;elsecnt_flag <= 1'b0;
end
endmodule

仿真文件和偶分频一致,仿真结果如图:

更多推荐

奇分频

本文发布于:2024-03-15 07:29:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1738393.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分频

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!