题解 | #占空比50%的奇数分频#

占空比50%的奇数分频

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

`timescale 1ns/1ns

module odo_div_or
   (
    input    wire  rst ,
    input    wire  clk_in,
    output   wire  clk_out7
    );

//*************code***********//

/*

reg [2:0] cnt;
always@(posedge clk_in or negedge rst)begin
	if(!rst)begin
		cnt <= 0;
	end
	else if(cnt == 3'd6)begin
		cnt <= 0;
	end
	else begin
		cnt <= cnt + 1'b1;
	end
end
//上升沿产生3个时钟周期的高电平,4个时钟周期低电平
reg clkp_div7_r;
always@(posedge clk_in or negedge rst)begin
	if(!rst)begin
		clkp_div7_r <= 0;
	end
	else if(cnt == 2)begin      //3,4,5,6=0
		clkp_div7_r <= 0;
	end
	else if(cnt == 6)begin      //0,1,2=1
		clkp_div7_r <= 1;
	end	
end

//下降沿产生3个时钟周期的高电平,4个时钟周期低电平
reg clkn_div7_r;
always@(negedge clk_in or negedge rst)begin
	if(!rst)begin
		clkn_div7_r <= 0;
	end
	else if(cnt == 2)begin
		clkn_div7_r <= 0;
	end
	else if(cnt == 6)begin
		clkn_div7_r <= 1;
	end	
end

//或操作,往往使用基本逻辑单元库
// or (clk_out7,clkp_div7_r,clkn_div7_r);
assign clk_out7 = (clkp_div7_r | clkn_div7_r);

*/

reg [2:0] cnt;
always@(posedge clk_in or negedge rst)begin
	if(!rst)begin
		cnt <= 0;
	end
	else if(cnt == 3'd6)begin
		cnt <= 0;
	end
	else begin
		cnt <= cnt + 1'b1;
	end
end
//上升沿产生3个时钟周期的高电平,4个时钟周期低电平
reg clkp_div7_r;
always@(posedge clk_in or negedge rst)begin
	if(!rst)begin
		clkp_div7_r <= 0;
	end
	else if(cnt == 3)begin      //4,5,6=1
		clkp_div7_r <= 1;
	end
	else if(cnt == 6)begin      //0,1,2,3=0
		clkp_div7_r <= 0;
	end	
end

//下降沿产生3个时钟周期的高电平,4个时钟周期低电平
reg clkn_div7_r;
always@(negedge clk_in or negedge rst)begin
	if(!rst)begin
		clkn_div7_r <= 0;
	end
	else if(cnt == 3)begin
		clkn_div7_r <= 1;
	end
	else if(cnt == 6)begin
		clkn_div7_r <= 0;
	end	
end

//或操作,往往使用基本逻辑单元库
// or (clk_out7,clkp_div7_r,clkn_div7_r);
assign clk_out7 = (clkp_div7_r | clkn_div7_r);



//*************code***********//
endmodule

全部评论

相关推荐

码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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