|  | // 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 |