I have a function f(), defined in a Verilog module, M1. I would like to reuse this same function in a different module, M2.

Is there anyway of doing this without redefining the function in M2?

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

  --- M2.v -----
  module M2();
  // Use f() here
  endmodule
有帮助吗?

解决方案

You can place the function into a separate file and use the `include compiler directive to include the function inside both modules:

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

  --- M2.v -----
  module M2();
     `include "functions.v"
     // Use f() here
  endmodule
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top