blob: a86aa8f682b224d8cbffdfde4a7239e3708d58ec [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// Generic double-synchronizer flop
module prim_flop_2sync #(
parameter Width = 16,
parameter bit ResetValue = 0
) (
input clk_i, // receive clock
input rst_ni,
input [Width-1:0] d,
output logic [Width-1:0] q
);
logic [Width-1:0] intq;
always_ff @(posedge clk_i or negedge rst_ni)
if (!rst_ni) begin
intq <= {Width{ResetValue}};
q <= {Width{ResetValue}};
end else begin
intq <= d;
q <= intq;
end
endmodule