看看这个程序
module alu(
CLOCK,C_Flag,Alu_Op, DATA_In,X_Reg,Y_Reg,A_Reg,SP_Reg,C_IN,Alu_Out);
input CLOCK,C_Flag;
input[4:0]Alu_Op;
input[7:0]DATA_In,X_Reg,Y_Reg,A_Reg,SP_Reg;
output C_IN;
output[7:0]Alu_Out;
reg C_IN;
reg[7:0]AluOut,a,b;
always@(negedge CLOCK)
casex(Alu_Op)
5'b01011: b=SP_Reg;
default: b=DATA_In;
endcase
always@(negedge CLOCK)
casex(Alu_Op)
5'b00010, 5'bx0100, 5'b10001: a=X_Reg;
5'b00011, 5'b00101, 5'b10x01: a=Y_Reg;
5'b00001,5'b10000,5'b0011x,
5'b10011, 5'bx1111: a=A_Reg;
default: a=DATA_In;
endcase
always@(negedge CLOCK)
casex(Alu_Op)
5'b000xx: {C_IN,Alu_Out} <=a;
5'b0010x: {C_IN,Alu_Out} <=a+b;
5'b1000x,5'b10010: {C_IN,Alu_Out} <=a-b;
5'b0100x,5'b01010: Alu_Out <=a-1'b1;
5'b1010x,5'b10111: {C_IN,Alu_Out} <=a+1'b1;
5'b00111: {C_IN,Alu_Out} <=a+b+C_Flag;
5'b01011: {C_IN ,Alu_Out} <= b;
5'b00110: Alu_Out <=a-b-(~C_Flag);
5'b10011: Alu_Out <=a&b;
5'b11111: Alu_Out <=a|b;
5'b01111: Alu_Out <=a^b;
5'b11000: Alu_Out <={a[6:0],1'b0};
5'b11001: Alu_Out <={1'b0, a[6:0]};
5'b11010: Alu_Out <={a[6:0],C_Flag};
5'b11011: Alu_Out <={C_Flag, a[6:0]};
default:
endcase
endmodule
谁能帮我看看这个程序哪错了 谢谢啊
发表时间:2005年5月28日15:36:30