题解 | #时钟切换#
时钟切换
https://www.nowcoder.com/practice/1de5e9bf749244cb8e5908626cc36d36
//用DFF来做通过在每个时钟源的选择路径中插入一个负边沿触发的D触发器,可以确保时钟在高电平时,输出保持不变。 通过这种反馈的方式使得在时钟切换时需要等待当前时钟取消选择,从而避免毛刺的产生。 `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) if(!rst) q0<=0; else q0<=~sel&(~q1); always@(negedge clk1 or negedge rst) if(~rst) q1<=0; else q1<=sel&(~q0); always @ (*) begin clk_out <= (q1 & clk1) | (q0 & clk0); end //*************code***********// endmodule