請問各位關於用verilog打4_bit的add/sub

下面是我打的程式碼

可是compiler一直都不過

請各位大大幫忙提醒一下

謝謝!!

//Top level module

module 4_bit(A,B,M,C0,S,C4,V);

input [3:0]A,B;

input M,C0;

output [3:0]S;

output C4,V;

wire C1,C2,C3; //Intermidiate carries

//Instantiate the fulladder

fulladder FA0(A[0],B[0],M,C0,S[0],C1);

fulladder FA1(A[1],B[1],M,C1,S[1],C2);

fulladder FA2(A[2],B[2],M,C2,S[2],C3);

fulladder FA3(A[3],B[3],M,C3,S[3],C4);

//The logic circuitof V

sub_V sub(C[3],C[4]);

endmodule

//Description of the sub_V

module sub_V(C[3],C[4],V);

input C[3],C[4];

output V;

endmodule

//Description of the fulladder

module fulladder(A,B,M,C0,S,C1);

input A,B,M,C0;

output S,C1;

//Define combinational logic circuit

assign C1={(A^B^M)&C0}|{A&(B^M)};

assign S=A^B^M^C0;

endmodule

M是選擇執行adder or subtractor

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    Line 2 : : 不能以數字當 module 起頭

    原 module 4_bit(A,B,M,C0,S,C4,V); 改成 module bit_4(A,B,M,C0,S,C4,V);

    Line 17: 沒定義 C[3], C[4] 並且漏掉 V

    原 sub_V sub(C[3],C[4]); 改成 sub_V sub(C3,C4, V);

    Line 21, 22:

    原 module sub_V(C[3],C[4],V); 改成 module sub_V(C3,C4,V);

    原 input C[3],C[4]; 改成 input C3,C4;

    Lin 32: & 有錯

    assign C1={(A^B^M)&C0}|{A&(B^M)}; 改成 C1={(A^B^M)&C0}|{A&(B^M)};

    全部修改如下, 給你參考

    //Top level module

    module bit_4(A,B,M,C0,S,C4,V);

    input [3:0]A,B;

    input M,C0;

    output [3:0]S;

    output C4,V;

    wire C1,C2,C3; //Intermidiate carries

    //Instantiate the fulladder

    fulladder FA0(A[0],B[0],M,C0,S[0],C1);

    fulladder FA1(A[1],B[1],M,C1,S[1],C2);

    fulladder FA2(A[2],B[2],M,C2,S[2],C3);

    fulladder FA3(A[3],B[3],M,C3,S[3],C4);

    //The logic circuitof V

    sub_V sub(C3,C4, V);

    endmodule

    //Description of the sub_V

    module sub_V(C3,C4,V);

    input C3,C4;

    output V;

    endmodule

    //Description of the fulladder

    module fulladder(A,B,M,C0,S,C1);

    input A,B,M,C0;

    output S,C1;

    //Define combinational logic circuit

    assign C1={(A^B^M)&C0}|{A&(B^M)};

    assign S=A^B^M^C0;

    endmodule

    Source(s): Pegasus
Still have questions? Get your answers by asking now.