参考文章
单bit信号跨时钟域
你真的懂2-flop synchronizer吗-- CDC的那些事(2)
常见数电面试题Pulse Synchronizer – CDC的那些事(3)
单bit信号跨时钟域(2)
电平同步(level synchronization)
打两拍
`timescale 1ns / 1ps
module level_syn(
input clk1,
input clk2,
input rst_n,
input in_data,
output reg out_data
);
reg in_data_clk1;
always@(posedge clk1 or negedge rst_n)
begin
if(!rst_n)
in_data_clk1<=0;
else
in_data_clk1<=in_data;
end
reg in_data_clk2_delay1;
always@(posedge clk2 or negedge rst_n)
if(!rst_n)
begin
in_data_clk2_delay1<=0;
out_data<=0;
end
else
begin
in_data_clk2_delay1<=in_data_clk1;
out_data<=in_data_clk2_delay1;
end
endmodule
优点:
1、可以解决亚稳态
2、可以是实现慢到快时钟
缺点:
1、不能是实现快到慢,会导致采不到
2、clk2的频率要是clk1的1.5倍
边沿同步(Edge synchronization)
检测边沿
`timescale 1ns / <