2014-01-11 2 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를 a에 연결할 수 없습니까 ??? – user3185902

답변

0

버그를 발견 변수 통상 C 코드로 Verilog 코드 생각했다 . 하드웨어 수준에서 문제를 해결할 때 문제를 해결할 수 있습니다. 작동시키기 위해 필요한 변경 사항에 대해 의견을 말했습니다.

관련 문제