2016-06-15 15 views
0

Ich baue jetzt eine Testbenchennacht, und ich bin nicht sicher, wie ich mehrere Module verbinden sollte, die ich früher baute. Hier sind die Module, die ich verwendet habe, alle wurden getestet und funktionieren ordnungsgemäß.Verilog Fehler unerwarteter '=', erwarte Bezeichner oder Type_identifier

counter11bit_abc ctr2(ctr_enable, ctr_clr, clk_out, counter); 
    register10bit_abc dut3(clk_out, d_in, q_out); 
    clk #(400) clk1(clk_enable, clk_out); 
    hc85_abc dut4(a_in, b_in, ia_lt_b, ia_eq_b, ia_gt_b, qa_lt_b, qa_eq_b, qa_gt_b); 

Ich brauche die folgenden Ports verbinden:

assign a_in = counter [3:0]; 
    assign b_in = counter [7:4]; 
    assign ia_lt_b = counter [8]; 
    assign ia_eq_b = counter [9]; 
    assign ia_gt_b = counter [10]; 
    assign d_in[0] = ia_gt_b; 
    assign d_in[1] = ia_eq_b; 
    assign d_in[2] = ia_lt_b; 

Erklärung ist wie folgt:

wire [9:0] d_in; 
    wire [9:0] q_out; 
    wire [3:0] a_in, b_in; 
    wire ia_lt_b, ia_eq_b, ia_gt_b, qa_lt_b, qa_eq_b, qa_gt_b; 

    reg  clk_enable; 
    reg  ctr_enable; 
    reg  ctr_clr;  
    wire  clk_out;  
    wire [10:0] counter; 

Für den ersten Teil I wie folgt fiel nach unten:

initial 
    clk_enable = 1; 
    ctr_enable = 1; 
    ctr_clr = 1; 
    #400 
    ctr_clr = 0; 
    #1000000 

Jetzt gibt der Compiler mir beschweren, sagt

in der Nähe von "=": Syntaxfehler, unerwartete '=', erwartet IDENTIFIER oder TYPE_IDENTIFIER

Und das ist für die Zeile, in der "ctr_enable = 1;"

Gibt es jemanden, der weiß, was dieses Problem verursachen könnte? Ich habe mehr als eine Stunde daran gearbeitet und alles versucht, was ich kann. Vielen Dank.

Antwort

2

In Verilog, initial gilt nur für die folgende Aussage, sofern nicht in begin/end, unabhängig von der Einrückung (da es nicht Python ist) eingeschlossen.

Als Ergebnis ist Ihre zweite Zeile (ctr_enable = 1) vollständig unabhängig von dem Schlüsselwort . Das Update fügt begin/end:

initial begin 
    clk_enable = 1; 
    ctr_enable = 1; 
    ctr_clr = 1; 
    #400 
    ctr_clr = 0; 
    #1000000; 
end 
+0

Allerdings, wenn ich das tue, sagte der Compiler mir, dass in der Nähe von Syntaxfehler unerwartetes Ende „Ende“. – SYM2RR

+0

@ SYM2RR Leider habe ich am Ende ein Semikolon verpasst. – hexafraction

+0

Vielen Dank. Ich war ein Idiot ... – SYM2RR