描述
题目描述:
存在两个同步的倍频时钟clk0 clk1,已知clk0是clk1的二倍频,现在要设计一个切换电路,sel选择时候进行切换,要求没有毛刺。
信号示意图:
波形示意图:
输入描述:
clk0 clk1为时钟
rst为低电平复位
sel 是时钟选择器
输出描述:
clk_out 信号输出
`timescale 1ns/1ns
module huawei6(
input wire clk0 ,
input wire clk1 ,
input wire rst ,
input wire sel ,
output reg clk_out
);
//*************code***********//
reg p0, p1;
always @(negedge clk0, negedge rst) begin // sel切换在clk低电平处切换clk可避免毛刺
if (~rst) begin
p0 <= 1'b0;
end else begin
p0 <= ~sel & ~p1;
end
end
always @(negedge clk1, negedge rst) begin
if (~rst) begin
p1 <= 1'b0;
end else begin
p1 <= sel & ~p0;
end
end
always @(*) begin
clk_out = (p0 & clk0) | (p1 & clk1);
end
//*************code***********//
endmodule