blob: 8d6f4a31a31c94d5eb7e68dd2b57ffde3d882137 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
module prim_xilinx_clock_buf #(
// The following options allow a user to choose the type of buffer
// associated with this cell.
// NoFpgaBuf -> No fpga clock buffer is selected, this will be constructed
// out of LUTS.
// RegionSel -> If 1 when NoFpgaBuf is 0, this informs the build tool to select
// a regional clock buffer. If 0 when NoFpgaBuf is 0, this informs
// the build tool to select a global clock buffer, which is a more
// scarce resource.
parameter bit NoFpgaBuf = 1'b0,
parameter bit RegionSel = 1'b0
) (
input clk_i,
output logic clk_o
);
if (NoFpgaBuf) begin : gen_no_fpga_buf
assign clk_o = clk_i;
end else begin : gen_fpga_buf
if (RegionSel) begin : gen_bufr
BUFR bufr_i (
.I(clk_i),
.O(clk_o)
);
end else begin : gen_bufg
BUFG bufg_i (
.I(clk_i),
.O(clk_o)
);
end
end
endmodule