blob: dc19cd09c34e59957a8dbe80f7d0dccb35c3ccfe [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// AES mul2 implements a constant multiplication by 2 on GF(2^8).
module aes_mul2 (
input logic [7:0] data_i,
output logic [7:0] data_o
);
assign data_o[7] = data_i[6];
assign data_o[6] = data_i[5];
assign data_o[5] = data_i[4];
assign data_o[4] = data_i[3] ^ data_i[7];
assign data_o[3] = data_i[2] ^ data_i[7];
assign data_o[2] = data_i[1];
assign data_o[1] = data_i[0] ^ data_i[7];
assign data_o[0] = data_i[7];
endmodule