题解 | #时钟切换#

时钟切换

https://www.nowcoder.com/practice/1de5e9bf749244cb8e5908626cc36d36

`timescale 1ns/1ns

module huawei6(
	input wire clk0  ,
	input wire clk1  ,
	input wire rst  ,
	input wire sel ,
	output wire clk_out
);
//*************code***********//
reg sel_clk0;
reg sel_clk1;
wire sel_clk0_n;
wire sel_clk1_n;
wire sel_clk0_in;
wire sel_clk1_in;
wire sel_clk1_out;
wire sel_clk0_out;
//*************code***********//
assign sel_clk1_n = ~sel_clk1            ;
assign sel_clk1_in = sel & sel_clk0_n   ;//告诉另一个时钟沿已经关闭

assign sel_clk0_n = ~sel_clk0            ;
assign sel_clk0_in = (~sel) & sel_clk1_n;//告诉另一个时钟沿已经关闭
assign sel_clk0_out = clk0 & sel_clk0    ;//搬移到低电平跳变的sel 信号
assign sel_clk1_out = clk1 & sel_clk1    ;//搬移到低电平跳变的sel 信号
//下降沿触发器
always@(negedge clk1 or negedge rst)
begin
	if(!rst)
		sel_clk1<=0;
	else
		sel_clk1<=sel_clk1_in;
end

always@(negedge clk0 or negedge rst)
begin
	if(!rst)
		sel_clk0<=0;
	else
		sel_clk0<=sel_clk0_in;
end

assign clk_out = sel_clk1_out|sel_clk0_out;
endmodule
//避免毛刺:1.当一路时钟使能的时候,必须知道另一路时钟已经关闭(避免竞争冒险,触发器反向输出反馈) 2.sel切换信号必须在两个时钟低电平的时候跳变,防止产生尖峰(下降沿打拍)

全部评论

相关推荐

02-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
AI求职实录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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