本文讨论了时钟切换的两种基本情况以及两种基本电路结构,讨论了一些问题:
下图是一个时钟选择的简单实现以及时序图,使用AND-OR多路复用逻辑,其中SELECT信号为时钟选择信号,如图中所示,直接切换会产生毛刺(glitch)
时钟切换分为两种情况:(1)CLK0与CLK1为相关时钟源,即CLK0与CLK1成整数倍关系;(2)CLK0与CLK1之间没有关系;
(1)CLK0与CLK1为相关时钟源
(2)CLK0与CLK1为无关时钟源
时钟切换源代码:
`timescale 1ns/1ns
module clk_syn_tst (
rst_n,
clka,
clkb,
sel_clkb,
clk_o
);
input rst_n;
input clka;
input clkb;
input sel_clkb;
output clk_o;
reg sel_clka_d0;
reg sel_clka_d1;
reg sel