blob: 7e04bd9773d181759c8d68c4d3a3b519e8a03845 [file] [log] [blame]
// delay_ffr.v
//
// Copyright (C) 2020 Dan Rodrigues <danrr.gh.oss@gmail.com>
//
// SPDX-License-Identifier: Apache-2.0
`default_nettype none
module delay_ffr #(
parameter DELAY = 1,
parameter WIDTH = 1
) (
input clk,
input reset,
input [WIDTH-1:0] in,
output [WIDTH-1:0] out
);
reg [WIDTH-1:0] r [0:DELAY];
assign out = r[DELAY-1];
integer i;
always @(posedge clk) begin
if (reset) begin
for (i = 0; i < DELAY; i = i + 1) begin
r[i] <= 0;
end
end else begin
r[0] <= in;
if (DELAY > 1) begin
for (i = 1; i < DELAY; i = i + 1) begin
r[i] <= r[i - 1];
end
end
end
end
endmodule