%s%%s%%s%%s%%s%1%s%%s%`include%s%"alu_if.vh"
%s%%s%%s%%s%%s%2%s%%s%
%s%%s%%s%%s%%s%3%s%%s%module%s%alu%s%(alu_if.rf%s%aluif);
%s%%s%%s%%s%%s%4%s%%s%
%s%%s%%s%%s%%s%5%s%%s%%t%always_comb
%s%%s%%s%%s%%s%6%s%%s%%t%begin
%s%%s%%s%%s%%s%7%s%%s%%t%%t%aluif.output_port%s%=%s%'0;
%s%%s%%s%%s%%s%8%s%%s%%t%%t%aluif.overflow%s%=%s%0;
%s%%s%%s%%s%%s%9%s%%s%%t%%t%casez(aluif.aluop)
%s%%s%%s%%s%10%s%%s%%t%%t%%t%4'b0000%s%:%s%begin%s%
%s%%s%%s%%s%11%s%%s%%t%%t%%t%%t%
%s%%s%%s%%s%12%s%%s%%t%%t%%t%%t%aluif.output_port%s%=%s%aluif.port_b%s%<<%s%aluif.port_a%s%[4:0];
%s%%s%%s%%s%13%s%%s%%t%%t%%t%%t%aluif.overflow%s%=%s%0;
%s%%s%%s%%s%14%s%%s%%t%%t%%t%end%s%
%s%%s%%s%%s%15%s%%s%%t%%t%%s%%s%%s%%s%4'b0001%s%:%s%begin
%s%%s%%s%%s%16%s%%s%%t%%t%%s%%s%%s%%s%%s%%t%aluif.output_port%s%=%s%aluif.port_b%s%>>%s%aluif.port_a%s%[4:0];
%s%%s%%s%%s%17%s%%s%%t%%t%%s%%s%%s%%s%%s%%t%aluif.overflow%s%=%s%0;
%s%%s%%s%%s%18%s%%s%%t%%t%%s%%t%end
%s%%s%%s%%s%19%s%%s%%t%%t%%s%%s%%s%%s%4'b0010%s%:%s%begin
%s%%s%%s%%s%20%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.output_port%s%=%s%aluif.port_a%s%+%s%aluif.port_b;
%s%%s%%s%%s%21%s%%s%%t%%t%%s%%s%%s%%s%%t%if%s%((aluif.port_a%s%[31]%s%==%s%0)%s%&%s%(aluif.port_b%s%[31]%s%==%s%0)%s%&%s%(aluif.output_port%s%[31]%s%==%s%1))%s%begin
%s%%s%%s%%s%22%s%%s%%t%%t%%s%%s%%s%%s%%t%%t%aluif.overflow%s%=%s%1;
%s%%s%%s%%s%23%s%%s%%t%%t%%s%%s%%s%%s%%t%end
%s%%s%%s%%s%24%s%%s%%t%%t%%s%%s%%s%%s%%t%else%s%if%s%((aluif.port_a%s%[31]%s%==%s%1)%s%&%s%(aluif.port_b%s%[31]%s%==%s%1)%s%&%s%(aluif.output_port%s%[31]%s%==%s%0))%s%begin
%s%%s%%s%%s%25%s%%s%%t%%t%%s%%s%%s%%s%%t%%t%aluif.overflow%s%=%s%1;
%s%%s%%s%%s%26%s%%s%%t%%t%%s%%s%%s%%s%%t%end
%s%%s%%s%%s%27%s%%s%%t%%t%%s%%s%%s%%s%%t%else%s%begin
%s%%s%%s%%s%28%s%%s%%t%%t%%s%%s%%s%%s%%t%%t%aluif.overflow%s%=%s%0;
%s%%s%%s%%s%29%s%%s%%t%%t%%s%%s%%s%%s%%t%end
%s%%s%%s%%s%30%s%%s%%t%%t%%s%%s%%s%%s%end%s%
%s%%s%%s%%s%31%s%%s%%t%%t%%s%%s%%s%%s%4'b0011%s%:%s%begin
%s%%s%%s%%s%32%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.output_port%s%=%s%aluif.port_a%s%-%s%aluif.port_b;
%s%%s%%s%%s%33%s%%s%%t%%t%%s%%s%%s%%s%%t%if%s%((aluif.port_a%s%[31]%s%==%s%0)%s%&%s%(aluif.port_b%s%[31]%s%==%s%1)%s%&%s%(aluif.output_port%s%[31]%s%==%s%1))%s%begin
%s%%s%%s%%s%34%s%%s%%t%%t%%s%%s%%s%%s%%t%%t%aluif.overflow%s%=%s%1;
%s%%s%%s%%s%35%s%%s%%t%%t%%s%%s%%s%%s%%t%end
%s%%s%%s%%s%36%s%%s%%t%%t%%s%%s%%s%%s%%t%else%s%if%s%((aluif.port_a%s%[31]%s%==%s%1)%s%&%s%(aluif.port_b%s%[31]%s%==%s%0)%s%&%s%(aluif.output_port%s%[31]%s%==%s%0))%s%begin
%s%%s%%s%%s%37%s%%s%%t%%t%%s%%s%%s%%s%%t%%t%aluif.overflow%s%=%s%1;
%s%%s%%s%%s%38%s%%s%%t%%t%%s%%s%%s%%s%%t%end
%s%%s%%s%%s%39%s%%s%%t%%t%%s%%s%%s%%s%end
%s%%s%%s%%s%40%s%%s%%t%%t%%s%%s%%s%%s%4'b0100%s%:%s%begin
%s%%s%%s%%s%41%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.output_port%s%=%s%aluif.port_a%s%&%s%aluif.port_b;
%s%%s%%s%%s%42%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.overflow%s%=%s%0;
%s%%s%%s%%s%43%s%%s%%t%%t%%s%%s%%s%%s%end
%s%%s%%s%%s%44%s%%s%%t%%t%%s%%s%%s%%s%4'b0101%s%:%s%begin
%s%%s%%s%%s%45%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.output_port%s%=%s%aluif.port_a%s%|%s%aluif.port_b;
%s%%s%%s%%s%46%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.overflow%s%=%s%0;
%s%%s%%s%%s%47%s%%s%%t%%t%%s%%s%%s%%s%end
%s%%s%%s%%s%48%s%%s%%t%%t%%s%%s%%s%%s%4'b0110%s%:%s%begin%s%
%s%%s%%s%%s%49%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.output_port%s%=%s%aluif.port_a%s%^%s%aluif.port_b;
%s%%s%%s%%s%50%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.overflow%s%=%s%0;
%s%%s%%s%%s%51%s%%s%%t%%t%%s%%s%%s%%s%end
%s%%s%%s%%s%52%s%%s%%t%%t%%s%%s%%s%%s%4'b0111%s%:%s%begin%s%
%s%%s%%s%%s%53%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.output_port%s%=%s%~(aluif.port_a%s%|%s%aluif.port_b);
%s%%s%%s%%s%54%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.overflow%s%=%s%0;
%s%%s%%s%%s%55%s%%s%%t%%t%%s%%s%%s%%s%end
%s%%s%%s%%s%56%s%%s%%t%%t%%s%%s%%s%%s%4'b1010%s%:%s%begin
%s%%s%%s%%s%57%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.output_port%s%=%s%($signed(aluif.port_a)%s%<%s%$signed(aluif.port_b))%s%?%s%32'd1:32'd0;
%s%%s%%s%%s%58%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.overflow%s%=%s%0;
%s%%s%%s%%s%59%s%%s%%t%%t%%s%%s%%s%%s%end
%s%%s%%s%%s%60%s%%s%%t%%t%%s%%s%%s%%s%4'b1011%s%:%s%begin
%s%%s%%s%%s%61%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.output_port%s%=%s%(aluif.port_a%s%<%s%aluif.port_b)%s%?%s%32'd1:32'd0;
%s%%s%%s%%s%62%s%%s%%t%%t%%s%%s%%s%%s%%t%aluif.overflow%s%=%s%0;
%s%%s%%s%%s%63%s%%s%%t%%t%%s%%s%%s%%s%end
%s%%s%%s%%s%64%s%%s%%t%%t%endcase%s%
%s%%s%%s%%s%65%s%%s%%t%end%t%
%s%%s%%s%%s%66%s%%s%
%s%%s%%s%%s%67%s%%s%%t%
%s%%s%%s%%s%68%s%%s%%t%
%s%%s%%s%%s%69%s%%s%%t%assign%s%aluif.negative%s%=%s%aluif.output_port[31];
%s%%s%%s%%s%70%s%%s%%t%assign%s%aluif.zero%s%%s%%s%%s%%s%=%s%(aluif.output_port%s%==%s%32'b0)%s%?%s%1'b1:1'b0;
%s%%s%%s%%s%71%s%%s%%t%
%s%%s%%s%%s%72%s%%s%%t%
%s%%s%%s%%s%73%s%%s%%t%
%s%%s%%s%%s%74%s%%s%%t%
%s%%s%%s%%s%75%s%%s%
%s%%s%%s%%s%76%s%%s%endmodule