Files
OpenExSys_NoC/rtl/util/one_hot_priority_encoder.sv
2023-11-26 14:59:34 +01:00

28 lines
525 B
Systemverilog
Executable File

`ifndef __ONE_HOT_PRIORITY_ENCODER_SV__
`define __ONE_HOT_PRIORITY_ENCODER_SV__
module one_hot_priority_encoder
#(
parameter int unsigned SEL_WIDTH = 8
)
(
input logic[SEL_WIDTH-1:0] sel_i,
output logic[SEL_WIDTH-1:0] sel_o
);
localparam int unsigned SEL_ID_WIDHT = $clog2(SEL_WIDTH);
logic [SEL_WIDTH-1:0] sel_mask;
assign sel_mask = ((~sel_i + 1'b1) & sel_i);
assign sel_o = sel_mask;
endmodule : one_hot_priority_encoder
`endif