题解 | #时钟切换#

时钟切换

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

`timescale 1ns/1ns

module huawei6(
	input wire clk0  ,
	input wire clk1  ,
	input wire rst  ,
	input wire sel ,
	output reg clk_out
);
//*************code***********//

//******切换电路
reg	Q0,Q1;
always@(negedge clk0 or negedge rst)
begin
	if(!rst)
		Q0	<=	0;
	else
		Q0	<=	~sel & ~Q1;
end

always@(negedge clk1 or negedge rst)
begin
	if(!rst)
		Q1	<=	0;
	else
		Q1	<=	sel & ~Q0;
end
//***************
always@(*)
begin
    clk_out = (clk0 & Q0) | (clk1 & Q1);
end

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

同步时钟切换仿真波形应该是如下这样的,题目给的参考不对。

PS:如果是异步时钟切换,则对于clk0和clk1的下降沿DFF再打一拍即可。

全部评论

相关推荐

10-29 19:45
吉林大学 Java
从零开始数:自我评价没有必要写,但是看起来你应该是学了csdiy的一些课程,可以在专业技能里面写上自己比较熟悉操作系统和计网,但如果你是找Java的话,把第一个项目换了吧,现在看起来有点四不像。 无论是黑马点评或者说做个轮子项目,刷题和八股也搞起来吧,而且也没必要等到寒假,最近就可以开始找,找到就偷偷实习呗,别被逮到就行了。
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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