2021-07-27 22:24:40 -04:00
|
|
|
//#############################################################################
|
|
|
|
//# Function: Reset synchronizer #
|
|
|
|
// (async assert, sync deassert) #
|
|
|
|
//# Copyright: OH Project Authors. All rights Reserved. #
|
|
|
|
//# License: MIT (see LICENSE file in OH repository) #
|
|
|
|
//#############################################################################
|
|
|
|
|
2021-07-27 22:55:45 -04:00
|
|
|
module asic_rsync #(parameter PROP = "DEFAULT") (
|
2021-07-27 22:24:40 -04:00
|
|
|
input clk,
|
|
|
|
input nrst_in,
|
|
|
|
output nrst_out
|
|
|
|
);
|
|
|
|
|
|
|
|
localparam SYNCPIPE=2;
|
|
|
|
|
|
|
|
reg [SYNCPIPE-1:0] sync_pipe;
|
|
|
|
always @ (posedge clk or negedge nrst_in)
|
|
|
|
if(!nrst_in)
|
|
|
|
sync_pipe[SYNCPIPE-1:0] <= 'b0;
|
|
|
|
else
|
|
|
|
sync_pipe[SYNCPIPE-1:0] <= {sync_pipe[SYNCPIPE-2:0],1'b1};
|
|
|
|
assign nrst_out = sync_pipe[SYNCPIPE-1];
|
|
|
|
|
|
|
|
endmodule
|