blob: fbd14f3e7669f992bfa33395e6dcab7f8703cb45 [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 pwrmgr_bind;
bind pwrmgr tlul_assert #(
.EndpointType("Device")
) tlul_assert_device (.clk_i, .rst_ni, .h2d(tl_i), .d2h(tl_o));
bind pwrmgr pwrmgr_csr_assert_fpv pwrmgr_csr_assert (.clk_i, .rst_ni, .h2d(tl_i), .d2h(tl_o));
// Clock control assertions.
bind pwrmgr pwrmgr_clock_enables_sva_if pwrmgr_clock_enables_sva_if (
.clk_i(clk_slow_i),
.rst_ni(rst_slow_ni),
.state(u_slow_fsm.state_q),
// The synchronized control CSR bits.
.main_pd_ni(slow_main_pd_n),
.core_clk_en_i(slow_core_clk_en),
.io_clk_en_i(slow_io_clk_en),
.usb_clk_en_lp_i(slow_usb_clk_en_lp),
.usb_clk_en_active_i(slow_usb_clk_en_active),
// The main power control.
.main_pd_n(pwr_ast_o.main_pd_n),
// The output enables.
.core_clk_en(pwr_ast_o.core_clk_en),
.io_clk_en(pwr_ast_o.io_clk_en),
.usb_clk_en(pwr_ast_o.usb_clk_en)
);
bind pwrmgr pwrmgr_ast_sva_if pwrmgr_ast_sva_if (
.clk_slow_i,
.rst_slow_ni,
// The pwrmgr outputs.
.pwr_ast_o,
// The pwrmgr input.
.pwr_ast_i
);
bind pwrmgr pwrmgr_rstmgr_sva_if pwrmgr_rstmgr_sva_if (
.clk_i(clk_i),
.rst_ni(rst_ni),
// The outputs from pwrmgr.
.rst_lc_req(pwr_rst_o.rst_lc_req),
.rst_sys_req(pwr_rst_o.rst_sys_req),
.ndm_sys_req(1'b0),
.reset_cause(pwrmgr_pkg::ResetNone),
// The inputs from rstmgr.
.rst_lc_src_n(pwr_rst_i.rst_lc_src_n),
.rst_sys_src_n(pwr_rst_i.rst_sys_src_n)
);
endmodule