blob: 78845ae524108a3b2bb2556f57d0281b7d5fc640 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// Decoder for life cycle control signals with additional
// input buffers.
module prim_lc_dec (
input lc_ctrl_pkg::lc_tx_t lc_en_i,
output logic lc_en_dec_o
);
logic [lc_ctrl_pkg::TxWidth-1:0] lc_en;
logic [lc_ctrl_pkg::TxWidth-1:0] lc_en_out;
assign lc_en = lc_en_i;
// The buffer cells have a don't touch constraint on them
// such that synthesis tools won't collapse them
for (genvar k = 0; k < lc_ctrl_pkg::TxWidth; k++) begin : gen_bits
prim_buf u_prim_buf (
.in_i ( lc_en[k] ),
.out_o ( lc_en_out[k] )
);
end
assign lc_en_dec_o = (lc_en_out == lc_ctrl_pkg::On);
endmodule : prim_lc_dec