blob: 35ecee1daa2117669ae96c4b56d8c60054fb06c9 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
// One-hot encoder
// Outputs a one-hot encoded version of an integer input.
module prim_onehot_enc #(
parameter int unsigned OneHotWidth = 32,
localparam int unsigned InputWidth = $clog2(OneHotWidth)
) (
input logic [InputWidth-1:0] in_i,
input logic en_i, // out_o == '0 when en_i == 0
output logic [OneHotWidth-1:0] out_o
);
for (genvar i = 0; i < OneHotWidth; ++i) begin : g_out
assign out_o[i] = (in_i == i) & en_i;
end
endmodule