2016-05-01 8 views
0

私のプログラムカウンタテストベンチの文法エラーが発生しましたが、なぜ私は取得し続けるのかわかりません 次のVerilogソースには構文エラーがあります: "pc_tb.v"、20:token 「初期」 初期 ^Verilogプログラムカウンタ構文エラー

私は最初に間違っていますか?パイプライン化されたデータパスを作成し、私はそれを持って、この部分だけは、あなたがinitialブロック内の別のinitialブロックを宣言することはできませんので、あなたがあなたのbegin(HERESに修正されたコードをクローズする必要があり、これまで私のため

//PC_TB.V USED TO TEST THE PC MODULE 
`include"pc.v" 
module pc_tb; 
wire[15:0]out; 
reg stall,hold 
reg[9:0]Mux,Haz 
reg[7:0]Mem[0:65535]; 
ProgramCounter g1(stall,hold,Mem,out,Mux,Haz); 
initial begin 
stall=1'b0 
hold=1'b0; 
Mem=0; 
Mux=9'b000000010; 
Haz=9'b000000000; 
#5 Mem[2]=1; 
#10 hold=1'b1; 
#30 halt=1'b1; 
#40 
initial 
#100 $finish; 
end 
endmodule 
+3

コードをインデントしてください。 – Morgan

答えて

2

が動作していません、訂正のコメントを参照してください):

//PC_TB.V USED TO TEST THE PC MODULE 
`include"pc.v" 
`define MEM_SIZE 65535 

module pc_tb; 
    wire [15:0] out; 
    reg stall, hold; // Missing ; 
    reg [9:0] Mux, Haz; // Missing ; 
    reg [7:0] Mem[0:`MEM_SIZE-1]; // Convert to macro 
    integer i; 

    ProgramCounter g1(stall, hold, Mem, out, Mux, Haz); 

    // First initial block 
    initial begin 
    stall = 1'b0; // Missing ; 
    hold = 1'b0; 
    // Canot set unpacked array to 0, need to loop through to set each element 
    for (i = 0; i < `MEM_SIZE; i = i + 1) begin 
     Mem[i] = 8'd0; 
    end 
    Mux = 9'b000000010; 
    Haz = 9'b000000000; 

    #5 Mem[2] = 1; 
    #10 hold = 1'b1; 
    #30 halt = 1'b1; // halt undeclared, not sure what you meant to do here 
    // #40 does nothing here 
    end // This end was missing 

    // Second initial block 
    initial begin 
    #100 $finish; // 100 time units from start, simulation will terminate 
    end 
endmodule