19 lines
379 B
Systemverilog
19 lines
379 B
Systemverilog
`ifndef LU_H_SV
|
|
`define LU_H_SV
|
|
module lu #(parameter width = 2) (
|
|
input logic [1:0] op,
|
|
input logic [2**width-1:0] A,
|
|
input logic [2**width-1:0] B,
|
|
output logic [2**width-1:0] Y);
|
|
|
|
always_comb begin
|
|
case (op)
|
|
2'b00: Y = A & B;
|
|
2'b01: Y = A | B;
|
|
2'b10: Y = A ^ B;
|
|
2'b11: Y = ~(A | B);
|
|
default: Y = '0;
|
|
endcase
|
|
end
|
|
endmodule
|
|
`endif |