module ALU (A,B,control,c);
input [7:0]A;
input [7:0]B;
input [1:0]control;
output reg[15:0]c;
function[15:0]ADD;
input[7:0]A,B;
begin
ADD=A+B;
end
endfunction
function[15:0]SUB;
input[7:0]A,B;
begin
SUB=A-B;
end
endfunction
function[15:0]MUT;
input[7:0]A,B;
begin
MUT=A*B;
end
endfunction
function[15:0]DIV;
input[7:0]A,B;
begin
DIV=A/B;
end
endfunction
always@(*)
if(control==2'b00)
c=ADD(A,B);
else if(control==2'b01)
c=SUB(A,B);
else if(control==2'b10)
c=MUT(A,B);
else if(control==2'b11)
c=DIV(A,B);
endmodule
激勵自己寫,很簡單的。
|