题解 | #任意奇数倍时钟分频#

任意奇数倍时钟分频

https://www.nowcoder.com/practice/b058395d003344e0a74dd67e44a33fae

`timescale 1ns/1ns

module clk_divider
    #(parameter dividor = 5)
( 	input clk_in,
	input rst_n,
	output clk_out
);

reg	[$clog2(dividor)-1:0]	cnt;
reg	clk_n,clk_p;

always@(posedge clk_in or negedge rst_n)
	if(!rst_n)
		cnt	<=	0;
	else	if(cnt ==dividor - 1)
		cnt	<=	0;
	else	
		cnt	<=	cnt + 1;


always@(posedge clk_in or negedge rst_n)
	if(!rst_n)
		clk_p	<=	1'b0;
	else	if(cnt==dividor >> 1)
		clk_p	<=	1'b1;
	else	if(cnt==dividor - 1)
		clk_p	<=	1'b0;

always@(negedge clk_in or negedge rst_n)
	if(!rst_n)
		clk_n	<=	1'b0;
	else	if(cnt==dividor >> 1)
		clk_n	<=	1'b1;
	else	if(cnt==dividor - 1)
		clk_n	<=	1'b0;

assign	clk_out	= (clk_p | clk_n);


endmodule

全部评论

相关推荐

06-07 17:17
嘉兴学院 教师
心爱的idea:你孩
点赞 评论 收藏
分享
炫哥_:哥们项目描述里面vector和mysql之类的都要写吗,直接开头技术栈巴拉巴拉就行了,完全不是技术点啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务