异步时钟域同步
在异步设计中,为了防止亚稳态,信号的同步是必须要进行的
单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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步