2013-04-21 54 views
1

我有一個函數f(),在Verilog模塊M1中定義。我想在不同的模塊中重用這個相同的功能,M2,是否有這樣做,而不重新定義M2中的功能?Verilog中的函數重用

--- M1.v --- 
    module M1(); 
    function f; 
     //do stuff 
    endfunction 
    endmodule 

    --- M2.v ----- 
    module M2(); 
    // Use f() here 
    endmodule 

回答

3

您可以將功能到​​一個單獨的文件,並使用`包括編譯器指令包括兩個模塊內部的功能:

--- M1.v --- 
    module M1(); 
    `include "functions.v" 
    endmodule 

    --- M2.v ----- 
    module M2(); 
    `include "functions.v" 
    // Use f() here 
    endmodule 
+0

合作。只有我不得不將函數文件重命名爲_functions.vh_,否則它不會編譯。謝謝:-) – iab 2013-04-22 14:56:10

+0

不客氣。通常,包含文件的名稱無關緊要。也許你的模擬器強制執行一些命名約束。 – toolic 2013-04-22 15:39:33