module aludec (input logic        funct7b,
	       input logic [2:0]  funct3,
               input logic [2:0]  aluop,
               output logic [3:0] alucontrol,
	       output logic [1:0] shtype,
	       output logic 	  alu2src,
	       output logic 	  sltunsigned);


   always_comb
     case(aluop)
       3'b000:
         begin
            casex({funct7b, funct3})
              // slli
              4'b0001: 
		begin
		   alucontrol <= 4'b0010; 
		   shtype <= 2'b00;
		   alu2src <= 1'b1;
		   sltunsigned <= 1'b0;
		end
              // srli
              4'b0101:
		begin
		   alucontrol <= 4'b0010; 
		   shtype <= 2'b01;
		   alu2src <= 1'b1;
		   sltunsigned <= 1'b0;
		end
            // andi
              4'b?111:
		begin
                   alucontrol <= 4'b0000;
                   shtype <= 2'b00;
                   alu2src <= 1'b0;
		   sltunsigned <= 1'b0;
		end
              // xori
              4'b?100:
		begin
                   alucontrol <= 4'b1000;
                   shtype <= 2'b00;
                   alu2src <= 1'b0;
		   sltunsigned <= 1'b0;
		end	      
              // ori
              4'b?110:
		begin
                   alucontrol <= 4'b0001;
                   shtype <= 2'b00;
                   alu2src <= 1'b0;
		   sltunsigned <= 1'b0;
		end
              //slti
              4'b?010:
		begin
                   alucontrol <= 4'b0111;
                   alu2src <= 1'b0;
                   shtype <= 2'b00;
                   sltunsigned <= 1'b0;
		end
              // srai
              4'b1101:
		begin
                   alucontrol <= 4'b0010;
                   shtype <= 2'b10;
                   alu2src <= 1'b1;
		   sltunsigned <= 1'b0;
		end
              // sltiu
              4'b?011:
		begin
                   alucontrol <= 4'b0111;
                   alu2src <= 1'b0;
                   shtype <= 2'b00;
                   sltunsigned <= 1'b1;
		end
	      // Handle other immediates
              default: 
		begin
		   alucontrol <= 4'b0010; 
		   shtype <= 2'b00;
		   alu2src <= 1'b0;
		   sltunsigned <= 1'b0;
		end	      
            endcase // casex ({funct7b, funct3})	    
         end
       // lw/sw
       3'b100:
	 begin
            alucontrol <= 4'b0010; 
            shtype <= 2'b00;
            alu2src <= 1'b0;
	    sltunsigned <= 1'b0;
	 end
       // R-type       
       3'b010:
	 case({funct7b, funct3})
	   // add
	   4'b0000: 
	     begin
	        alucontrol <= 4'b0010;     
	        alu2src <= 1'b0;
  		shtype <= 2'b00;
		sltunsigned <= 1'b0;
	     end
	   // sll
	   4'b0001: 
	     begin
	        alucontrol <= 4'b0010;     
		alu2src <= 1'b1;
  	        shtype <= 2'b00;
		sltunsigned <= 1'b0;
	     end
	   // xor
	   4'b0100: 
	     begin
	        alucontrol <= 4'b1000;     
	        alu2src <= 1'b0;
  		shtype <= 2'b00;
		sltunsigned <= 1'b0;
	     end	   
	   // srl
	   4'b0101: 
	     begin
	        alucontrol <= 4'b0010;     
	        alu2src <= 1'b1;
  	        shtype <= 2'b01;
		sltunsigned <= 1'b0;
	     end
	   // sra
	   4'b1101: 
	     begin
	        alucontrol <= 4'b0010;     
	        alu2src <= 1'b1;
  	        shtype <= 2'b10;
		sltunsigned <= 1'b0;
	     end
	   // sub
	   4'b1000:
	     begin
	        alucontrol <= 4'b0110;     
	        alu2src <= 1'b0;
  		shtype <= 2'b00;	       
		sltunsigned <= 1'b0;
	     end
	   // and
	   4'b0111:
	     begin
	        alucontrol <= 4'b0000;     
	        alu2src <= 1'b0;
  	        shtype <= 2'b00;	       
		sltunsigned <= 1'b0;
	     end
	   // or
	   4'b0110: 
	     begin
	        alucontrol <= 4'b0001;     
	        alu2src <= 1'b0;
  	        shtype <= 2'b00;	       
		sltunsigned <= 1'b0;
	     end
	   // slt
	   4'b0010:
	     begin
	        alucontrol <= 4'b0111;     
	        alu2src <= 1'b0;
  	        shtype <= 2'b00;	       
		sltunsigned <= 1'b0;
	     end
	   // sltu
	   4'b0011:
	     begin
	        alucontrol <= 4'b0111;     
	        alu2src <= 1'b0;
  	        shtype <= 2'b00;	       
		sltunsigned <= 1'b1;
	     end
	   // ???
	   default:
	     begin
	        alucontrol <= 4'b0000;     
	        alu2src <= 1'b0;
	        shtype <= 2'b00;
		sltunsigned <= 1'b0;
	     end
	 endcase // case ({funct7b, funct3})
       // ???
       default:
	 begin
	    alucontrol <= 4'b0000;     
	    alu2src <= 1'b0;
	    shtype <= 2'b00;
	    sltunsigned <= 1'b0;
	 end       
     endcase // case (aluop)

endmodule // aludec
