2013-10-15 53 views
0

我剛剛嘗試了一個SystemVerilog示例。頂級測試臺中的時鐘生成SystemVerilog

測試平臺的頂層看起來像這樣:

module top(); 
    // `timescale 1ns/1ps 

    reg_intf intfc(.clk(Clk)); 
    register_m dut (intfc); 
    register_test_m (intfc); 

    bit Clk = 0; 
    initial 
    forever #1 Clk = ~Clk; 
endmodule : top 

reg_intf是一個接口,register_m是設計模塊,register_test_m是程序(測試平臺)。

我得到的編譯錯誤是 -

網式不能在這種分配的左側使用。違規表達是:Clk源信息:Clk =(〜Clk);

我嘗試使用Logic,Reg,Wire for Clk並得到了相同的錯誤。

你可以提出任何SOLN ..

回答

1

移動的Clk聲明其使用前:

module top(); 
    // `timescale 1ns/1ps 

    bit Clk = 0; 

    reg_intf intfc(.clk(Clk)); 
    register_m dut (intfc); 
    register_test_m (intfc); 

    initial 
    forever #1 Clk = ~Clk; 
endmodule : top 

無關您的問題:你需要register_test_m模塊實例名稱:

register_test_m tb (intfc); 
+2

應該指出,你得到這個錯誤的原因是因爲'Clk'在端口m中第一次遇到時被隱式聲明爲一個線或網絡類型apping。 – dwikle