跨时钟域设计【二】——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

posted @   hfyfpga  阅读(643)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示