异步时钟域同步
在异步设计中,为了防止亚稳态,信号的同步是必须要进行的
单bit信号的同步通常是用时钟锁存的方法
从异步的时钟频率来看,还可以细分为两小类
第一类
被同步的信号时钟域的频率比本时钟域的频率低
这时候可以直接通过双锁存的方法来进行同步
对于 被同步的信号时钟域的频率比本时钟域的频率高的情况 可以采用如下方法:
代码
reg flag1,flag2,flag3;
wire clr;
assign clr=flag3 && (!flag);
always @(posedge flag or poesdge clr) //注意和 always @(posedge flag or clr) 区别
if(clr)
flag1 <= 0;
else flag1 <=1;
always @(posedge clk)
begin
flag2<=flag1;
flag3<=flag2;
end
wire clr;
assign clr=flag3 && (!flag);
always @(posedge flag or poesdge clr) //注意和 always @(posedge flag or clr) 区别
if(clr)
flag1 <= 0;
else flag1 <=1;
always @(posedge clk)
begin
flag2<=flag1;
flag3<=flag2;
end