用Verilog实现glitch free时钟切换电路。输入sel,clka,clkb,sel 为0输出clka,sel为1输出clkb。
注意:
1 保持时钟完整性才能切换;所以添加的时钟使能信号在各自时钟的上升沿触发切换。
2 两时钟使能信号不能同时有效,故,对方不使能自己才能使能(弊端:空等一个周期)
verilog如下
//输入sel,clka,clkb,sel 为0输出clka,sel为1输出clkb。
module selclk2(
input clka,
input clkb,
input rst_n,
input sel,
output clk_out);
reg clka_en, clkb_en;
//clka_en 保持时钟完整性才能切换
always@