FPGA_简单ALU

  简单运算逻辑单元ALU,实现传递,自加1,自减1,相加,相减,与,或,异或,非,左移一位,右移一位.

Verilog代码:

module ALU(in1,in2,op,out);

input[7:0] in1,in2;
input[3:0] op;
output[15:0] out;

wire[7:0] in1,in2;
wire[3:0] op;
reg[15:0] out;

parameter transfer = 4'b0001,
increase = 4'b0010,
decrease = 4'b0011,
addtion = 4'b0100,
subtraction = 4'b0101,
AND = 4'b0110,
OR = 4'b0111,
XOR = 4'b1000,
NOT = 4'b1001,
shift_left = 4'b1010,
shift_right = 4'b1011;

always@(in1 or in2 or op)
begin
case(op)
transfer : out=in1;
increase : out=in1+1'b1;
decrease : out=in1-1'b1;
addtion : out=in1+in2;
subtraction : out=in1-in2;
AND : out=in1&in2;
OR : out=in1|in2;
XOR : out=in1^in2;
NOT : out=~in1;
shift_left : out=in1<<1;
shift_right : out=in1>>1;
default : out=16'bz;
endcase
end

 

endmodule

功能仿真结果:

posted @ 2013-07-27 17:23  ToolsLab  阅读(609)  评论(0编辑  收藏  举报