blob: d8949b7870f7244cd1580b15c3b28bed65f27e8e [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// Wrapper for scan sync and clock gating cell
module clkmgr_root_ctrl
import clkmgr_pkg::*;
import prim_mubi_pkg::mubi4_t;
(
input clk_i,
input rst_ni,
input mubi4_t scanmode_i,
input async_en_i,
output logic en_o,
output logic clk_o
);
mubi4_t scanmode;
prim_mubi4_sync #(
.NumCopies(1),
.AsyncOn(0)
) u_scanmode_sync (
.clk_i(1'b0), //unused
.rst_ni(1'b1), //unused
.mubi_i(scanmode_i),
.mubi_o(scanmode)
);
prim_clock_gating_sync u_cg (
.clk_i(clk_i),
.rst_ni(rst_ni),
.test_en_i(prim_mubi_pkg::mubi4_test_true_strict(scanmode)),
.async_en_i,
.en_o,
.clk_o
);
endmodule // clkmgr_root_ctrl