data/full_repos/permissive/42581625/PersonalComputer/rotator.v
1: b'%Warning-WIDTH: data/full_repos/permissive/42581625/PersonalComputer/rotator.v:42: Operator AND expects 64 bits on the LHS, but LHS\'s REPLICATE generates 32 bits.\n                                                                                 : ... In instance Rotator\n {32{RotatorOp==2\'b00}} & (RotatorIn[31:0] << {1\'b0,RotatorBitNum[4:0]}) |\n                        ^\n                ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message.\n%Warning-WIDTH: data/full_repos/permissive/42581625/PersonalComputer/rotator.v:42: Operator SHIFTL expects 64 bits on the LHS, but LHS\'s SEL generates 32 bits.\n                                                                                 : ... In instance Rotator\n {32{RotatorOp==2\'b00}} & (RotatorIn[31:0] << {1\'b0,RotatorBitNum[4:0]}) |\n                                           ^~\n%Warning-WIDTH: data/full_repos/permissive/42581625/PersonalComputer/rotator.v:43: Operator AND expects 64 bits on the LHS, but LHS\'s REPLICATE generates 32 bits.\n                                                                                 : ... In instance Rotator\n {32{RotatorOp==2\'b10}} & ({32\'h0,RotatorIn[31:0]} >> {1\'b0,RotatorBitNum[4:0]}) |\n                        ^\n%Warning-WIDTH: data/full_repos/permissive/42581625/PersonalComputer/rotator.v:44: Operator AND expects 64 bits on the LHS, but LHS\'s REPLICATE generates 32 bits.\n                                                                                 : ... In instance Rotator\n {32{RotatorOp==2\'b11}} & ({{32{RotatorIn[31]}}, RotatorIn[31:0]} >> {1\'b0,RotatorBitNum[4:0]}) ;\n                        ^\n%Warning-WIDTH: data/full_repos/permissive/42581625/PersonalComputer/rotator.v:41: Operator ASSIGNW expects 32 bits on the Assign RHS, but Assign RHS\'s OR generates 64 bits.\n                                                                                 : ... In instance Rotator\nassign RotatorOut = \n                  ^\n%Error: Exiting due to 5 warning(s)\n'
module Rotator(
	input[31:0] RotatorIn,
	input[4:0] RotatorBitNum,
	input[1:0] RotatorOp,
	output[31:0] RotatorOut
    );

assign RotatorOut = 
	{32{RotatorOp==2'b00}} & (RotatorIn[31:0] << {1'b0,RotatorBitNum[4:0]}) |
	{32{RotatorOp==2'b10}} & ({32'h0,RotatorIn[31:0]} >> {1'b0,RotatorBitNum[4:0]}) |
	{32{RotatorOp==2'b11}} & ({{32{RotatorIn[31]}}, RotatorIn[31:0]} >> {1'b0,RotatorBitNum[4:0]}) ;
	
endmodule
module Rotator(
	input[31:0] RotatorIn,
	input[4:0] RotatorBitNum,
	input[1:0] RotatorOp,
	output[31:0] RotatorOut
    );


assign RotatorOut = 
	{32{RotatorOp==2'b00}} & (RotatorIn[31:0] << {1'b0,RotatorBitNum[4:0]}) |
	{32{RotatorOp==2'b10}} & ({32'h0,RotatorIn[31:0]} >> {1'b0,RotatorBitNum[4:0]}) |
	{32{RotatorOp==2'b11}} & ({{32{RotatorIn[31]}}, RotatorIn[31:0]} >> {1'b0,RotatorBitNum[4:0]}) ;
	
endmodule