Let’s say I am shifting left a smaller size logic, then assigning it to a bigger logic. How the RHS execution is evaluated? I have a simple example below. Is shifting happening on RHS logic size ( = 4 bits) or LHS logic size ( = 8 bits)? Will I lose any MSB bits in ‘a’?
module my_module (
input logic [3:0] a,
input logic [1:0] shift_amount,
output logic [7:0] b
)
assign b = a << shift_amount;
endmodule