Write the VHDL code for the ALU that takes two inputs A and B and performs the following operations depending on the values of the control signal C:

Each signal A and B is 16-Bit Wide.

Arithmetic Operations:

Control Signals and Operations

0000 A Plus B

0001 Increment A by 2

0010 A Minus B

0011 Decrement A by 3

Comparison Operations

Control Signals and Operations

0100 Minimum of A and B

0101 Maximum of A and B

0110 A AND B

0111 A OR B

Shift Operations

Control Signals and Operations

1000 Circular right shift of A

1001 Circular left shift of A

1010 Right shift of A with feed in 0

1011 Left shift of A with feed in 0

1100 Right shift of A with MSB replication

1101 Left shift of A with LSB replication