跨时钟域设计【二】——Fast to slow clock domain
跨时钟域设计中,对快时钟域的Trigger信号同步到慢时钟域,可以采用上面的电路实现,Verilog HDL设计如下:
// Trigger signal sync, Fast clock domain to slow domain
module Trig_CrossDomain_F2S (
input clkB,
input rst_n,
input TrigIn_clkA,
output reg TrigOut_clkB
);
reg Q1,Q2,nQ2;
always @(posedge TrigIn_clkA or negedge rst_n or negedge nQ2)
if(!rst_n)
Q1 <= 0;
else if (!nQ2)
Q1 <= 0;
else
Q1 <= 1;
always @(posedge clkB or negedge rst_n)
if(!rst_n)
begin
Q2 <= 0;
nQ2 <= 1;
end
else
begin
Q2 <= Q1;
nQ2 <= !Q1;
end
always @(posedge clkB or negedge rst_n)
if(!rst_n)
TrigOut_clkB <= 0;
else
TrigOut_clkB <= Q2;
endmodule
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步