题解 | #脉冲同步器(快到慢)#
脉冲同步器(快到慢)
https://www.nowcoder.com/practice/9f7c92635b5f49579e8e38fd8c8450d7
`timescale 100ps/100ps module pulse_detect( input clka , input clkb , input rst_n , input sig_a , output sig_b ); wire sig_b; //脉冲电平检测,双极性触发,边沿检测 reg q ,q_reg1 ,q_reg2,q_reg3; always @(posedge clka or negedge rst_n) if(!rst_n) q<= 0; else if(sig_a) q<= !q; always @(posedge clkb or negedge rst_n) if(!rst_n) begin q_reg1 <= 0; q_reg2 <= 0; end else begin q_reg1<= q; q_reg2 <= q_reg1; end always @(posedge clkb or negedge rst_n) if(!rst_n) q_reg3<=0; else q_reg3<=q_reg2; assign sig_b = q_reg2^q_reg3; endmodule