Advertisement

FPGA单bit信号跨时钟域处理

阅读量:

1.单bit脉冲信号的跨时钟域处理

复制代码
  
    
  
    
 module signal_sync(
    
     input  rsta_n,   // active low
    
     input  clka,
    
     input  plusea,
    
  
    
     input  rstb_n,   // active low
    
     input  clkb,
    
     output pluseb
    
     );
    
  
    
 reg level;
    
 reg syn1;
    
 reg syn2;
    
 reg syn2_f;
    
  
    
 /***************************将a时钟域的脉冲信号转为电平信号************************/
    
 always@(posedge clka or negedge rsta_n) begin
    
     if(!rsta_n)
    
     level <= 1'b0;
    
     else if(plusea)
    
     level <= ~level;
    
     else
    
     level <= level;
    
 end
    
   28. /***************************用两级寄存器同步电平信号************************/
    
 always@(posedge clkb or negedge rstb_n) begin
    
     if(!rstb_n) begin
    
     syn1 <= 1'b0;
    
     syn2 <= 1'b0;
    
     end
    
     else begin
    
     syn1 <= level;
    
     syn2 <= syn1;
    
     end
    
 end
    
   40. /***************************在b时钟域将同步过来的电平信号转为脉冲信号************************/
    
 always@(posedge clkb or negedge rstb_n) begin
    
     if(!rstb_n)
    
     syn2_f <= 1'b0;
    
     else
    
     syn2_f <= syn2;
    
 end
    
 assign pluseb = syn2^syn2_f;
    
  
    
 endmodule
    
    
    
    
    AI写代码
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-06-01/hUfpGaNDYr5n1LuVCs0P4HR8xdWe.png)

仿真结果如下:

1.快时钟跨慢时钟

2.慢时钟跨快时钟

2.单bit非脉冲信号的跨时钟域

1.慢时钟转快时钟(打两拍)

复制代码
 `timescale 1ns / 1ps

    
 /*
    
     .clk       (),
    
     .rst_n_in  (),
    
     .rst_n_out ()
    
 */
    
 module rst_clk_controller(
    
 	input  clk,
    
 	input  rst_n_in,
    
 	output rst_n_out
    
 );
    
  
    
  
    
 	reg rst_n_d;
    
 	reg rst_n_dd;
    
 	assign rst_n_out = rst_n_dd;
    
 	always @(posedge clk or negedge rst_n_in) begin
    
 		if (!rst_n_in) begin
    
 			rst_n_d  <= 0;
    
 	        rst_n_dd <= 0;
    
 		end
    
 		else begin
    
 			rst_n_d  <= rst_n_in;
    
 	        rst_n_dd <= rst_n_d;
    
 		end
    
 	end
    
  
    
 endmodule
    
    
    
    
    AI写代码
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-06-01/0egUnDrIWFf5KcCavqbJ41EZuAQt.png)

全部评论 (0)

还没有任何评论哟~