2014-01-11 57 views
-1

以下是我使用4位加法器verilog代碼(工作文件,測試過)製作的一個簡單的4位加計數器verilog代碼。我碰巧在包含加法器實例時,時鐘停止工作,因此整個代碼停止工作。任何可能出錯的建議?Verilog:使用加法器的設計計數器

module four_bit_counter(
output reg [3:0] a 
); 
reg clock ; 
reg [3:0] temp; 
initial 
begin 
    a = 4'b0000; 
    clock =0 ; 
    temp = 4'b0000; // Remove this 
end 

four_bit_adder add(.a(temp), .b(4'b0001), .s(a)); // four_bit_adder add(.a(a), .b(4'b0001), .s(temp)); 

always begin 
    #10 clock = ~clock; 
end 

always @(posedge clock) 
    begin 
     assign temp = a; // a<=temp; 
    end 

endmodule 

// 4位加法器的代碼:

模塊four_bit_adder(

input [3:0] a, 
input [3:0] b, 
output reg [3:0] s // Type wire 
); 
wire [3:0] sum; 
wire [3:0] c ; 
    full_adder f1(.a(a[0]) , .b(b[0]), .cin(1'b0), .s(sum[0]), .c(c[0])); 
    full_adder f2(.a(a[1]) , .b(b[1]), .cin(c[0]), .s(sum[1]), .c(c[1])); 
    full_adder f3(.a(a[2]) , .b(b[2]), .cin(c[1]), .s(sum[2]), .c(c[2])); 
    full_adder f4(.a(a[3]) , .b(b[3]), .cin(c[2]), .s(sum[3]), .c(c[3])); 

    always begin 
     assign s = sum; 
    end 

endmodule

+0

請告訴我一種以正確的方式添加代碼的方法... – user3185902

+0

如果's'端口是輸出,則不應將其連接到'reg a'。 – toolic

+0

爲什麼我們不能連接s到? – user3185902

回答

0

找到該錯誤在想Verilog代碼的與變量一個普通的C代碼。在硬件層面想到這個問題時可以解決這個問題我已經評論了爲了使它工作而需要做的改變